Shopping List アプリの環境を Google Cloud Platform 上に構築して運用する
Heroku で運用していた Shopping List アプリを Google Cloud Platform に移行した。
Google Cloud Platform は今回初めて触るため、まずは公式ガイドの Cloud Run 環境での Rails の実行
に従って動くものを構築し、それをベースに手を加えていく形で進めることにした。また、情報源も GCP の公式ガイドやサンプルなど、極力公式の情報に絞って構築するようにした。
個人用のお買い物リストアプリ。実際にほぼ毎日使っている。機能や構成は
Rails と Turbo と Turbo Native for Android によるお買い物リストアプリを開発し運用する
のときから基本的には変わっていない。
方針
- 無料枠を最大限使い、可能な限り運用コストを減らすことにトライする
- 引き続きコードは public リポジトリに置く
- 環境構築に必要な設定は可能な限りコードで管理する
- Slack からデプロイの指示や状況の取得ができるようにする
全体の構成
- Cloud SQL の無料枠はないので、Compute Engine (e2-micro) で PostgreSQL を動かす
- 設定が面倒だったので、こちら を参考に PostgreSQL コンテナをデプロイして構築した
- Cloud Run から Compute Engine に接続するためには、VPC アクセスコネクタが必要
- リージョンは us-west1 に統一
- 無料枠を使えるリージョンが決まっている場合があるため
- 機密情報の管理は
credentials.yml.enc
を使わない
- 必要な機密情報やパラメータはすべて Secret Manager で管理
- 本番イメージ用の Dockerfile を用意
Cloud Build Executer
Cloud Build Notifier
まとめ
- 概ねいい感じに動いている
- 90日間のクレジットがある間に実際の費用を検証したいのだが、クレジットを適用しない場合の実際の費用を確認する方法がいまいちわからない。お支払い画面難しくない?
- IAM をみると「過剰な権限」の警告が大量に発生しているので整理する
- 公式ガイド を参考に Terraform で構成を管理しようとしている
- ネットワークの基礎を復習したくなったので「ネットワークがよくわかる教科書」を読み始めた
- と、いろいろやりたいことは残っているが、ひとまず環境構築はこのぐらいにして Shopping List アプリの機能追加を進めたい