ローカルからAWS Client VPN経由でPrivate Subnet内のAurora DBに接続してみた
はじめに
みなさん、AWSのAuroraやRDSに接続する時にどんな方法で接続していますか?私の場合、つい最近まで踏み台サーバー(bastion)経由でSSHトンネルを使っていました。この方法だと少し煩わしかったので、もっと便利な方法がないか探したら、AWS Client VPNに辿り着き、VPNに接続するだけで繋がるようになりましたので、その設定方法について共有したいと思います。
AWS Client VPNとは
公式ドキュメントはこちらをご参考ください。
一言でいうと、AWSのリソースに安全にアクセスできるマネージドVPNサービスです。(オンプレ環境のリソースアクセスにも対応できるらしいです。)
AWS Client VPN構築
クラスメソッドにとても丁寧な記事がありますので、ご参考ください。
[AWS]踏み台をワンチャンなくせる!?VPC接続にClient VPNを使ってみよう
構築完了したら、次へ進みください。
今回の構成
Auroraへ接続設定
AWS Client VPNエンドポイント用のSecurity Group作成
まず、Aurora側でAWS Client VPNエンドポイントからのInboundを許可するために、AWS Client VPNエンドポイント用のSecurity Groupが必要です。下記がAWS Client VPNエンドポイント用のSecurity Groupです。
Security Group作成完了したら、AWS Client VPNエンドポイントのSecurity Groupとして設定してください。
Aurora側のSecurity GroupでInbound許可
上記で作成したAWS Client VPNエンドポイントのSecurity GroupにDBのPortへのInbound許可を追加します。
AWS Client VPNエンドポイントにDBのsubnet関連付けを追加
エンドポイントのネットワーク関連付けでDBのVPCとSubnetを指定して追加します。
AWS Client VPNエンドポイントに承認ルール追加
DBのSubnetへの承認ルールを追加します。
これで設定は完了です。
ユースケース
VPNに接続するだけで、DBのHostとしてAuroraのエンドポイントをそのまま使えます。
- flywayでマイグレーション
- psql,TablePlus等のツールで接続
注意事項
- 関連付けごとに $0.15/h がかかる(VPNに接続してなくても)
- VPN接続時間料金 $0.05/h
- 多数のユーザーが短期間で接続・切断繰り返すと料金が増える
- 使わ終わったらちゃんと切っておく
最後に
一度設定してしまうと、その後はVPN接続するだけで繋がるので、踏み台経由よりだいぶ利便性が上がったと思いますが、いかがでしょうか?
引き続きDevOpsの利便性向上のためのツール導入をして行きたいと思います。少しでもご参考になれれば幸いでございます。
Discussion