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アドレスが設定されていることなどが条件となります。
参考
設定してみる
ではさっそく設定してみましょう。
今回はAmazon Linux 2のインスタンスで接続ができるように設定します。
# 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とサブネットを同時に作成できるようになったんですね。
しかも「プレビュー」で設定が可視化できる・・!わかりやすくてなっていて感動しました。
今回は以上となります。最後までご覧いただきありがとうございました。