前書き
検証のため開発環境RDSを端末から繋ぎたいということがある。
(通常はproxy経由で接続してもらったりしているのだが、それもできない場合)
その時の設定手順とハマるポイントをまとめたので記載します。
設定手順
今回はDBのクローンで作ります
-
ネットワーク&セキュリティを設定
サブネットグループ: publicアクセス可能なものを選択
パブリックアクセシビリティ:はい
を選択
-
セキュリティグループ
インバウンドで3306ポート(MySQLなら)を接続可能にしたセキュリティグループを設定します
この時ソースを0.0.0.0/0
にすることは絶対にやめましょう
信頼できるIPからのみ接続可能にしてください
確認
- digコマンドでRDSのエンドポイントにGIPが設定されていることを確認しましょう
dig hogehoge.rds.amazonaws.com
- MySQL接続確認
mysql -hhogehoge.rds.amazonaws.com -uhogehoge -ppassword
期待通り接続できればOKです。
もし、Timeoutするような(遅くても10秒以上接続にかかる)反応が見えた場合はルーティング周りの設定を疑って見てください。すぐに応答があればセキュリティグループやmysqlコマンド周りを疑ってみてください。
ハマりポイント
サブネットグループはpublicアクセス可能なものを選択しましょう
具体的にはVPCのサブネットでインターネットゲートウェイをルートテーブルの関連付けに設定しているものを作ります
※グループを作るので最低2つ必要です
RDSのサブネットグループで作成したサブネットでDBサブネットグループを作成します
これをネットワーク&セキュリティを設定
で選択します
あとがき
今回開発環境DBを一時的に設定しましたが、もし本番環境DBもやるとなると暗号化とかIAMとかしっかり設計しないといけないと思います。この手順はセキュリティという面では不足しているのでそれを理解した上で利用してください。