今日はなにの日。

気になったこと勉強になったことのメモ。

今日は、Auroraの踏み台サーバーなくして接続する方法を模索の日。

目次

とある日

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 接続のシナリオを示しています。

ただ、VPN接続をするため構築はかなり大変になる見込み。

この案は要件を満たしているのでできそう。

MySQL Workbenchに変わるツール

そもそもの要件として、DBの開発をクライアントツールを使って行えればよいのであれば、AWSでそういったやつないのかなと思い調べた。

クリエエディタなる物が存在する。

Aurora Serverless のクエリエディタの使用 - Amazon Aurora

しかし、Aurora Serverless ではないため不可能と判断。

Serverlessに移行するのはかなり影響があるので難しい。

現行でServerlessを使っているのであれば使えるのでは。

SSMでポートフォワーディング

セッションマネージャー over SSH 経由でプライベートサブネット内のRDSへ接続する方法 - Qiita

SSMで便利な機能が提供されていた。

ただ、よくよく調べるとCLIでしか利用できないのではとなった。

DB開発をCLIで行うのは地獄だと思った。(実体験)

この案の場合開発者にも影響があるので無理だと判断。

Slackで有識者に聞いてみた

f:id:Updraft:20211121222437p:plain

色々と調べて確証が得れなかったりしたので、DBREのSlackで聞いてみた。

概ね自分が調べたことと同じ意見でした。

ご協力いただいた方々ありがとうございます。

dev.classmethod.jp

medium.com

DBRE Slackワークスペース

今回お世話になったSlackワークスペースについて少しだけ触れます。

DBについてのことならここで質問すれば誰かしら答えてくれると思った。

気になる方は↓

踏み台をなくした場合Auroraにどう接続するのかという問題はよくよく考えるとどうするのだろうとなったので記事にしました。

AWSでそういった機能があるやろうと調べたらまだ一部にしか使えないので今後に期待となった。