テックブログ

EC2 Instance Connect を使ってみた

こんにちは。技術部のsです。

今回はEC2 Instance Connectを簡単に紹介致します。

EC2 Instance Connectとは?

EC2 Instance Connect を使用した Linux インスタンスへの接続

AWSマネジメントコンソール上(ブラウザ上)からSSHを利用してサーバにアクセスができるサービスです。

秘密鍵/公開鍵の設定を行わずとも、安全にサーバへSSH接続を実施することができますが、

利用するには事前準備が必要です。

利用条件

サポートしているOSバージョンは
・Amazon Linux 2
・Ubuntu 16.04 以降

となります。

また、インスタンスにSSH接続が許可されていること、パブリックIPアドレスが設定されていることなどが条件となります。

参考

EC2 Instance Connect を使用して接続

設定してみる

ではさっそく設定してみましょう。

今回はAmazon Linux 2のインスタンスで接続ができるように設定します。

AWS CLIインストール

Installing or updating the latest version of the AWS CLI

こちらを参考に入れていきます。

# curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100 44.9M  100 44.9M    0     0  36.0M      0  0:00:01  0:00:01 --:--:-- 36.0M

# ll
total 45988
-rw-r--r-- 1 root root 47091419 Jun 12 03:45 awscliv2.zip


# unzip awscliv2.zip
Archive:  awscliv2.zip
   creating: aws/
   creating: aws/dist/
  inflating: aws/THIRD_PARTY_LICENSES
  inflating: aws/README.md
  inflating: aws/install
   creating: aws/dist/_struct/
   creating: aws/dist/awscli/
   creating: aws/dist/cryptography/
   creating: aws/dist/cryptography-3.3.2-py3.9.egg-info/

~略

  inflating: aws/dist/cryptography-3.3.2-py3.9.egg-info/LICENSE
  inflating: aws/dist/cryptography-3.3.2-py3.9.egg-info/top_level.txt
   creating: aws/dist/lib/python3.9/
   creating: aws/dist/lib/python3.9/config-3.9-x86_64-linux-gnu/
  inflating: aws/dist/lib/python3.9/config-3.9-x86_64-linux-gnu/Makefile
   creating: aws/dist/include/python3.9/
  inflating: aws/dist/include/python3.9/pyconfig.h


# ./aws/install
You can now run: /usr/local/bin/aws --version


# /usr/local/bin/aws --version
aws-cli/2.7.7 Python/3.9.11 Linux/5.10.109-104.500.amzn2.x86_64 exe/x86_64.amzn.2 prompt/off

EC2 Instance Connectインストール

今回はAmazon Linux2なのですでにインストール済みです。

# yum list ec2-instance-connect
Loaded plugins: extras_suggestions, langpacks, priorities, update-motd
amzn2-core | 3.7 kB 00:00
amzn2extra-docker | 3.0 kB 00:00
amzn2extra-kernel-5.10 | 3.0 kB 00:00
(1/7): amzn2-core/2/x86_64/group_gz | 2.5 kB 00:00
(2/7): amzn2-core/2/x86_64/updateinfo | 477 kB 00:00
(3/7): amzn2extra-docker/2/x86_64/updateinfo | 6.4 kB 00:00
(4/7): amzn2extra-kernel-5.10/2/x86_64/updateinfo | 14 kB 00:00
(5/7): amzn2extra-docker/2/x86_64/primary_db | 91 kB 00:00
(6/7): amzn2extra-kernel-5.10/2/x86_64/primary_db | 9.5 MB 00:00
(7/7): amzn2-core/2/x86_64/primary_db | 63 MB 00:01
Installed Packages
ec2-instance-connect.noarch 1.1-15.amzn2 installed

IAM設定

IAMポリシー「EC2InstanceConnect」を操作するIAMユーザにアタッチします。
フルアクセス権限が付与されているユーザには設定不要です。

今回はEC2のフルアクセス権限にプラスしてインスタンスコネクト権限を入れたグループを作成して
アタッチしました。

セキュリティグループ設定

上記リンク先にあるjsonファイルから、該当のリージョン・サービスのIPアドレス範囲を確認します。

{
      "ip_prefix": "3.112.23.0/29",
      "region": "ap-northeast-1",
      "service": "EC2_INSTANCE_CONNECT",
      "network_border_group": "ap-northeast-1"
    },

今回作成したインスタンスは東京リージョンなのでこちらになります。
セキュリティグループで「3.112.23.0/29」に対して、SSH接続を許可します。

これで設定は完了です。
Instance Connectで接続してみましょう。

インスタンス > 接続

EC2 Instance Connect > 接続

接続できました!

余談ですが、この検証をするにあたって、久しぶりにAWS環境でネットワーク設定からやってみたのですが
作成画面のUIが変わってVPCとサブネットを同時に作成できるようになったんですね。
しかも「プレビュー」で設定が可視化できる・・!わかりやすくてなっていて感動しました。

今回は以上となります。最後までご覧いただきありがとうございました。

この記事をシェアする

  • facebook
  • twitter
  • hatena
  • line
URLとタイトルをコピーする

実績数30,000件!
サーバーやネットワークなど
ITインフラのことならネットアシストへ、
お気軽にご相談ください