Skip to content

inakam/boilerplate-googlecloud-nextjs-echo

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Google Cloud (Terraform) + Next.js + Echo ボイラープレート

ローカル環境のTerraformから操作を行い、GCP上にフロントエンド(Next.js)とバックエンド(Echo)をデプロイするボイラープレートです。
ハッカソンなどで短時間で最低限の環境を構築する必要がある場合に利用できます。

概要

  • フロントエンド
    • Next.js
      • TypeScript
      • Tailwind CSS
      • ESLint
    • StandaloneモードでCloud Runにデプロイを行います
  • バックエンド
    • Go
      • APIフレームワークとしてEcho
    • Cloud Runにデプロイを行います
      • GCSがマウントされており、GCS上にファイルを保存することでSQLiteを安い料金で利用できるように設定されています
        • この機能のためにCloud Runの同時実行数は1に設定されているため、ご注意ください
        • バケット名を指定しないようにすることで、この機能は自動的に無効化されます
  • インフラ
    • TerraformによるIaC
      • 一連のデプロイをまとめるツールとしてもTerraformが機能しています
    • Google Cloud Platformにデプロイを行います

初期設定

  • terraform/variables.tf の修正
    • variable "project_id" の値を自身のGCPのプロジェクトIDに変更
  • terraform/provider.tf の修正
    • あらかじめGCSのバケットを作成する
    • backend "gcs" の bucket の値を作成したGCSのバケット名に変更
  • terraform/variables.tf の修正
    • variable "name" の値を任意の名前に修正
    • 複数のプロダクトをこのテンプレートでデプロイすると作成するバケット名が衝突する可能性があるため、一意の名前にしてください

必要なソフトウェアのインストール

  • Docker
  • Terraform
  • Google Cloud SDK
brew install terraform
brew install --cask docker
brew install --cask google-cloud-sdk

インフラ 事前準備

brew install --cask google-cloud-sdk
gcloud init
gcloud config configurations activate default
gcloud auth login
gcloud config set project [PROJECT_IDを入れる]
gcloud auth application-default login
gcloud auth configure-docker
gcloud auth configure-docker us-east1-docker.pkg.dev

ローカル開発

docker compose build
docker compose up

もしくは以下の操作を行うことで、それぞれのサービスを起動することができます。

cd [frontend|backend]
docker compose build
docker compose up

デプロイ

cd terraform
terraform init
terraform apply
  • デプロイが完了したら表示されるそれぞれのURLにアクセスしてください
    • google_cloud_run_backend_url = "https://xxxxxx.a.run.app"
      • デフォルト状態であれば、/にアクセスすることで、Hello, World! Your access ID is 9c4515b3-c8ce-474e-b320-6c8013214b55 といった文字列が表示されます
      • /listにアクセスすることで、それまでのアクセス一覧が表示されます
        • GCS+SQLiteを利用することで、Cloud RunでもRDBによる永続化を低コストで行うことができます
        • ただし、Cloud Runの同時実行数は1に制限されるため、商用環境ではCloud SQLなどを利用することをお勧めします
    • google_cloud_run_frontend_url = "https://yyyyyy.a.run.app"

About

No description, website, or topics provided.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published