AWSのRDSを構築し、いざローカルからRDSのエンドポイントを指定して、インターネットごしで接続しようとしたら。。。
繋がらない!
という事をよくやってしまうのですが、大体原因はこの3つの設定ミスだったりします。
- セキュリティグループ
- RDSのパブリックアクセス設定
- VPCのホスト名の解決
この3つの設定を見直す事でだいたい解決すると思うので、説明してみたいと思います。
セキュリティグループ
RDSに限らずこういった繋がらない!となったときにまず確認したいのはセキュリティグループの設定です。
AWSのセキュリティグループは基本的にブロックなので、明示的にフルオープンの設定なんかを入れていない限りは、RDSを構築した後に、接続を許可する設定を追加してあげなければなりません。
「タイプ」はRDSで使用するDBにもよりますが、この場合はMysql/Auroraを構築したとして、3306ポートを指定します。
「ソース」の部分に接続元のグローバルIPアドレスを指定することで許可設定を追加します。
RDSのパブリックアクセス設定
RDSはパブリックなサブネットに作成するだけではインターネットごしにパブリックな接続は拒否されてしまいますので、RDS設定でパブリックアクセスを「あり」に設定する必要があります。
デフォルトは「なし」になっているので、忘れがちな設定です。
VPCのホスト名の解決
VPCを作成すると、VPCの設定でデフォルトではこの「DNSホスト名」が無効になっています。
このままですと、RDSのエンドポイントを名前解決してくれないため、接続できなくなっていますので、この「DNSホスト名」を有効にします。
RDSのあるVPCを選択して「アクション」→「DNSホスト名を編集」をクリックします。
すると「有効化」にチェックすることができるので、チェックして「変更を保存」をクリック
こうすることで、RDSのエンドポイントを名前解決することができるようになり、RDSへエンドポイントで接続できるようになります。
RDSへ繋がらない!となったときは、まずこの3つの設定を見直してみることをおすすめします。
コメント