目次
とある日
Auroraに踏み台なしで接続する方法を要件が出てきたので調べた記録です。
経緯
EC2を踏み台としてPublic Subnetに構築するのはよくある話。
その踏み台をSSMセッションマネージャーに置き換えたいという要望が出た。
ただ、よくよく考えると踏み台のアクセス先はPrivate SubnetにあるほかEC2だけでなくAuroraのDBサーバーも存在した。
Auroraがあると、踏み台なくすの無理じゃないのかな?となった。
ということで、踏み台なしでAuroraに接続する方法を模索した記録です。
結論
下記の条件下だと無理だという判断。
- プライベートサブネットにAuroraを配置
- MySQL Workbenchなどクライアントツールの使用
だた、VPNを構築すれば行けるのではという話はある。
その場合、現状の環境の変更を最小限で抑えることはできず、セッションマネージャーに置き換える利点が薄くなるのではと。
他にも条件を満たせばできる方法もあるのでそれも記述します。
考案
調べるとAWSでまとまった接続方法があるので基本的にこの中のどれかで接続を実現する。
VPC の DB インスタンスにアクセスするシナリオ - Amazon Aurora
Auroraをパブリックに配置
Amazon RDS コンソールでプライベートおよびパブリック Aurora エンドポイントを設定する
パブリックに配置すれば、普通にアクセスができる。
調べてて、一番多かった方法。
ただ、開発環境は百歩譲っていい気がするが本番環境でやるのはいかがなものか。
さらに、ネットワークを変えるのはかなり影響があるので断念。
VPNで接続
現実的な案としてVPNを接続すればPrivate Subnetでも可能。
プライベートネットワークによってアクセスされる VPC 内の DB インスタンス
DB インスタンスがパブリックにアクセスできない場合は、プライベートネットワークからアクセスするための次のオプションがあります。
- AWS Site-to-Site VPN 接続。詳細については、「AWS Site-to-Site VPN とは」を参照してください。
- AWS Direct Connect 接続。詳細については、「AWS Direct Connect とは」を参照してください。
ただ、VPN接続をするため構築はかなり大変になる見込み。
この案は要件を満たしているのでできそう。
MySQL Workbenchに変わるツール
そもそもの要件として、DBの開発をクライアントツールを使って行えればよいのであれば、AWSでそういったやつないのかなと思い調べた。
クリエエディタなる物が存在する。
Aurora Serverless のクエリエディタの使用 - Amazon Aurora
しかし、Aurora Serverless ではないため不可能と判断。
Serverlessに移行するのはかなり影響があるので難しい。
現行でServerlessを使っているのであれば使えるのでは。
SSMでポートフォワーディング
セッションマネージャー over SSH 経由でプライベートサブネット内のRDSへ接続する方法 - Qiita
SSMで便利な機能が提供されていた。
ただ、よくよく調べるとCLIでしか利用できないのではとなった。
DB開発をCLIで行うのは地獄だと思った。(実体験)
この案の場合開発者にも影響があるので無理だと判断。
Slackで有識者に聞いてみた
色々と調べて確証が得れなかったりしたので、DBREのSlackで聞いてみた。
概ね自分が調べたことと同じ意見でした。
ご協力いただいた方々ありがとうございます。
DBRE Slackワークスペース
今回お世話になったSlackワークスペースについて少しだけ触れます。
DBについてのことならここで質問すれば誰かしら答えてくれると思った。
気になる方は↓
DBREJPのSlack参加URL、無期限にしてみました✨https://t.co/KwoRxSngWm
— tomo 𖠚ᐝ (@tomomo1015) 2021年9月24日
〆
踏み台をなくした場合Auroraにどう接続するのかという問題はよくよく考えるとどうするのだろうとなったので記事にしました。
AWSでそういった機能があるやろうと調べたらまだ一部にしか使えないので今後に期待となった。