💻

SSMを用いてポートフォワーディングでRDSに繋ぐ際の持続時間について

2023/04/21に公開

こんにちは。深緑です。

ここ数日開発用サーバー群の構築を行っています。
AWSでDBサーバーを建てたはいいけど、ローカルPCからはてどうやって繋ぐかということを調べていて、
SSMを用いてポートフォワーディングにたどり着きました。

SSMを用いてポートフォワーディングでRDSに繋ぐ際の持続時間

SSMを用いたポートフォワーディングそのものについてはこちらの記事が参考になります。

SSMを用いたポートフォワーディングは便利な方法ですが、aws ssm start-sessionすれば永遠にポートフォワーディングが続くわけではありません。
aws ssm start-sessionしてからしばらく放っておくとセッションが切れてしまいRDSに繋がらなくなります。
開発においてはそんなすぐ切れては困るので持続時間を延ばしたくなります。
そんな時はセッションマネージャーの設定画面でセッションの持続時間を変更すればOKです。

AWS Systems Manager > Session Manager > 設定 を開き変更します。
Session Manager の設定画面

「Idle session timeout」「Maximum session duration」を調整すれば、
1時間何もなければ勝手に切れるけど、継続的にアクセスがあれば最大で24時間ポートフォワーディング状態を持続できるということになります。
ちなみにaws ssm start-sessionコマンドの方には持続時間に関するオプションは見当たりませんでした。
--cli-read-timeout--cli-connect-timeoutは用途が違いますね。

SSMを用いたポートフォワーディングのメリット

SSMを用いたポートフォワーディングでRFSに繋ぐ方法のメリットは、通信がHTTPSでありSSHではないことです。
通信のイメージはこちらが分かりやすいです。

HTTPSであり、SSHではないというのは大事なことなんでしょうか?
はい、大事です。
それなりの会社だと、基本SSH接続は自由にできません。
下手するとなんらかの書類を出して申請が必要かもしれません。
出せばいいじゃないとも思えますが、そこそこの開発プロジェクトでメンバー全員をSSH接続できるようにしようとするとかなりの労力が必要です。
というわけでSSHではなく、HTTPSであることは重要なのです。

Discussion