はじめに
MySQLを用いたCRUDを行うSpringBootアプリケーションを、App Engineスタンダード環境にデプロイし、プライベートIPでCloud SQLへ接続を行う大枠の手順についてまとめます。
環境
アプリケーション環境
- 言語: Java8
- FW: SpringBoot
- ビルドツール: Maven3.5.4
- DB: MySQL5.7
GCP環境
やりたいこと
今回やりたいことは、上記環境に基づいて作成したSpringBootアプリケーションをApp Engine上で動かし、Cloud SQLにプライベートIPでアクセスすることです。
App Engine上でデータベースを使う際は、App Engine内でミドルウェアとしてのデータベースを使うのは一般的ではなくGCPのストレージサービスを使用することになりますので、今回はデータベースとしてCloud SQLを使います。
手順
App Engineの準備
この段階でデプロイしてもデータベースの設定がローカルのままなのでエラーになりますが、以降のステップでCloud SQLと連携すると動くようになります。
なお、#2でSpringBootの実行ファイル形式をjarからwarに変更します。
また、SpringBootアプリケーションのビルドやデプロイは以下のコマンドを使いました。
mvn clean install
mvn package appengine:deploy
VPCネットワークの準備
Cloud SQLの準備
- Cloud SQLでMySQLインスタンスの作成
- プライベートIPに作成したVPCネットワークを割り当てる
- Cloud ShellでMySQLインスタンスにアクセスしデータベースを作成
- SpringBootアプリケーションにCloud SQL用の設定をpom.xmlに追加
サーバレスVPCアクセスコネクタ作成
ここまでの設定を行い、GAEにデプロイすると動くかと思います。今回はざっくりとした手順のみまとめましたが、今後詳しい設定手順をまとめようと思います。