ローカル環境からプライベートサブネットにあるRDSに接続する

ローカル環境からプライベートサブネットにあるRDSに接続する方法です。

RDSのエンドポイントで接続することが推奨されているので、その手順を作成しようと思ったのですが、設定不要でした。

でも、気になっていたことを書いていきます。

 

以下、Amazon RDSの環境です

・プライベートサブネット

・パブリックアクセスなし

・マルチAZ

SQL Server 2019 Standard Edition

 ※MYSQLや他のDBでも同じですが、今回はSQL Serverで確認

 

ローカル環境はAWS Direct ConnectでAWSVPCと接続されています。

以下、接続のイメージです。

[参考(AWS公式サイト)]

VPC の DB インスタンスにアクセスするシナリオ - Amazon Relational Database Service

 

RDSがプライベートサブネットにあって、パブリックアクセスなしでRDSのエンドポイントが指定できるのか?という疑問がありました。

結果、特に何も設定せずにできました。

 

一部隠していますが、赤枠がRDSのエンドポイントです。

「s-rds-test.c9XXXXXXXXXX.ap-northeast-1.rds.amazonaws.com」

 

以下がRDSのプライベートIPです

「193.168.20.133」

 

 

nslookupでIPを逆引きするとできました!!(特に設定はしていない)

# nslookup RDSのエンドポイント

AWS Direct Connectが接続してない環境でも逆引きできます

 

長くなりましたが、

RDSのエンドポイントで接続することが推奨されているので、その手順となります。

 

設定は。。特に何も必要ないです。

なので、確認のみになります。

 

3、ローカルから接続確認

① SSMSから接続確認

 サーバー名に「s-rds-test.c9XXXXXXXXXX.ap-northeast-1.rds.amazonaws.com」を入力し、「接続」ボタンをクリック

 

ODBCから接続する方法

 Serverに「s-rds-test.c9XXXXXXXXXX.ap-northeast-1.rds.amazonaws.com」を入力し、「完了」ボタンをクリック

 

以上になります。

 

個人的に思ったこと

「ローカル環境からプライベートサブネットにあるRDSに接続する方法」をネットで検索してみたのですが、あまりヒットしませんでした。

今となれば「RDSのエンドポイントで接続する」のが当たり前で設定も不要なので、誰も詳しい記事にしていなかったのだと思いました。

私も特に何も考えずパブリックサブネットにあるRDSはエンドポイントで接続していたので。。

 

RDSのパブリックアクセス有無の設定は「ネットワークインターフェース」にパブリックIPを付与するしないだけで。

サブネットはどっち(パブリック、プライベート)にあるかだけで。

どんな設定にしてもRDSのエンドポイントはDNSで逆引きできるので、RDSに接続できる環境ならばRDSのエンドポイントで接続できるってことなんですかね。

 

プライベートにあるインスタンスはなんとなくDNSで逆引きできないのかな?と思っていましたが、気のせいでした。。