こんにちは、アプリケーションサービス部の遠藤です。
AWS環境の運用で必ずと言っていいほど議論になるのが、「プライベートサブネットにある RDS や ECS にどうやって接続するか」という問題です。
これまでは「踏み台サーバー(Bastion)」を立てるのが定石でしたが、運用担当者としてはパッチ当てや鍵管理、そして地味にかかるインスタンス費用など、悩み種が尽きませんでした。
今回は、そんな運用負荷を劇的に軽減できる EC2 Instance Connect (EIC) Endpoint の導入・接続手順についてご紹介します。
なぜ EIC Endpoint なのか?
一言で言えば、「運用コストゼロで、ゼロトラストな接続口が手に入るから」です。
- サーバーレス: 踏み台用の EC2 が不要になり、OS 管理から解放されます。
- 低コスト: エンドポイント自体の利用料は無料です。
- 高セキュリティ: パブリック IP が不要。IAM 認証と MFA を組み合わせることで、従来の SSH 鍵管理よりも強固な認証が実現できます。
1. EIC Endpoint の作成手順(管理者向け)
まずは接続の「窓口」を作成します。
① セキュリティグループの作成
EIC Endpoint 自体に付与する SG を作成します。
- インバウンドルール: 社内ネットワーク(許可された特定の IP 帯域)からの通信のみを許可します。
② エンドポイントの作成
AWS コンソールの VPC ダッシュボードから作成します。
- [エンドポイント] -> [エンドポイントを作成] をクリック。
- サービスカテゴリ:
EC2 Instance Connect Endpointを選択。 - VPC: 対象の VPC を選択。
- セキュリティグループ: ① で作成した SG を選択。
- サブネット: ターゲットが存在する VPC 内のプライベートサブネットを選択。
③ ターゲット(RDS/ECS)側 SG の修正
接続先のリソースが、EIC Endpoint からの通信を受け入れられるようにします。
- インバウンドルール:
- タイプ: MySQL/Aurora (3306) や SSH (22) など
- ソース: ② で作成した EIC Endpoint のセキュリティグループ ID
2. リソースへの接続手順(利用者向け)
準備が整ったら、ローカル PC から接続してみましょう。最新の AWS CLI が必要です。
RDS (Aurora) への接続
DB クライアント(MySQL Workbench 等)を使いたい場合は、ポートフォワーディングを利用します。
# ローカルの 3306 ポートを RDS の 3306 ポートに転送
aws ec2-instance-connect open-tunnel \
--instance-connect-endpoint-id eice-0123456789abcdefg \
--private-ip-address <RDSのプライベートIPまたはエンドポイント> \
--local-port 3306 \
--remote-port 3306
※ コマンド実行中、ターミナルは閉じないでください。この状態で DB ツールから
localhost:3306へ接続します。
ECS (Fargate) への接続
コンテナ上のアプリケーションポート(例: 80)をローカルに引き込みます。
# Fargate タスクの 80 番ポートをローカルの 8080 に転送
aws ec2-instance-connect open-tunnel \
--instance-connect-endpoint-id eice-0123456789abcdefg \
--private-ip-address <FargateタスクのプライベートIP> \
--local-port 8080 \
--remote-port 80
運用上の留意点
導入してわかった注意点も共有しておきます。
- セッション制限: 最大 1 時間で自動切断されます。長時間の作業には再接続が必要です。
- 帯域幅: 約 10Mbps 制限があります。数 GB クラスのダンプファイルをダウンロードする用途には向きません。
- IAM 権限: 作業者には
ec2-instance-connect:OpenTunnel権限を忘れずに付与してください。
まとめ
EIC Endpoint を導入することで、運用工数を極小化しつつ、セキュアな作業環境を構築できました。
「踏み台サーバーの管理が辛い」「セキュリティレベルを高めたいがコストは抑えたい」という方は、ぜひ試してみてください。
アプリケーションサービス本部
2024年中途入社
アプリケーションサービス本部にてAWSを活用したアプリケーション開発に携わっています!
趣味はお酒とバンドです