cloudsqlをcloudsqlproxy経由で通信する構築手順

4212 ワード

gceからcloudsqlへの接続はcloudsqlproxyを使わなくても可能だが、スムーズに暗号化通信するため、cloudsqlproxyを導入する。

cloud_sql_proxy導入手順

    1. cloudsqlへアクセスするサービスアカウント新規作成(既存SAでも良い)+JSONキーを発行する
    1. Cloud SQL Proxyをインストールしよう
      vm側にsshログインしてrootユーザになってから以下コマンドを実行する。
# cd /root

# wget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64 -O cloud_sql_proxy

# chmod +x cloud_sql_proxy

# chown root:root cloud_sql_proxy

# mv cloud_sql_proxy /usr/bin/

ダウンロードしたjsonキーを貼り付ける。

# vi /root/GQL-Connect.json
{
  "type": "service_account",
  "project_id": "*****work",
  "private_key_id": "*************************",
  "private_key": "-----BEGIN PRIVATE KEY-----\nMIIEvwIBADANBg4qg==\n-----END PRIVATE KEY-----\n",
  "client_email": "**********@**********.iam.gserviceaccount.com",
  "client_id": "11110000",
  "auth_uri": "https://accounts.google.com/o/oauth2/auth",
  "token_uri": "https://accounts.google.com/o/oauth2/token",
  "auth_provider_x509_cert_url": "https://www.googleapis.com/oauth2/v1/certs",
  "client_x509_cert_url": "https://www.googleapis.com/robot/v1/metadata/x509/dbadmin1641%40analog-vault-55555.iam.gserviceaccount.com"
}

ソケットになるディレクトリを作成する。

# mkdir /cloudsql
# chmod 777 /cloudsql

    1. Cloud SQL Proxyの起動テスト・接続テスト
# cloud_sql_proxy -dir=/cloudsql -instances=**********:asia-northeast1:cloudsql1 -credential_file=/root/GQL-Connect.json &

#********** 07:43:32 Ready for new connections
#“-instances=インスタンス接続名”にはメモした接続名を入れる。
このコマンドが動くとCloud SQL Proxyが起動することが確認できる。

違うコンソールを開いて接続できるか確認する。

# mysql -u root -p -S /cloudsql/**********:asia-northeast1:cloudsql1

Enter password:
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 227
Server version: 5.7.14-google-log (Google)

Copyright (c) 2000, 2017, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql>

問題なければ上のように接続が確認できる。

    1. Cloud SQL ProxyのSystemd化手順
# vi /etc/systemd/system/cloud_sql_proxy.service

[Unit]
Description = Cloud SQL Proxy Daemon
After = network.target

[Service]
ExecStart = /bin/cloud_sql_proxy -dir=/cloudsql -instances=**********:asia-northeast1:cloudsql1 -credential_file=/root/GQL-Connect.json
ExecStop = /bin/kill ${MAINPID}
ExecReload = /bin/kill -HUP ${MAINPID}
Restart = always
Type = simple
LimitNOFILE=65536

[Install]
WantedBy = multi-user.target

ExecStartの-instances=の後はGoogle Cloud SQLの接続インスタンス名を環境に合わせてそれぞれ変更すること。

  • 5.自動起動設定を行う。
# systemctl start cloud_sql_proxy
# systemctl enable cloud_sql_proxy

再起動しよう

# reboot now

再起動してCloud SQL Proxyが起動していたら大丈夫。


GCP Cloud SQLにCloud SQL Proxyで接続しよう。Systemd化してデーモン化!