Cloud SQL にローカルから接続 & dump

gcp

macOS Big Sur で確認済み

ローカル接続

まず、gcloud が動くようにします。

以下からSDKをダウンロードします。

クイックスタート: Cloud SDK スタートガイド
https://cloud.google.com/sdk/docs/quickstart

google-cloud-sdk-350.0.0-darwin-arm.tar.gz みたいなファイルがダウンロードできたら成功

ファイルを解凍して以下でインストールします。

% ./google-cloud-sdk/install.sh

バージョン確認

% gcloud -v
Google Cloud SDK 360.0.0
bq 2.0.71
core 2021.10.04
gsutil 5.3

初期設定します

% gcloud init

以下のコマンドで接続します。

gcloud sql connect [インスタンス名] –user=[ユーザー名]

% gcloud sql connect test_instance --user=postgres

以下のエラーが出ることがあります

Please install a psql client and make sure it is in PATH to be able to connect to the database instance.

その場合 pgql のインストールが必要

% brew install postgresql

mysqlの場合はもうダンプできますね。たぶん。

ローカルにダンプ

postgres の場合は、接続したままでは pg_dump コマンドが使えません。

なので、プロクシを用意する必要があります。

Cloud SQL Auth Proxy をダウンロードします

% curl -o cloud_sql_proxy https://dl.google.com/cloudsql/cloud_sql_proxy.darwin.amd64

Cloud SQL Auth Proxy を動作可能にします。

% chmod +x cloud_sql_proxy

サービスアカウントを作る必要があります。
以下参照

ローカル環境からCloud SQL(MySQL)への接続 – 2020年2月4日
https://qiita.com/koshi_an/items/3dc55439c7e6ed9f8c98

インスタンス接続名を test-db:us-central1:project-test とします。

これでプロクシを生成できます

% ./cloud_sql_proxy -instances=test-db:us-central1:project-test=tcp:13306

あとは、そのプロクシに対して pg_dump を実行するとローカルに dump.sql が生成されます。

% pg_dump -U postgres -h localhost -p 13306 test_db > dump.sql

Cloud SQL

そもそも Cloud SQL とは、
AWS でいう RDS のようなものです。

GCP CloudSQLを使ってみた
https://qiita.com/nunnally_engr_0114/items/b5dfac73b4d3f954a9bf

高可用性とは

シングルゾーンと、複数ゾーン(高可用性)があります。

複数ゾーンの方が2倍の料金がかかるらしい。

高可用性構成の概要
https://cloud.google.com/sql/docs/mysql/high-availability?hl=ja

コメント

タイトルとURLをコピーしました