AlloyDB へ 踏み台サーバを経由して接続する方法
自ブログからの引用です。
概要
今働いている RightTouch では、Google Cloud の AlloyDB を利用して基盤の立ち上げを進めています。
AlloyDB には踏み台サーバを利用して接続してみたので、方法をまとめておきたいと思います。
構成
踏み台サーバは VPC 内にありますが、Identity-Aware Proxy (IAP)
を利用することでローカルPCから簡単に SSH 接続することができます。
VPC の 設定
自前で VPC を構築しているものとします。
AlloyDB は Google Cloud が管理するサービスプロデューサー VPC 上に存在するので、AlloyDB に接続するには、作成した VPC と VPC Peering をしておく必要があります。
詳細な手順は こちら で詳しく解説されているので参照してください。
また、VPC に SSH 接続するためには、接続を許可するためのファイアウォールルールを追加する必要があります。
参考
こちらに記載の通り、35.235.240.0/20
から 22 番ポートでのアクセスを許可してください。
VM インスタンスの起動
コンソールで Compute Engine の画面から VM インスタンスを作成します。
サービスアカウントはデフォルトのもので問題ありません。
VPCに配置するため、
詳細オプション - ネットワーキング - ネットワーク インターフェース
の設定を追加するようにしてください。
サービスアカウントの作成
AlloyDB Auth Proxy が利用するサービスアカウントを作成します。必要な権限は以下の通りです。
roles/alloydb.databaseUser
roles/serviceusage.serviceUsageConsumer
roles/alloydb.client
作成したら、JSON 形式で key ファイルをダウンロードしておきます。
また、AlloyDBにアクセスするユーザにもなるので、AlloyDB にユーザを追加しておきます。
踏み台サーバに SSH する
準備が整ったら、ローカルPCから踏み台サーバに SSH します。
gcloud compute ssh eva-knowledge-bastion-test --tunnel-through-iap
--tunnel-through-iap
オプションをつけることで、IAP を経由して VPC 内のインスタンスに SSH 接続することができます。
ログインしたら、VMのセットアップをします。以下のコマンドで、psql
と Alloydb Auth Proxy
をインストールします。
sudo apt update
# psql
sudo apt install -y postgresql-client
# Alloydb Auth Proxy
wget https://storage.googleapis.com/alloydb-auth-proxy/v1.11.2/alloydb-auth-proxy.linux.amd64 -O alloydb-auth-proxy
chmod +x alloydb-auth-proxy
続いて、Alloydb Auth Proxy
を起動します。
nohup ./alloydb-auth-proxy "{接続名}" \
--address=0.0.0.0 \
--port=5432 \
--credentials-file {Creadential File} \
--auto-iam-authn &
{接続名}
は AlloyDB のインスタンスの 接続性 - 接続 URI
から取得してください。
--credentials-file
には、作成したサービスアカウントの JSON ファイルパスを指定しますので、Uploadしておいてください。
nohup
コマンドでバックグラウンドでプロセスを永続化します。
最後に、psql
で AlloyDB に接続してみます。
psql -h localhost -p 5432 {DB名} -U {サービスアカウント名}
{サービスアカウント名}
には AlloyDB Auth Proxy
で指定したサービスアカウント名を指定してください。
これで、ローカルPCから AlloyDB に接続することができました。
おわり
IAP
や AlloyDB
の IAM ユーザを利用することで、簡単に接続の管理ができました。
何かの参考になれば幸いです!
Discussion