Cloud RunのサーバーからCloud SQLに接続する
#GCP
モチベ
GCP上でdbとサーバーを持って、よしなにセキュアに接続したい
まずこれを読む
Cloud SQL への接続方法を選択する  |  Cloud SQL for MySQL  |  Google Cloud Documentation
VPC Direct Egress で Cloud Run から Cloud SQL にアクセスする | DevelopersIO
Cloud SQL 側がプライベートIPアドレスかパブリックIPアドレスかによって選択肢が変わる
Cloud SQL側はプライベートIPアドレスにできるならしたい
AWSで動くHasura Cloudなどから接続する場合はパブリックにする必要がある
Cloud Runから接続する場合は?
Direct egressを使うとCloud RunからVPC内のプライベートIPアドレスに接続できる!
便利〜
Cloud Run Direct VPC egress
参考
https://blog.g-gen.co.jp/entry/cloudrun-direct-vpc-egress
https://cloud.google.com/blog/ja/products/serverless/direct-vpc-egress-for-cloud-run-is-now-ga
Cloud RunからVPC内のリソース(e.g. Cloud SQL private IP) に接続する仕組み
code:mmd
code:mmd
flowchart LR
subgraph yours"GCPプロジェクト"
c"Cloud Run\n server"
subgraph dvpc"default VPC"
ip"private IP 端点<br/>10.x.x.x"
end
end
subgraph google"Google管理"
sql"Cloud SQL実体"
end
c -- "VPC direct egress" --> ip
yours <-. "PSA peering" .-> google
ip <-..-> sql
DBの認証
接続とは別にDBの認証も必要
手段が2つある
従来のDBのuser/passwordを使用する
IAM DB認証を使う(推奨)
IAMを使う場合
Cloud Runのサーバーで使ってるSAを登録しつつ、DB側でGRANTして権限を付与する必要がある