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環境を構成できるため、皆様もぜひ試していただければと思います。