SQLインスタンスの作成
メニューからストレージ→SQL→インスタンスを作成を選択。
MySQLバージョン5.7を選択して次へ。第2世代を選択。rootのパスワードを入力。詳細設定を表示のカーソルをドリルダウンして、ストレージの自動増量を有効化をチェック除外、自動バックアップと高可用性をチェック除外。インスタンスの作成をクリック。
作成されたインスタンスIDをクリックしてプロパティのインスタンス接続名をメモ帳にコピペ。
Cloud SQL Proxy
VMインスタンスからSQLに接続するにはCloud SQL Proxyでの中継が必要。メニューからAPIs & Serviceでライブラリを選択。検索画面で「SQL」と打ってEnterを押すと「Google Cloud SQL API」が検索されるので、それを選択して有効化。
MySQLでDBの作成
SQLのインスタンスをクリックするとインスタンスの詳細に「Cloud Shellを使用して接続」があるのでそれをクリック。黒い画面に–user=rootが出てきてEnterを押すとrootのパスワードを聞かれるので、さっき自分で設定したパスワードを入力。
mysql> create database dbname;
でdbnameというdb作成
mysql> grant all privileges on dbname.* to dbuser@”%” identified by ‘passw@rd’ with grant option;
でdbuserという名前の新規ユーザを作成、パスワードはpassw@rd。
mysql> select user, host from mysql.user;
でdbuserが作成されていることを確認。
サンプルアプリケーションの起動
VMインスタンスにSSHで接続。まずCloud SQL Proxyのバイナリファイルをダウンロード。
$ cd $HOME/gcp-compute-engine
$ weget https://dl.google.com/cloudsql/cloud_sql_proxy.linux.amd64
ダウンロードしたファイルをサンプルアプリケーションで指示するディレクトリ配下へ配置。$ sudo chmod +x …
で実行権限の設定も忘れずに。
Cloud SQL Proxyが使用する為のディレクトリを作成。
$ sudo mkdir /cloud_sql
$ sudo chmod 777 /cloud_sql
サンプルアプリケーションのプログラムや設定ファイルのDBインスタンス名をさっきメモ帳にコピーしたインスタンス接続名に書き換え。
$ sudo systemctl start …
でサンプルアプリケーションのサービスを起動。
、、、なんだけれども、サービスがなかなか立ち上がらずハマる。ディレクトリへの権限設定の時のコマンド入力内容ミス、サンプルアプリケーション設定ファイルのインスタンス接続名を指定するところに元々記載されていた<>を削除し忘れ、サンプルアプリケーションのインストールと起動の順番間違え、の凡ミスが重なって解決に時間がかかった。IT向いてないかも。
動作確認
GCEでVMインスタンスを作成するときにhttpとhttpsトラフィックを許可するにチェックしたのにも関わらず、VMインスタンスの外部IPのところになるリンク先からアクセスできなかった。httpsはサーバ証明書がないと通信できないのでURLをhttpsからhttpに書き換えればアクセスできるようになる。暗号化されていない通信なので公開には要注意。私の場合、とりあえずサンプルアプリケーションだったのでOK。