追記: 仕様変更により、本記事に記載の方法は利用できなくなっています。
以下の通り、 SSH / RDP のみ利用可能な仕様となっています。
The specified RemotePort is not valid. Specify either 22 or 3389 as the RemotePort and retry your request.
エンジニアの唐津です。
先日、AWS から EC2 Instance Connect Endpoint(EIC Endpoint) という新機能 が発表されましたね。
こちらを利用することで、パブリック IP アドレスを持たない EC2 に SSH/RDS することが可能となります。
それ自体はこれまでも実現可能でしたが、EIC Endpoint はなんと無料で利用可能で、かつ設定も簡単ですので、ぜひ積極的に活用していきたいサービスです(データ転送料金はかかります)。
こちらの導入により Bastion サーバを削減し、セキュアな状況を保ちつつも、コストや運用の手間を削減できるケースも多いのではないでしょうか。
EIC Endpoint を活用して踏み台無しで RDS に接続する
さて、ホットな新機能ということで、色々と検証されている方も多いと思います。
例えば、クラスメソッド様の記事 では、 EC2 だけでなく、 RDS にも踏み台なしで接続可能であることを検証・確認されています。
私も例に漏れず、便利に活用できないかと考え、
上記の記事を参考にさせていただきながら、プライベートサブネットにある RDS インスタンスを対話的に選択し、
接続設定を行うシェルスクリプトを書いてみました。
EIC Endpoint を活用していますが、そもそも EIC や AWS CLI を利用した操作にあまりに馴染みが無い方もいらっしゃるかと思います。
少し事前準備は必要となりますが、普段 AWS CLI 等をあまり使用しない方でも楽に使えるようにできればと思い、
スクリプト実行時には、対象の RDS を選択するだけで、接続設定が完了できるようにしています。
続きを読む