はじめに
今月アップデートがあり、EC2 Instance Connect でプライベートIPアドレスを使用したSSH、RDP接続が可能になりました。
2023年5月までは、パブリックIPアドレスが必須でしたが、プライベートIPアドレスも使えるようになったのはうれしいですね。
今回は、このEC2 Instance Connect のパブリックIPとプライベートIPのそれぞれの接続方法の違いを調べたので、まとめます。
以下の記事を参考にさせていただきました。
詳しい内容はこちらをみていただくといいと思います。
EC2 Instance Connectの概要
EC2 Instance Connectは、パブリック/プライベートIPアドレスを使用してEC2インスタンスにSSH、RDP接続することをサポートするサービスです。
現在はIPv4のみサポートされています。
また、EC2 Instance Connect自体は無料で利用可能です。
パブリックIPを利用したEC2 Instance Connect
パブリックIPを利用する場合、コンソール画面からIAMベースによる認証でEC2にSSH接続可能です。
Instance MetadataにSSH公開鍵が格納されるので、それを使用してセキュアに接続ができます。
プライベートIPを利用したEC2 Instance Connect
プライベートIPを利用する場合、ユーザーVPC内にEC2 Instance Connect Endpointを作成することで、
「AWS外部→EC2 Instance Connect Endpoint Service → EC2 Instance Connect Endpoint → 対象EC2インスタンス」
の経路で接続可能です。
EC2 Instance Connect EndpointとSession Managerの違い
EC2 Instance Connect Endpointによる接続が、Session Managerと何が違うのか、気になったため、ざっくりですがまとめてみました。
AZ障害への対応可否
- EC2 Instance Connect Endpoint は、 1つのVPCに1つしか作成できないため、作成したサブネットにAZ障害が起きると利用できなくなります。
- Session Managerでは、複数のサブネットにVPCエンドポイントが作成できるため、AZ障害に対応可能です。
必要なエージェント
- EC2 Instance Connect Endpoint を利用するには、EC2 Instance Connect パッケージがEC2 インスタンスにインストールされている必要があります。
- Session Manager を利用するには、AWS Systems Manager エージェント (SSM Agent)がEC2 インスタンスにインストールされている必要があります。
最大セッション時間
- EC2 Instance Connect Endpoint:最大1時間
- Session Manager:最大24時間
EC2以外にEC2 Instance Connect Endpointを利用して接続することができる
EC2 Instance Connect Endpointは、EC2だけでなく、VPCからIPv4で到達可能なサービスにも接続可能です。
例として、RDSへの接続方法を紹介します。
RDSへの接続方法については、こちらの記事にもまとめています。
→2023/6/28に宛先のポート番号はTCP 22、TCP 3389のみとなったため、EC2以外は利用できなくなりました。
おわりに
EC2への接続にはいつもSession ManagerやFleet Managerを利用しているので、今後はEC2 Instance Connectも使ってみようと思います。