RDS の MySQL インスタンスにローカルから接続する

自分がメンテナンスしている AWS RDS の MySQL インスタンスは private subnet 内には配置されている。そのため自分のローカルなど外部からはネットワークレベルで接続できないようになっている。しかし稀に接続したくなることがある。昔だと SSH Port Forwarding を使用していたけど今はどうやるのかなと調べたのが今回の記事です。

どうやったのか

AWSSession Manager を使用しました。

事前準備

実行

下記コマンドを実行する

aws ssm start-session \
   --target [EC2 のインスタンスID] \
   --document-name AWS-StartPortForwardingSessionToRemoteHost \
   --parameters '{"host":["[RDS endpoint]"], "portNumber": ["3306"], "localPortNumber": ["3306"]}'

うまく実行されれば Waiting for connections... となるので後は mysql command や任意の MySQL Client を使ってホストが localhost, port が 3306 を使用して接続するだけでいける

まとめ

Session Manager 便利