■概要
セッションマネージャー?と思ったんですが、少し使い勝手が違うみたいです。
Amazon EC2 Instance Connect (EIC) Endpointが使用可能となり、IGWやパブリックIPなしでSSH接続、RDPができます。
Amazon EC2 Instance Connect supports SSH and RDP connectivity without public IP address
■前準備
適当なインスタンスを立ち上げておきます。
ここではパブリックIPを無効化しておきましょう。
もう一つ、エンドポイント用のセキュリティグループを作成します。
セキュリティーグループはインバウンドなし、アウトバウンドを22ポートのみ(インスタンス側SGを許可)で新規作成しました。
インスタンス側に紐づいているセキュリティーグループは上記の新規セキュリティグループからのインバウンド許可します。
■手順
エンドポイントを作成しましょう。
VPCへ移動し、エンドポイントを選択します。
エンドポイント作成欄にEC2 Instance Connectがありますね。
こちらを選択します。
その他VPCやセキュリティーグループ、サブネットも設定しましょう。
セキュリティーグループは前もって作成しておいたものです。
CLIで作成する事も可能です。
aws ec2 create-instance-connect-endpoint \
--subnet-id [SUBNET] \
--security-group-id [SG-ID]
■作成したエンドポイントを使用して接続してみましょう。
EC2インスタンスを選択し、接続を押下。
「EC2 Instance Connect エンドポイントを使用して接続する」を選択。
新規作成したエンドポイントを選択して接続してみましょう。
接続できました!
コンソール以外でももちろん接続可能です。
CLIを使用して接続する必要があります。
コマンドは以下です。
ssh ec2-user@[INSTANCE] \
-i [SSH-KEY] \
-o ProxyCommand='aws ec2-instance-connect open-tunnel \
--instance-id %h'
■最後に
IPやIGWを使用する必要がなくローカルから接続する事も可能なので運用の可能性が広がりますね。
そっちも試してみたいと思います。
ただこの検証だけだとセッションマネージャーとどう違うんだろう…?と思ったんですが、見事にまとまっている記事がありました…。
気になる方はこちらも是非!
EC2 Instance Connect Endpoint と Session Managerの違いをまとめてみた
https://dev.classmethod.jp/articles/compare-eic-endpoint-and-session-manager/