経緯
Googleが出しているMySQLライクなDBクラウドサービスこと、Cloud SQLがあるが、IP制限が必須である。
もちろんセキュリティ的には重要なのだが、自宅のIPがしょっちゅう変わる身としては毎回設定し直さないといけないので面倒だったりする。
仕方ないなぁと思ってたらどうやら公式で出しているプロキシ機能を使うと簡単にIP制限を回避できるらしい ってことで試してみた
準備
認証
当然どのサーバーからも接続させるわけにはいかないので何らかで許可されたものか確認を担保する必要がある。Cloud SQLではgcloudコマンドで認証できる
すでにインストール&認証済みならスキップ
Macなら以下でインストールできる
curl https://sdk.cloud.google.com | bash
で、初回のみ認証
gcloud auth login
プロキシのインストール
curl -L https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64 > /usr/local/bin/cloud_sql_proxy
M1Macの場合
curl -L https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.arm64 /usr/local/bin/cloud_sql_proxy
実行権限の付加
chmod +x /usr/local/bin/cloud_sql_proxy
これで cloud_sql_proxy -h
とかするとコマンドが叩けることが確認できるはず
やり方
プロキシを起動する際は以下のコマンド
cloud_sql_proxy -dir ~/ -instances <プロジェクトID>:<リージョン>:<データベースのインスタンスID>
以下のように表示されれば成功 Macだと /Users/thr3a/my-project:asia-northeast1:my-database にソケットファイルが作成されている
2019/10/15 08:36:53 current FDs rlimit set to 12800, wanted limit is 8500. Nothing to do here. 2019/10/15 08:36:54 Listening on /Users/thr3a/my-project:asia-northeast1:my-database for my-project:asia-northeast1:my-database 2019/10/15 08:36:54 Ready for new connections
で、接続 ここではSequel Proでの設定例を教示
コマンドで接続したい場合はソケットを -S
で指定する。
mysql -u thr3a -p -S /Users/thr3a/my-project:asia-northeast1:my-database
あとはSQLの接続前にこのプロキシを起動しておけば、どこからでもSQLに接続できる やったね