DataGripにてSSM接続の踏み台サーバを通じてRDSに接続する

公開:2021/01/16
更新:2021/01/17
1 min読了の目安(約1100字TECH技術記事

プライベートサブネット上で稼働するRDSにSSM経由で接続する以下のような構成で、
DataGripを使って楽に接続する時の方法を備忘録として残します

私自身はこの方法で構築したわけではないのですが、踏み台サーバの作成自体はこちらが参考になるものと思います

https://www.ncaq.net/2020/10/12/23/32/16/

方法

DataGripにはコネクション確立前のタイミングをフックして任意のコマンドを動かす機能があるので、
こいつを利用して踏み台に接続するとよさそうです

以下のようなシェルスクリプト connect_to_rds.bash を用意しておきます
鍵ファイル、インスタンスID、RDSのIDは環境に合わせて指定してください

#!/usr/bin/env bash

pkill -f '55432:'
ssh -i ~/.ssh/xxxxx.pem ec2-user@i-yyyyy -fNL 55432:sample.zzzzz.ap-northeast-1.rds.amazonaws.com:5432

DataGripにて新規接続を作成し、以下のように設定してください

General タブはこんなかんじ
お使いのRDSに合わせて任意に指定してください

Options タブの Before connection > Run External tool > External tools > + で以下

この状態でDataGrip上でDBへ接続を行うと、 connect_to_rds.bash が実行され、RDSへ接続できます!
設定に際して、 Unknown tool ~ 的なメッセージが表示される場合は、設定を削除して作り直すとうまくいきます