EC2 Instance Connect Endpoint でプライベートサブネットにあるリソースへセキュアにアクセスしてみた

記事タイトルとURLをコピーする

こんにちは、アプリケーションサービス部の遠藤です。

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 ダッシュボードから作成します。

  1. [エンドポイント] -> [エンドポイントを作成] をクリック。
  2. サービスカテゴリ: EC2 Instance Connect Endpoint を選択。
  3. VPC: 対象の VPC を選択。
  4. セキュリティグループ: ① で作成した SG を選択。
  5. サブネット: ターゲットが存在する 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を活用したアプリケーション開発に携わっています!
趣味はお酒とバンドです