Amazon RDSにIPアドレスを指定して、ローカルPCから接続したいという要望がありました。
今回サーバ移行のプロジェクトで移行前がEC2上にDBサーバがあったので、そういう要望が出たのかなと思います。
EC2ならIPアドレス(グローバル、プライベート)は固定できるので。
以下、Amazon RDSの環境です
・プライベートサブネット
・パブリックアクセスなし
・マルチAZ
・SQL Server 2019 Standard Edition
※MYSQLや他のDBでも同じですが、今回はSQL Serverで確認
ローカル環境はAWS Direct ConnectでAWSのVPCと接続されているので、プライベートIPで接続はできそうです。
以下、接続のイメージです。
[参考(AWS公式サイト)]
VPC の DB インスタンスにアクセスするシナリオ - Amazon Relational Database Service
以下、結論になります。
・プライベートIPではなく、RDSのエンドポイントで接続することが推奨
・プライベートIPでRDSに接続はできる
・プライベートIPは固定できないので、プライベートIPの接続は非推奨
※RDSのエンドポイントは「XXXX.ap-northeast-1.rds.amazonaws.com」のようなURLみたいなものです。
以下のパターンでプライベートIP(EIPも同様)は変更されます。
[参考(AWS公式サイト)]
RDS インスタンスに割り当てられた IP アドレスに関連する問題のトラブルシューティング
前置きが長くなりましたが、
Amazon RDSにプライベートIPで接続する方法になります。
1、RDSのプライマリのAZを確認
⇒「ap-northeast-1a」になります。
2、ネットワークインターフェースでプライベートIPを確認
EC2サービスの「ネットワーク&セキュリティ ⇒ ネットワークインターフェース」
今回はRDSのセキュリティグループと説明(説明 = RDSNetworkInterface)で検索
AZが「ap-northeast-1a」のプライマリプライベートIPアドレスが接続するIP
⇒「192.168.20.133」になります。
ちなみにセカンダリプライベートIP(192.168.20.15)でも接続は可能です
3、ローカルから接続確認
① SSMSから接続確認
サーバー名に「192.168.20.133,1433」を入力し、「接続」ボタンをクリック
「プライベートIP + ,(カンマ)+1433(SQL Serverなので)」
② ODBCから接続する方法
Serverに「192.168.20.133」を入力し、「完了」ボタンをクリック
以上になります。
↓関連記事です。
以下、推奨されているRDSのエンドポイントで接続方法です
以下、RDSのプライベートIPが実際にどの手順で変更になるか?確認した記事です。