LoginSignup
2
2

EC2へのSSHでパブリックIP、IGWが不要になりました

Posted at

■概要

セッションマネージャー?と思ったんですが、少し使い勝手が違うみたいです。

Amazon EC2 Instance Connect (EIC) Endpointが使用可能となり、IGWやパブリックIPなしでSSH接続、RDPができます。

Amazon EC2 Instance Connect supports SSH and RDP connectivity without public IP address

■前準備

適当なインスタンスを立ち上げておきます。
ここではパブリックIPを無効化しておきましょう。

パブリック無効化2023615093846.png

もう一つ、エンドポイント用のセキュリティグループを作成します。
セキュリティーグループはインバウンドなし、アウトバウンドを22ポートのみ(インスタンス側SGを許可)で新規作成しました。

インスタンス側に紐づいているセキュリティーグループは上記の新規セキュリティグループからのインバウンド許可します。

■手順

エンドポイントを作成しましょう。
VPCへ移動し、エンドポイントを選択します。

VPC画面20230615094351.png

エンドポイント作成欄にEC2 Instance Connectがありますね。
こちらを選択します。

エンドポイント作成20230615102822.png

その他VPCやセキュリティーグループ、サブネットも設定しましょう。
セキュリティーグループは前もって作成しておいたものです。

エンドポイントその他20230615102950.png

CLIで作成する事も可能です。

aws ec2 create-instance-connect-endpoint \ 
    --subnet-id [SUBNET] \ 
    --security-group-id [SG-ID]

■作成したエンドポイントを使用して接続してみましょう。

EC2インスタンスを選択し、接続を押下。

接続1_20230616115455.png

「EC2 Instance Connect エンドポイントを使用して接続する」を選択。
新規作成したエンドポイントを選択して接続してみましょう。

接続2_20230616115539.png

接続できました!

接続完了後20230616113211.png

コンソール以外でももちろん接続可能です。
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/

2
2
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
2