CloudSQL インスタンスに接続するのに、通常の3306/tcpを行う方法とは別に、CloudSQL Proxyを使う方法があります。
CloudSQL Proxyを使わない場合、Authorized networksに、GCEインスタンスの外部向けIPアドレス(グローバルIP)を追加する必要があります。追加する必要がないのが、CloudSQL Proxyを使用した接続方法になります。
GCEインスタンスとCloudSQLのネットワーク間をセキュア接続(トンネル接続)するようになります。
CloudSQL Proxy用のClientプログラムのダウンロード
wget -O /usr/local/bin/cloud_sql_proxy wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64
ダウンロードしたプログラムの実行権限を付与
chmod +x /usr/local/bin/cloud_sql_proxy
mysql sock用の領域を作成
mkdir /cloudsql; chmod 777 /cloudsql
CloudSQL Proxy Clientを実行。デーモン実行方法がないようで、標準出力を捨てるようにしています。しないと、
接続ログを標準出力に出力してしまいます。デーモンとして動かす方法を提供してほしい。
cloud_sql_proxy -dir=/cloudsql -instances=project_id:asia-east1:db-name 1> /dev/null 2> /dev/null &
WordPressのwp-config.phpのDB_HOSTを以下のようにmysql sock接続方法に変更することで、CloudSQL Proxy経由で
接続することが可能になります。
define('DB_HOST', 'localhost:/cloudsql/project_id:asia-east1:db-name');
GKEからもCloudSQL Proxyを接続する方法がありますが、後日。