はじめに
今回は、プライベートサブネットのRDSの接続方法についてまとめてみたので共有します。
新サービス「EC2 Instance Connect」 を利用した接続方法についても調査したので必見です。
RDSの接続方法
以下に、4つの接続方法を紹介します。
それぞれメリット・デメリットがあるため、システムに合った方法を選択することをおすすめします。
① EC2を踏み台サーバとして利用する
1つ目は、EC2を踏み台サーバとして利用する方法です。
接続方法は、このようになります。
- プライベートサブネットに踏み台サーバとしてEC2インスタンスを作成し、SSM Agentをインストール
- 踏み台サーバには、Session ManagerまたはFleet Managerでアクセス
- EC2にDBクライアントをインストール
- 踏み台サーバのDBクライアントツールからRDSに接続
※クライアントツールにて、
- GUIを使いたい場合は、Windows + Fleet Manager
- CUIを使いたい場合は、Linux + Session Manager
で踏み台サーバを作成ください。
メリット
- EC2は利用しないときに停止しておくことで、料金を抑えられる
- 操作ログを管理できる
デメリット
- EC2の管理が必要になる
② EC2をポートフォワーディングに利用する
2つ目は、EC2をポートフォワーディングに利用する方法です。
接続方法はこのようになります。
- プライベートサブネットに配置したEC2にSSM Agentをインストール
- 手元のクライアント端末(EC2でない)のDBクライアントから、EC2を経由してRDSに接続
※EC2が、SSH(22)で届いたポートをRDSのポート(3306や5432)に転送
メリット
- EC2は利用しないときに停止しておくことで、料金を抑えられる
- 操作ログを管理できる
デメリット
- EC2の管理が必要になる
- クライアント端末からデータを操作できるため、機密性の高いデータを扱う際には注意が必要になる
③ Client VPNを利用したVPN接続
3つ目は、Client VPNを利用したVPN接続です。
接続方法は、このようになります。
- Client VPNを利用し、RDSへクライアント端末から接続する。
メリット
- 通信はすべて暗号化されるため、セキュア
- マネージドサービスのため、管理の手間が省ける
デメリット
-
①、②と比べるとコストが高い
-
Client VPNのランニングコストは2つに大別されます。
- エンドポイントアソシエーション:0.15USD/時間
※通常は、24/365稼働となるため、関連付けるサブネットごとに、約15,000円/月となります。 - 接続時間:0.05USD/時間
- エンドポイントアソシエーション:0.15USD/時間
-
証明書管理によって、運用コストが変わる
④ EC2 Instance Connect Endpointを利用する
4つ目は、EC2 Instance Connect Endpointを利用する方法です。
→こちらは2023年6月より利用できなくなりました。
- EC2 Instance Connect Endpointを作成
- EC2 Instance Connect Endpointに紐づけるセキュリティグループ設定で、RDSのポート(3306や5432)のアウトバウンド通信を許可
- RDSインスタンス側のセキュリティグループでVPC Endpointからのインバウンド通信を許可
- クライアント環境でAWS CLIを利用できるよう初期設定
- EC2 Instance Connect Endpoint経由でRDSへ接続
メリット
- EC2の管理が不要で、手間が省ける
- EC2 Instance Connect Endpointは利用料金が無料のため、①、②と比べコストが安価に
※データ転送料は課金される
デメリット
- 操作ログを収集する機能が提供されていない(ログはAWS CloudTrailのみに出力される)
- 1つのVPCに1つのEC2 Instance Connect Endpointしか作成できないため、EC2 Instance Connect EndpointのエンドポイントがあるサブネットにAZ障害が起きると使用できない
おわりに
こちらの記事を参考にまとめさせていただきました!