app.juneboku.xyz を GCP で動かしてみる
[https://scrapbox.io/files/6634f9ad3bd0300025cafa5a.webp
- Google Cloud Platform (GCP) なにもわからん
- なにもわからんので app.juneboku.xyz を Google Cloud Platform で動かしてみよう
- app.juneboku.xyz は今のところ Ruby on Rails 製のウェブアプリケーション
メモ
Cloud Run
- アプリケーションの実行環境
- 初回デプロイも 2 回目以降のデプロイも下記コマンドでいけるっぽい
gcloud run deploy app-juneboku-xyz --source . --project app-juneboku-xyz --region asia-northeast1 --allow-unauthenticated --set-env-vars RAILS_MASTER_KEY=$(cat config/master.key)
Cloud SQL
❯ gcloud sql tiers list
gcloud sql instances create app-juneboku-xyz-db --database-version POSTGRES_15 --tier db-f1-micro --region asia-northeast1
gcloud sql users create app-juneboku-xyz --instance=app-juneboku-xyz-db --password=$(cat dbpassword)
Cloud Build
- https://github.com/junebako/app.juneboku.xyz/blob/main/cloudbuild.yaml を書いた
- GitHub のリポジトリを設定して、Trigger として main ブランチへのプッシュを指定しておいた
Cloud Scheduler
- 処理を定期実行する Cron みたいなやつ
- 指定の URL に対して定期的に HTTP GET リクエストを送る、は画面ポチポチだけで実現できた
Cloud Load Balancing
- Cloud Run で動かすウェブアプリケーションに独自ドメインを割り当てるときに使った
Secret Manager
gcloud secrets create RAILS_MASTER_KEY --data-file config/master.key
gcloud projects describe app-juneboku-xyz --format='value(projectNumber)'
gcloud secrets add-iam-policy-binding RAILS_MASTER_KEY --member serviceAccount:${PROJECT_NUMBER}-compute@developer.gserviceaccount.com --role roles/secretmanager.secretAccessor