開発背景
こんにちは。
現在、Flutter&Firebaseでアプリを作っているのですが、Firebase Firestoreの無料枠は大変助かるものの、細かい検索に対応するには限界を感じているので、GCPのCloudSQLを利用できたらいいなーなんて思い、とりあえず試しに作ってみる次第です。
開発指針
アプリからGCPのCloudSQLに接続するまでに、2つのパターンを想定してみました。
- GCPのCloudFunctionsでSQLを操作し、アプリが接続できるAPIを作る
- FirebaseのCloudFunctionsでSQLを操作し、アプリが接続できるAPIを作る
料金のことを考えると、2で無料枠のあるFirebaseでAPIを作成した方がよさそうな気がしたのですが、CloudSQLに接続するにはアイパスで繋げる方法しか見つからず、GCP内でAPIとデータベース間を安全に接続できるであろう1の方法を採択してみました。
下記の公式ドキュメントにトライの方法があったので、そのまま試してみます。
https://cloud.google.com/sql/docs/mysql/connect-functions
#手順
-
Cloud SQL APIを有効にする
-
CloudSQLをプライベートIPで作成する
-
Cloud SQL インスタンスと同じ VPC ネットワークにサーバーレス VPC アクセス コネクタを作成します。
-
コネクタを使用するように Cloud Functions を構成します。
-
サンプルを参考にCloud Functionsで関数を作って完成