Cloud SQL 試してみた

GCP

はじめに

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 …]

スケールアウト

リード性能が足りない場合、リードレプリカを使ってスケールアウトができる。
なお、ライト性能が足りない場合はインスタンスのスペック自体をあげる必要がある。

コメント

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