はじめに
Cloud SQLは触ったことなかったので、試験対策に試してみた。

コンセプト | Cloud SQL ドキュメント | Google Cloud
インスタンスの作成
SQLのストレージエンジンを選択

基本項目

詳細項目





接続方法
接続方法 | やり方 |
SQLクライアントからグローバルIPで接続 | mysql –host=[INSTANCE_IP] –user=root –password |
gcloudコマンドで接続 | gcloud sql connect [INSTANCE_ID] –user=root |
Cloud SQL Proxy 経由で接続 |
mysqlコマンド
# mysql --host=35.238.167.185 --user=root --password
Enter password:
Welcome to the MariaDB monitor. Commands end with ; or \g.
Your MySQL connection id is 267
Server version: 5.7.32-google-log (Google)
Copyright (c) 2000, 2018, Oracle, MariaDB Corporation Ab and others.
Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.
MySQL [(none)]> quit
Bye
gcloud sql connect
$ gcloud sql connect testsql
API [sqladmin.googleapis.com] not enabled on project [853816637811].
Would you like to enable and retry (this will take a few minutes)?
(y/N)? y
Enabling service [sqladmin.googleapis.com] on project [853816637811]...
Operation "operations/acf.p2-853816637811-51910d9b-764c-4971-87e5-3f87a51c76c3" finished successfully.
Allowlisting your IP for incoming connection for 5 minutes...done.
Connecting to database with SQL user [root].Enter password:
Welcome to the MySQL monitor. Commands end with ; or \g.
Your MySQL connection id is 283
Server version: 5.7.32-google-log (Google)
Copyright (c) 2000, 2021, Oracle and/or its affiliates.
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>
接続の際にはネットワークを許可しておく必要がある。
gcloud sql connectの場合、gcloudがそこらへんもやっておいてくれる。

Cloud SQLのそのほかの機能
高可用性
高可用性オプションを有効化していると、リージョン内でフェイルオーバーができたりする。
クローン
クローンを実施すると、データベースのコピーが作成できる。


gcloud sqlコマンド
Databaseの操作はgcloudでもある程度実施は可能
### connects to a Cloud SQL instance
gcloud sql connect INSTANCE \
[--database=DATABASE, -d DATABASE] \
[--user=USER, -u USER] \
[GCLOUD_WIDE_FLAG …]
### creates a database for a Cloud SQL instance
gcloud sql databases create DATABASE --instance=INSTANCE, -i INSTANCE \
[--async] \
[--charset=CHARSET] \
[--collation=COLLATION] \
[GCLOUD_WIDE_FLAG …]
### lists databases for a Cloud SQL instance
gcloud sql databases list --instance=INSTANCE, -i INSTANCE \
[--filter=EXPRESSION] \
[--limit=LIMIT] \
[--page-size=PAGE_SIZE] \
[--sort-by=[FIELD,…]] \
[--uri] \
[GCLOUD_WIDE_FLAG …]
実行例.
$ gcloud sql databases list --instance=testsql
NAME CHARSET COLLATION
information_schema utf8 utf8_general_ci
mysql utf8 utf8_general_ci
performance_schema utf8 utf8_general_ci
sys utf8 utf8_general_ci
### creates a backup of a Cloud SQL instance
gcloud sql backups create --instance=INSTANCE, -i INSTANCE \
[--async] \
[--description=DESCRIPTION] \
[--location=LOCATION] \
[GCLOUD_WIDE_FLAG …]
### 高可用性のCloudSQLインスタンスをフェイルオーバーします(要高可用性オプション)
gcloud sql instances failover INSTANCE \
[--async] \
[GCLOUD_WIDE_FLAG …]
スケールアウト
リード性能が足りない場合、リードレプリカを使ってスケールアウトができる。
なお、ライト性能が足りない場合はインスタンスのスペック自体をあげる必要がある。

コメント