はじめに
Next.jsで作成したWebアプリケーションをGoogle Cloudのインフラを活用してデプロイする際、Cloud BuildとCloud Runを組み合わせることで、効率的でスケーラブルな環境を構築できます。本記事では、その手順を備忘録としてまとめました。
Cloud Buildとは
Cloud Buildは、Google Cloudが提供するCI/CDツールです。コードのビルド、テスト、コンテナ化、デプロイなどのプロセスを自動化できます。
Cloud Runとは
Cloud Runは、Google Cloudが提供する完全マネージドなコンテナ実行環境です。
Cloud Buildと組み合わせることで簡単にwebアプリをデプロイできます。
デフォルトでhttpsのURLも付いてくる優れ物!
Cloud Run 公式
前提
この記事では、Google Cloud上での手順に焦点を当てています。そのため、以下を前提とします:
- GitHubのリポジトリにNext.jsプロジェクトが用意されている。
- DockerfileがNext.jsプロジェクト内に配置されている。
Google Cloudのセットアップ
1. 使用するAPIの有効化
Google Cloudプロジェクトを作成し、以下のAPIを有効化します:
- Cloud Build API
2. Cloud Runのリポジトリ接続設定
Cloud Runの管理画面から「リポジトリを接続」を選択します。
3. サービス作成画面でCloud Buildの設定
サービス作成画面で「Cloud Buildの設定」に進みます。
4. リポジトリとブランチの設定
Next.jsプロジェクトが含まれるリポジトリ、対象ブランチ、およびDockerfileのパスを入力します。
注意: GitHubとGoogle Cloudの連携が未設定の場合は、GitHubの「Integrations/Applications」からGoogle Cloudとの連携を設定してください。
5. サービス名とリージョンの入力
適切な「サービス名」と「リージョン」を設定します。
6. 認証の設定
「未認証の呼び出しを許可」を選択します。今回はNext.jsで公開することを想定してこの設定を使用します。
7. 作成
設定が完了したら「作成」をクリックします。しばらく待つと、Cloud Runのサービス画面に表示されるURLからデプロイ済みアプリケーションを確認できます。
環境変数の利用
環境変数を利用する場合は、以下の手順を追加で行います。
8. Dockerfileに環境変数の設定を追加
以下のようにARG
とENV
をDockerfileに記述します:
ARG _API_URL
ENV API_URL=$_API_URL
9. Cloud Buildトリガーを編集
対象のCloud Buildトリガーを開きます。
10. Cloud Build構成ファイルの編集
Buildコマンドに--build-arg
を追加
- name: gcr.io/cloud-builders/docker
args:
- build
- '--no-cache'
- '--build-arg'
- '_API_URL=${_API_URL}'
- '-t'
- >-
$_AR_HOSTNAME/$PROJECT_ID/cloud-run-source-deploy/$REPO_NAME/$_SERVICE_NAME:$COMMIT_SHA
- .
- '-f'
- [Dockerfileパス]
id: Build
substitutions
に環境変数を追加
_API_URL: [バックエンドAPIサーバーURL]
11. 保存と実行
編集内容を保存し、Cloud Buildトリガー画面から「実行」または、対象ブランチにpushして再度CI/CDプロセスを実行します。
これにより、環境変数が反映されたWebアプリがデプロイされます。
終わりに
この記事では、Cloud BuildとCloud Runを活用したNext.jsアプリのデプロイ手順を解説しました。
インフラ周りの設定は最初の構築時以降あまり触れないことが多いため、備忘録として記録しておくと便利です。
これを機に効率的な運用を目指し、知識を定着させていきたいと思います。