背景
プライベートに置いたECSにデプロイしたAPIについて、ブラウザからSwaggerUIで確認したいという要望があったので対応しました。
DBへのポートフォワーディングについての記事はよくありましたが、特殊な行為なのか、ECSへの接続の記事が見つけられなかったので、簡単ですが残しておきます。
(他に、ClientVPNを利用する方法とWindowsサーバーにSMMFleetManagerでRDP接続する方法も試したのですが、ClientVPNは料金が高い&ローカルにインストールするツールの挙動が安定せず、RDP接続はインスタンスタイプでそれなりの性能にしないとまともに使えず断念しました。。)
前提
- プライベートサブネットに、内部ALBのターゲットとしてECSを作成
- プライベート環境にEC2を作成し、セキュリティグループは開けずにセッションマネージャからアクセス可能
対応
# ポートフォワード
# ※9999は任意の値
aws ssm start-session \
--target 踏み台サーバーインスタンスID \
--document-name AWS-StartPortForwardingSessionToRemoteHost \
--parameters '{"portNumber":["80"],"localPortNumber":["9999"],"host":["内部APIドメイン"]}'
# ブラウザでAPIにアクセス
http://localhost:9999/docs
構成図
参考
どなたかの参考になれば幸いです!