手元の作業端末からAmazon RDSに接続する方法

手元の作業端末から、VPCに作成したAmazon RDSに接続したいケースがあります。 開発時にDBクライアントで接続するといった形です。 RDSには様々な方法で接続できます。パターンを整理してみました。
2018.08.08

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

手元の作業端末から、VPCに作成したAmazon RDSに接続したいケースがあります。 開発時にDBクライアントで接続するといった形です。 RDSには様々な方法で接続できます。パターンを整理してみました。

接続パターン

Publicly Accessible オプションを有効化して接続する

RDSをパブリックサブネットに配置し、Publicly Accessibleを有効にする方法です。 パブリックサブネットとは、インターネットゲートウェイへのルーティングが可能なサブネットです。 Publicly Accessibleを有効にすると、RDSのエンドポイントがパブリックIPアドレスに解決されます。 セキュリティグループでクライアントの拠点のIPアドレスだけ許可すれば、拠点からのみ接続できます。

本番データを扱う場合などは、SSLを利用した暗号化を検討します。

踏み台サーバーのSSHポート転送を利用する

パブリックサブネットの踏み台サーバーを利用して、RDSに接続する方法です。 作業端末と踏み台サーバーでSSHポート転送を行います。 通信はSSHにより暗号化されます。 PCで都度、SSHポート転送を行う必要があります。

インターネットVPNを利用する

オンプレミスのルータとVPCでインターネットVPNを利用する方法です。 オンプレミスとVPCがネットワーク的に接続された状態になります。 通信は暗号化された状態でインターネットを通過します。 マネージドVPN接続を利用すると、AWS側の運用コストを下げられます。 最初にオンプレミスのルータを設定する手間はありますが、PC側での設定は不要です。

Direct Connectを利用する

Direct Connectは通信キャリアのサービスと併せて利用する形が多いです。 通信はキャリアが提供する閉域網を通過し、VPCに接続されます。 インターネットVPNと比較すると、高い通信品質を期待できます。 通信がインターネットを通らない点もメリットです。

SSL-VPNを利用する

AWS Marketplaceから、専用のSSLVPN装置や、UTM製品などを起動し利用します。 SSLVPN接続時にユーザー認証を行ったり、SSLによる通信暗号化が行われる点がメリットです。 基本的にはPCに専用のSSLVPNクライアントソフトをインストールする必要があります。

結局どれを選べばいいのか?

ユースケースに応じて選択する形になります。

すぐにでもRDSに接続したい。検証用に利用し、通信の暗号化の考慮は不要な場合、Publicly Accessible オプションを有効化して接続するが適しています。必要に応じて、SSLによる暗号化を検討します。 すぐにRDSに接続したいが、RDSをパブリックサブネットに配置したくない場合、踏み台サーバーのSSHポート転送を利用する方法が良いでしょう。 作業端末ごとにSSHのポート転送を行うのは難しい場合、インターネットVPNかDirect Connectを検討します。通信がインターネットを経由することを許容できない場合や通信品質を求める場合は、Direct Connectが適しています。 追加のユーザー認証を利用したり外出先でも暗号化した状態で接続したい場合、SSL-VPNを検討します。

おわりに

手元の作業端末から、RDSに接続するパターンをご紹介しました。 ユースケースに応じて適切な方法をご検討ください。

参考