Cloud Build で CI / CD 環境を運用する方法をご紹介!

Cloud Build で CI / CD 環境を運用する方法をご紹介!

CICDCloud BuildGoogle Cloud技術ブログ

Cloud Build で CI / CD 環境を運用する方法をご紹介!

現代のソフトウェア開発では、スピーディーなリリースと高品質なソフトウェアの提供は、競争力を維持するために不可欠です。その鍵となるのが、CI/CD 環境の導入です。

この記事では、Google Cloud を使って CI/CD 環境を構築する方法を初心者から中級者向けに丁寧に解説しています。Cloud Build の導入手順から、効率的なパイプライン構築のコツまで、ソフトウェア開発を加速させるためのノウハウを網羅しています。

ぜひ最後までご覧ください!

本見出しでは、 CI/CD の基本概念とその必要性、そしてCloud Build の役割とメリットについて詳しく説明します。

CI/CD の基本とその必要性

CI/CDは、CI(継続的インテグレーション)とCD(継続的デリバリーまたは継続的デプロイメント)の2つの要素から構成されます。

CI は、開発者がコード変更を定期的にメインリポジトリに統合し、早期に問題を発見・解決するためのプロセスです。具体的には、コード変更を自動的にテストし、ビルドを行うことで、開発効率の向上と品質の安定化を実現します。

CD は、ソースコードを自動的に本番環境へ適用するプロセスです。継続的デリバリーでは、いつでもリリース可能な状態を維持し、継続的デプロイメントでは、自動デプロイによって迅速なリリースを実現します。CI/CD を導入することで、以下のメリットを得られます。

  • 開発効率の向上
  • リリースサイクルの短縮
  • ソフトウェア品質の向上
  • コスト削減

これらのメリットは、エンジニアリングチームの効率化だけでなく、ユーザーへの迅速な価値提供にもつながります。

Cloud Build の役割とメリット

Cloud Build は、Google Cloud が提供する CI/CD プロセスを支援するサービスです。コード変更をトリガーに、自動的にビルド、テスト、デプロイを実行できます。

Cloud Build の主なメリットは以下のとおりです。

  • どんな規模や要件のプロジェクトにも対応できる
  • 様々な開発環境に適用できる
  • 自動ビルド、テスト、デプロイなど、多彩な機能を備えている
  • 自動ビルド機能により、開発時間を大幅に短縮できる
  • Dockerコンテナを用いたアプリケーションビルドに特化しているため、迅速かつ簡単にデプロイできる
  • Google Cloud Platformのセキュリティと統合されているため、安全な開発環境を提供する

Cloud Build に関して詳しく理解をしたい方は以下の記事がおすすめです↓

ビルドを効率的に実行できる Cloud Build とは?概要や特徴、料金体系まで一挙に解説!

Cloud Build の効果的な導入には、いくつかの基本的な手順が必要です。ここでは、以下のステップについて詳しく説明します。

  • Google Cloud への登録
  • プロジェクトの作成
  • Cloud Build APIの有効化
  • 適切なアクセス権とロールの設定

Google Cloud への登録

Cloud Build を使用するには、まずGoogle Cloud に登録する必要があります。

  1. 登録URLにアクセスします
  2. Google アカウントでログインします
  3. 必要な情報を入力します
  4. クレジットカードの情報を入力します

ちなみに、Google Cloud では無料枠が用意されており、無料トライアル期間が終了した後も自動で課金されることはありません。このため、安心してサービスを試すことができます。

プロジェクトの作成と設定

Google Cloud に登録した後、次のステップとしてプロジェクトを作成します。プロジェクトは、Cloud Build を含む Google Cloud 内のさまざまなリソースやサービスを一元管理するための「コンテナ」として機能します。

プロジェクトの作成手順は以下の通りです。

  1. Google Cloud のダッシュボードにアクセスし、「プロジェクトを選択」をクリックします。
  2. 画面上部の「新しいプロジェクト」ボタンを選択します。
  3. 表示されたフォームにプロジェクト名を入力します。今回は、「HelloWorld-CloudBuild」という名前を使用します。
  4. 「作成」ボタンをクリックしてプロジェクトを作成します。

Cloud Build API の有効化

プロジェクトの設定が完了したら、次は Cloud Build API を有効にします。これにより、Cloud Build を利用してビルドプロセスを自動化し、他の Google Cloud サービスとの連携が可能になります。

Cloud Build API を有効にする手順は以下の通りです。

  1. Google Cloud のダッシュボードで、左上の「ナビゲーションメニュー」を開きます。
  2. メニューから「API とサービス」を選択し、「ライブラリ」をクリックします。
  3. APIライブラリページで、「 Cloud Build API 」を検索します。
  4. Cloud Build API のページが開いたら、「有効にする」ボタンをクリックします。

Cloud Build を最大限に活用するためには、その基本設定と操作を理解することが重要です。ここでは、ビルド構成ファイルの作成方法とその基本的な構文について解説します。

ビルド構成ファイルの作成と基本的な構文

Cloud Build では、カスタマイズされたビルド手順や設定を適用するために、YAML 形式のビルド構成ファイルを使用します。このファイルを作成することで、特定のビルドコマンドやステップをCloud Build に指示できます。以下では、基本的なビルド構成ファイルの作成方法とその構文について説明します。

Cloud Build は、YAML 形式のビルド構成ファイルを使用してビルドプロセスを定義します。このファイルは、ビルドに必要な情報(ビルド手順、使用するコンテナイメージ、トリガー条件など)を記述するもので、Cloud Build に具体的な指示を与える役割を果たします。

ビルド構成ファイルの作成

ビルド構成ファイルは、テキストエディタや IDE を使用して作成できます。

以下の例は、Cloud Build を使用してソースコードをビルドし、その成果物を Cloud Storage にデプロイする CI/CD パイプラインを定義するビルド構成ファイルです。

ステップ1では、Docker ビルダーを使用して、現在のディレクトリにある Dockerfile に基づいて Docker イメージをビルドします。ビルドされたイメージには、プロジェクト ID とアプリ名を含むタグ gcr.io/$PROJECT_ID/my-app が付けられ、Google Cloud Container Registry へのプッシュ準備が完了します。

ステップ2では、gsutil コマンドを使用して、build ディレクトリ内のすべてのファイルを Cloud Storage バケット gs://$PROJECT_ID-my-app-bucket/ にコピーします。このコマンドにより、ビルドされたアプリケーションが Cloud Storage に自動的にアップロードされ、公開されます。

ここでは、GitHub にプッシュされた HTML と JavaScript コードを Cloud Build を介して Cloud Storage に自動デプロイし、ウェブサイトを更新する CI/CD パイプライン の構築プロセスを紹介します。

以下のステップを通じて、迅速かつ効率的にソフトウェアをリリースするための方法を解説します。

  • ソースコードの準備とリポジトリへのプッシュ
  • ビルドプロセスの自動化
  • ビルド結果のレビューとフィードバック
  • デプロイの自動化と展開

ソースコードの準備とリポジトリへのプッシュ

CI/CD パイプラインの第一歩は、ソースコードの準備とバージョン管理リポジトリへプッシュすることです。

ソースコードの準備

ソースコードは、テキストエディタ、IDE、あるいはその他の開発ツールを使用して作成します。以下のスクリーンショットは、Visual Studio Code で開発されたソースコードの例です。

変更のコミットとプッシュ

ソースコードに変更を加えたら、バージョン管理リポジトリにコミットする必要があります。Git を使用する場合、以下のコマンドを実行します。

git add .

git commit -m "変更に対する説明文"

git push origin main

このコマンドの一連の流れにより、コードの変更が追跡され、CI/CD プロセスの起点となります。

ビルドプロセスの自動化

ビルドプロセスの自動化は、CI/CD パイプラインの中核を成す部分です。この段階では、リポジトリにコードがプッシュされると自動的にビルドが開始されます。Cloud Build を使用することで、コードのコンパイル、ユニットテストの実行、成果物の生成などのプロセスを自動的に行うことができます。

ビルド構成ファイル

以下の cloudbuild.yaml は、Cloud Storage にファイルをアップロードするためのビルド構成を定義しています。

各項目の役割

name: 使用するビルドステップのイメージを指定します。ここではgcr.io/cloud-builders/gsutil を使用しており、Google Cloud の gsutil コマンドを実行するための環境を提供します。

args: 実行するコマンドの引数を定義します。cp -r . gs://helloworld_bucket1/は、カレントディレクトリの内容を再帰的に (-r) Cloud Storage のバケット helloworld_bucket1 にコピーします。

トリガーの設定

ビルドプロセスの自動化には、適切なトリガーの設定が必要です。以下のスクリーンショットは、Cloud Build でのトリガー設定画面です。

設定内容説明
イベントビルドをトリガーするイベントの種類を選択します。ここでは「ブランチにpushされたとき」と設定されており、特定のブランチへのプッシュ操作がビルドの開始信号となります。
ソースビルドをトリガーするソースリポジトリとそのブランチを指定します。この例では、GitHubリポジトリ「xxxxxx/CloudBuildStaticSite」において、ワイルドカード「*」が使用されているため、すべてのブランチへのプッシュがビルドをトリガーするように設定されています。
ビルド構成ビルドの際に使用する構成ファイルを指定します。ここではcloudbuild.yamlが選択されており、リポジトリ内の該当ファイルに定義された手順に従ってビルドが行われます。

自動化のメリット

このトリガー設定により、リポジトリに変更が push されるたびに、自動的に Cloud Build がビルドを開始し、定義された手順に従ってアプリケーションのビルド、テスト、デプロイが行われます。これによって、開発プロセスの自動化と効率化が実現され、開発チームはより速く、より信頼性の高いソフトウェアデリバリーを行うことができます。

ビルド結果のレビューとフィードバック

ビルドプロセスが完了した後、その結果をレビューし、フィードバックを得ることが重要なステップになります。Cloud Build では、各ビルドの詳細なログが提供され、エラーや成功の情報を確認することができます。これにより、問題があった場合は、迅速に対応して修正することができます。

成功指標

ビルドの成功を示す指標としては、テストのパス、コードのカバレッジ、ビルドの速度などがあります。一方で、失敗したビルドは、コードに潜むバグや不整合を指摘し、改善点を明らかにします。

上記のスクリーンショットでは、Cloud Build のインターフェースにおいて、ビルドが成功したか失敗したかを一目で確認することができる状態を示しています。また、ビルドログへのリンクをクリックすることで、エラーメッセージやテスト結果を詳細に確認し、さらなるアクションを決定することができます。

フィードバックループ

このフィードバックループは、開発プロセスで品質を維持し、継続的に改善するために不可欠です。CI/CD パイプラインによる即時のフィードバックは、開発サイクルを通じてソフトウェアの信頼性を高めることに貢献します。

デプロイの自動化と展開

ビルドプロセスの完了後、次に行うステップは自動化されたデプロイです。このステップでは、ビルドされた成果物がテストを経て、実際のユーザーが利用する本番環境にリリースされます。

Cloud Build による自動デプロイ

Cloud Build では、ビルド成功時に指定されたデプロイメント手順に従って、アプリケーションを自動的に展開することができます。

上記のスクリーンショットは、Cloud Storage のバケット内にビルド成果物が正しくアップロードされたことを示しています。これにより、ウェブサイトやアプリケーションは新しいコードベースで更新され、ユーザーに新しい機能や修正が即座に利用可能になります。

本記事では、Google Cloud における CI/CD 環境の構築と利用方法について、基礎知識から Cloud Build の導入手順、基本設定と操作、さらに CI/CD パイプラインの構築とデプロイ戦略に至るまで詳細に解説しました。

Google Cloud の強力なツールである Cloud Build を活用することで、ソフトウェア開発とデプロイメントの効率化と品質向上を実現できます。

当社センティリオンシステム 大阪事業所はこれまでの多くのクラウド開発を支援してきた知見を活かし、Cloud Build の導入支援や CI/CD パイプラインの設計・構築などクラウドを活用した内製化に取り組まれるお客様を全力でサポートします。

以下のような課題をお持ちの方は、ぜひお気軽にご相談ください。

  • CI/CD を実現したい
  • SRE を実現したい
  • 開発で生成 AI を活用したい
  • クラウド活用を推進するための開発体制作りが進まない
  • 既存資産をどのようにクラウド移行するか検討する知見が不足している
  • 内製化するためのクラウド開発スキルを持った人材が不足している
  • コスト削減の実現方法に悩んでいる

貴社の状況に合わせて、体制づくり支援や開発計画支援、クラウド開発スキルアップ支援など、様々な支援メニューを提供しています。

また、今回ご紹介した「 Google Cloud 」に特化したメニューも提供しています。 Google Cloud に関するスキルの底上げや平坦化を検討されている方は、ベストプラクティスセミナーテクニカル・アドバイザリーサービステクニカルコンサルティングなどをご検討ください。

無料相談も可能なため、まずは問い合わせフォームからお気軽にご連絡いただければと思います。

本記事を参考にして、 Google Cloud の導入および Cloud Build の活用を検討してみてはいかがでしょうか?