[GCP] Cloud SQL for MySQLの導入について

Google Cloud Platformを最近使うようになりました。

アプリケーションではデータベースを利用することが多いため、GCPのCloud SQLを使ってみることにしました。

今回は、Cloud SQLにMySQLのインスタンスを作成して、データベース作成・テーブルにデータ追加や参照をしてみようと思います。

スポンサーリンク

Cloud SQL とは

Cloud SQL は、Google Cloud Platform 上のリレーショナル データベースの設定、維持、運用、管理を簡単にできるようにするフルマネージド データベース サービスです。

引用元:https://cloud.google.com/sql/docs/?hl=ja

事前準備

  • GCPにてプロジェクトの作成する
  • 作成したプロジェクトに課金設定を有効にする

上記に関しては、未設定の場合は、以下公式が参考になります。
https://cloud.google.com/sql/docs/mysql/quickstart?hl=ja

インスタンス作成

  1. GCPのメニューからSQLを選択し、インスタンス作成する

  2. MySQLを選択する

  3. インスタンスID・rootパスワードやリージョン・ゾーンなどを設定する


    rootパスワードは、生成ボタンでランダムHash値を生成してくれます。
    作成ボタンを押下する
  4. インスタンス作成完了

ものの数分でMySQLインスタンスが作成できました!!

データベースに関しては、PostgreSQL・SQL Sever(ベータ版)も利用できるようでした。今後増えていくのかな?

自分はMySQLが一番経験が長いので、MySQLを選択してます。

お好みのデータベースエンジンを選んでみてもいいかもです。

データベース操作

Cloud Shellというコンソール画面から作成したインスタンスのデータベースに接続して、Select文を発行してみましょう。

  1. ヘッダー右上の方にコンソールアイコンがあります。
     ←こちらです。
  2. 黒い画面のコンソールからMySQLインスタンス接続してみましょう
    gcloud sql connect <インスタンス名> --user=root
  3. パスワードを聞かれますので、インスタンス生成時に設定したパスワードを入力する

データベース作成

試しにtestdbというDBを作成してみます。

mysql> CREATE DATABASE testdb;
Query OK, 1 row affected (0.04 sec)
mysql> show databases;
+--------------------+
| Database           |
+--------------------+
| information_schema |
| testdb             |
| mysql              |
| performance_schema |
| sys                |
+--------------------+
5 rows in set (0.04 sec)

データ操作

データ追加

USE testdb;
CREATE TABLE users (name VARCHAR(255), skill VARCHAR(255),
    userID INT NOT NULL AUTO_INCREMENT, PRIMARY KEY(userID));
    INSERT INTO users (name, skill) values ("太郎", "PHP");
    INSERT INTO users (name, skill) values ("次郎", "Rails");

データ参照

mysql> SELECT * FROM users;
+--------+-------+--------+
| name   | skill | userID |
+--------+-------+--------+
| 太郎   | PHP   |      1 |
| 次郎   | Rails |      2 |
+--------+-------+--------+
2 rows in set (0.04 sec)

あっという間に、テーブルの参照までできることができました。

クリーンアップ

特にこの後は使わない方は、インスタンスを削除ください。

以下のクリーンアップを参照。
https://cloud.google.com/sql/docs/mysql/quickstart?hl=ja

この後って

Cloud SQLでMySQLのインスタンス作成ができました。

実際は、アプリケーションの層との接続を試すことになると思います。

公式のquickstartでは、App Engine / GKE / Compute Engineなどの実行中アプリケーションからの接続方法も手順が載っていましたので気になった方は、試してみると良いかと思います。

まとめ

インスタンス作成に関して、数分で起動することがきました。

コンソールでGoogle Cloud PlatformからMySQLインスタンスへの接続もUIからできて、めちゃくちゃ楽でした。

次回は、アプリケーションからの接続に関して学習していけたらと思います。