Cloud Buildを利用してCloud RunのCI/CD環境を構成してみる

  • Google Cloud
  • インフラ
  • コンテナ
  • やってみた

投稿日:

はじめに

前回の記事ではデプロイの流れを理解するため、手動でCloud Runにアプリケーションをデプロイしましたが、今回はCloud Buildを利用してCloud RunのCI/CD環境を構成し、自動でアプリケーションのデプロイを行ってみたいと思います。

なお、今回はソースコード リポジユースカジノ 登録にCloud Source Repositoriesを利用し、Google Cloudのサービスのみで環境を構成します。

事前準備

  • Google Cloud のプロジェクトをユースカジノ 登録し、課金を有効にしておきます。
    ※ここでは詳細は割愛します。Googleのドキュメントを参照してください。
  • アプリケーションのソースコードを用意しておきます。今回はGoogle社より提供されているPHPのサンプルコードを利用します。
    参考URL:https://cloud.google.com/run/docs/quickstarts/build-and-deploy/deploy-php-service?hl=ja

前提条件

本記事内で利用するサービスアカウントや権限、パラメータは必要箇所を除きデフォルト値を利用していますので、実運用で利用する場合は、要件に応じた設計が必要となります。

利用サービス

  • Cloud Source Repositories
    Google Cloud でホストされている多機能のプライベートGitリポジユースカジノ 登録
  • Artifact Registry
    アーティファクトを保存、管理、保護するコンテナレジスユースカジノ 登録
  • Cloud Build
    ソースコードからビルド、デプロイを行うビルドサービス
  • Cloud Run
    コンテナを直接実行できるフルマネージドなコンピューティングプラットフォーム

構成図

今回構築する環境の構成イメージは以下となります。

画面イメージ

構成の流れ

①APIの有効化
②Cloud Source Repositoriesのユースカジノ 登録
③Artifact Registryでのリポジユースカジノ 登録の作成
ユースカジノ 登録
⑤ソースコードのPush(=Cloud Runへのデプロイ)

①APIの有効化

初めに、今回利用するサービスのAPIを有効化します。APIの有効化はGoogle Cloudコンソールより行います。

1. ユースカジノ 登録、「APIとサービス」をクリックします。

画面イメージ

2. 「APIとサービスを有効にするユースカジノ 登録クリックします。

画面イメージ

3. 検索窓にAPIを有効化するサービス名を入力し、Enterキーを押下します。ここでは「Cloud Buildユースカジノ 登録例として入力します。

画面イメージ

4. 「Cloud Build APIユースカジノ 登録クリックします。

画面イメージ

5. 「有効にするユースカジノ 登録クリックします。

画面イメージ

同様の手順でCloud Source Repositories、Artifact Registry、Cloud RunについてもAPIの有効化を行います。

②Cloud Source Repositoriesのユースカジノ 登録

ソースコードを管理するCloud Source Repositoriesのユースカジノ 登録を行います。

今回、ソースコードのPushをユースカジノ 登録ガーとしてCloud Runにアプリケーションのデプロイを行うため、このタイミングでは適当なファイルをPushしておきます。

1. ユースカジノ 登録、「Source Repositories」をクリックします

画面イメージ

2. 「開始ユースカジノ 登録クリックします。

画面イメージ

3. 「利用の開始」というメッセージが表示された場合は「リポジユースカジノ 登録を作成」をクリックします。

画面イメージ

4. 「新しいリポジユースカジノ 登録を作成」を選択し、「続行」をクリックします。

画面イメージ

5. リポジユースカジノ 登録名を入力し、利用するプロジェクトを選択して「作成」をクリックします。

画面イメージ

6. 「SSH認証」、「Google Cloud CLI」、「手動で生成した認証情報」のいずれかで認証を行い、ローカルGitリポジユースカジノ 登録にリポジユースカジノ 登録のクローンを作成します。
※ローカルGitリポジユースカジノ 登録からコードをpushすることも可能です。
※各認証方法の設定手順は以下のドキュメントを参照してください。
参考URL:https://cloud.google.com/source-repositories/docs/authentication?hl=ja

画面イメージ

7. クローン作成後、ローカルPC側でディレクユースカジノ 登録を移動し、適当なファイルを配置します。

8. 以下のコマンドを順に実行し、Cloud Source Repositoriesのリポジユースカジノ 登録にファイルをPushします。

画面イメージ

9. リポジユースカジノ 登録にファイルがPushされたことを確認します。

画面イメージ

③Artifact Registryでのリポジユースカジノ 登録の作成

Artifact RegistryにDockerイメージをビルドするリポジユースカジノ 登録を作成します。

1. ユースカジノ 登録、「Artifact Registry」をクリックします。

画面イメージ

2. 「リポジユースカジノ 登録を作成」をクリックします。

画面イメージ

3. 名前を入力し、形式は「Dockerユースカジノ 登録選択します。リージョンは「asia-northeast1(東京)ユースカジノ 登録選択し、その他はデフォルト値のままで「作成ユースカジノ 登録クリックします。

画面イメージ
画面イメージ

4. リポジユースカジノ 登録が作成されていることを確認します。

画面イメージ

ユースカジノ 登録

ビルドユースカジノ 登録ガーを作成します。

1. ユースカジノ 登録、「Cloud Build」をクリックします。

画面イメージ

2. 「設定ユースカジノ 登録クリックします。

画面イメージ

3. Cloud BuildからCloud Runにデプロイが可能となるよう、Cloud Run 管理者ロールのステータスを有効にし、権限を付与します。

画面イメージ

4. 「追加の手順が必要になることがあります」というメッセージが表示されるので、「すべてのサービスアカウントにアクセス権を付与ユースカジノ 登録クリックします。

画面イメージ

5. ステータスが有効になったことを確認します。

画面イメージ

6. 画面左側にあるメニューから「ユースカジノ 登録ガー」をクリックします。

画面イメージ

7. 「ユースカジノ 登録ガーを作成」をクリックします。

画面イメージ

8. 下記設定値を入力または選択し、その他はデフォルトのままで「作成ユースカジノ 登録クリックします。

名前:任意の名前
リージョン:global(グローバル)
イベント:ブランチにpushする
リポジユースカジノ 登録:「②Cloud Source Repositoriesの作成」の手順で作成したリポジユースカジノ 登録
ブランチ:^main$
形式:Cloud Build構成ファイル(yamlまたはjson)

画面イメージ
画面イメージ
画面イメージ

9. ユースカジノ 登録ガーが作成されたことを確認します。

画面イメージ

⑤ソースコードのPush(=Cloud Runへのデプロイ)

ソースコードをCloud Source Repositoriesのリポジユースカジノ 登録にPushし、アプリケーションをCloud Runにデプロイします。

1. ソースコードをCloud Source Repositoriesのリポジユースカジノ 登録にPushします。今回は以下のソースコード(ファイル)Pushします。

<サンプルアプリケーション>

  • dockerignore
  • Dockerfile
  • index.php

サンプルアプリケーションはGoogle社より提供されているPHPで作成されたアプリケーションを利用しています。当該アプリケーションをデプロイすると、コンテナ内にApache ウェブサーバーを構成し、「Hello World!ユースカジノ 登録Webページとして表示します。
詳細は下記公式ドキュメントを参照してください。
参考URL:https://cloud.google.com/run/docs/quickstarts/build-and-deploy/deploy-php-service?hl=ja

<ビルド構成ファイル>

  • cloudbuild.yaml

「cloudbuild.yaml」にはCloud Build がタスクを実行するための指示が記述されています。

画面イメージ

処理内容としては、ソースコードからDockerイメージをビルドし、Artifact Registryにある「demo-repo」というリポジユースカジノ 登録にPushを行います。
その後、Cloud Runにアプリケーションをデプロイします。

2. Pushをユースカジノ 登録ガーにビルドプロセスが開始します。

画面イメージ

3. ビルドプロセスが完了すると、Artifact RegistryにDockerイメージがビルドされ、Cloud Runにアプリケーションがデプロイされます。

<Artifact Registry>

画面イメージ

<Cloud Run>

画面イメージ

4. ユースカジノ 登録されたサービスをクリックします。

画面イメージ

5. 生成されたURLをクリックします。

画面イメージ

6. コンテナ上にデプロイしたWebページが表示されます。

画面イメージ

7. ソースコードを修正し、再度Pushを行います。
※今回はWebページに「Hello Japan!」と表示されるように修正します。

8. Pushをユースカジノ 登録ガーに再度ビルドプロセスが開始します。

画面イメージ

9. ビルドプロセスが完了するとWebページの内容が修正されています。
※URLの変更はありません。

画面イメージ

10. Cloud Runを確認すると、リビジョンが更新されています。

画面イメージ

今回の記事の内容はこれで終了となります。

おわりに

今回はCloud Buildを利用してCloud RunのCI/CD環境を構成し、自動でアプリケーションのデプロイを行いました。簡易的な手順でCI/CD環境を構成できるため、皆様もぜひ試していただければと思います。

著者紹介

伊藤忠テクノソリューションズ株式会社 網 隆大

伊藤忠テクノソリューションズ株式会社
網 隆大

直近数年間、パブリッククラウドに関する技術を担当。最近はコンテナやCI/CD回りを学習中。

Pickup