みなさん、こんにちは。
何か新しい事に挑戦しようと思い、nuxt.jsとfirebaseからのGoogle Cloud Platformを勉強し始めました。
nuxt.js + firebaseの環境構成は初め見たときかなり斬新で楽しいのですが、Firestore + Cloud Functionsの組み合わせが自分にはちょっと難易度高すぎてバックエンドはlaravel + SQLがやっぱり良いなと。
・・・というわけで、今回はGoogle Cloud Platform(以下、GCP)のCloud SQLインスタンスの作成にチャレンジしてみました。
本当は、ほぼこの話(アドベントカレンダー)のためにフロントnuxt.js環境、バックエンドlaravel + firebase + Cloud SQLで作ったので実際に今回作成したデータベースに接続するところまで記載したかったのですが、久しぶりに調べながら記事を書いていたら時間がかかり過ぎて、到底終わらない量になってしまいました。
内容的にご存知の方には全く面白く無い内容に仕上がってる気がしますが、「Google Cloud PlatformにCloud SQLインスタンスを作成するのって、意外と楽なんだな。今度やってみようかな。」みたいに思ってくれる人がいると良いなと思い書いたのでよかったら最後までお付き合いくださいませ。
前提条件
前提条件としてGCPのアカウントの作成、Cloud SDKのインストールは完了しているものとします。
また、GCPのCloud SQL インスタンスは無料枠が存在しないようなので、今回はGCPアカウントを初回作成した際に割り当てられる無償クレジットを使っています。
Cloud SQL インスタンスを作成する
GCP管理画面からSQLを選択すると、Cloud SQLインスタンス作成画面が開きます。
「インスタンスを作成」を選択しましょう。
データベースエンジンの選択
現在GCPではMySQL、PostgreSQL、SQL Serverの3種類が選択出来ます。
この辺を見た感じ、単純なWEBアプリケーションならMySQLのパフォーマンスが良さげだったので今回はMySQLを選択して進みます。
DBインスタンスの詳細を設定
作成するインスタンスのマシンタイプやストレージ容量はここで指定する事ができます。
マシンタイプはデフォルトdb-n1-standard-1
という本番運用可能なものが指定されています。
とりあえず使ってみたい課金額が気になる人はここで最小構成の物を選んでみると良いと思います。(最小構成で課金が始まったら月額およそ800円くらい?)
パブリックIPの設定
パブリックネットワークから接続する場合はここでネットワークを指定する必要があるようです。
ただ、GCP内から接続する場合は特に何も設定なしで
作成するとGCP管理画面上ではこんな感じで表示されます。
データベースを作成してみる
作成したインスタンスを参照し、データベースタブから新規データベースが作成出来ます。
試しにテストデータベースを作成してみます。
データベース名を適当に決めて、あとはデフォルトのままで良さそうなので「作成」しました。
データベースに接続する
作成したデータベースに接続してみます。
接続はGCPのWEB画面上にあるgcloud CLIから接続出来ます。
gcloud CLIを起動したら(画面右上のコンソールアイコンをクリックして起動)以下のコマンドで接続出来ます。
gcloud sql connect <データベース名> --user=root
無事、データベースに接続する事ができました!!
その他の話については、また機会があれば・・・そうですね、来年のクリスマス頃にまた!!