Cloud Build というサービスをご存知でしょうか? Google Cloud でビルドを実行するためのサービスであり、企業が Cloud Build を活用することで、様々なメリットを享受できます。
本記事では、Google Cloud Build の概要や機能、活用シーン、料金体系など、あらゆる観点から一挙にご紹介します。Google Cloud Build に関心のある方は、ぜひ最後までご覧ください。
目次
Cloud Build とは?
Cloud Build とは、 Google Cloud でビルド(プログラムのソースコードから実行可能なアプリケーションやライブラリなどを作り出す作業)を実行するためのサービスです。
Cloud Build では、様々なリポジトリやクラウドストレージなどからソースコードをインポートし、仕様に合わせてビルドを実行できます。また、 Docker コンテナや Java アーカイブなどのアーティファクトを生成することも可能です。
さらに、 Cloud Build を活用することで、ソフトウェアのサプライチェーンを保護できる点も大きな魅力の一つとなっています。 Cloud Build は「 SLSA ( Supply chain Levels for Software Artifacts )」という、 Google が提唱しているソフトウェアサプライチェーンにおける完全性確保のためのフレームワークの要件を満たしているため、ビジネスシーンでも安心して使用できるサービスだと言えるでしょう。
Cloud Build の主な機能
Cloud Build には、具体的にどのような機能が備わっているのでしょうか?本章では、 Cloud Build の主な機能についてご紹介します。
高速なビルド
Cloud Build は Google のグローバルネットワークで接続されたマシンを利用するため、高速なビルド実行が可能になります。また、ハイ CPU VM でのビルド実行やソースコード、イメージ、その他の依存関係のキャッシュなどもビルド時間の短縮に大きく寄与しています。このように、ビルドを効率的かつ短時間で実行したい場合には、 Cloud Build が有効な選択肢になると言えるでしょう。
デプロイの自動化
Cloud Build では、デプロイを自動化するために、ビルドステップの一部としてパイプラインを作成する機能を備えています。
例えば、組み込みの統合を使用することで、
- Google Kubernetes Engine
- Cloud Run
- App Engine
- Cloud Functions
- Firebase
など、他の Google サービスへのデプロイが可能になります。また、Cloud Build と Spinnaker を連携すれば、複雑なパイプラインを作成・実行することもできます。
ビルド結果の分析
Cloud Build を活用することで、ビルドのエラーや警告を受け取れるだけではなく、ビルド結果に関する詳細な分析情報も取得可能になります。これにより、手間をかけずにデバッグを行うことができ、プログラム修正にかかるリードタイムの短縮化に繋がります。
脆弱性の特定
Cloud Build には、脆弱性を特定する機能が搭載されており、コンテナイメージや言語パッケージなどの脆弱性を特定することが可能です。また、スキャンは自動的に実行されるため、手間を掛けずに脆弱性を発見できる点は Cloud Build の大きなメリットだと言えるでしょう。
コンテナとの統合
Cloud Build は Docker コンテナと緊密に統合されており、Docker イメージのビルド、プッシュ、プルを簡単に行うことができます。また、Google Kubernetes Engine ( GKE ) や Google Container Registry との連携も可能です。
また、Cloud Build には「事前にビルドされたイメージコンテナ」が複数用意されているため、これらを活用することでコンテナイメージを簡単にビルドでき、タスク実行の円滑化に繋がります。
Cloud Build の特徴
本章では、Cloud Build の特徴について解説します。どのような特徴があるのか、ぜひ内容を理解しておいてください。
サーバーレスで提供されている
Cloud Build はサーバーレスで提供されているため、自社の状況に合わせて柔軟なスケーリング(使用リソースを増減すること)が可能になります。そのため、無駄なリソースを使ってしまうことはなく、コストの適正化にも大きく寄与します。
フルマネージドで提供されている
Cloud Build はフルマネージドで提供されており、セキュリティ管理や障害対応などをすべて Google 社が行ってくれます。そのため、自社の負荷軽減や作業効率化を実現でき、本来注力すべき業務にリソースを集中することが可能になります。
様々なエンタープライズソースと統合できる
Cloud Buildの大きな特徴として、様々なエンタープライズソースと統合できる点が挙げられます。
例えば、
- GitHub Enterprise
- GitLab Enterprise
- Bitbucket データセンター
などに対する Cloud Build のサポートを利用することで、一般的な企業ソース管理システムの一部と統合することが可能です。
これらの統合により、企業は異なるソースコード管理システムを使用していても、Cloud Build を通じてビルドプロセスを一元化し、効率化することができます。これは特に、複数のソースコードリポジトリを使用する大規模な開発プロジェクトやエンタープライズ環境において重要です。
SLSA レベル 3 の要件を満たしている
SLSA は「 Supply chain levels for Software Artifacts 」の略であり、 Google 社が提唱しているソフトウェアサプライチェーンにおける安全性確保のためのフレームワークです。そして、 Cloud Build は SLSA レベル 3 の要件を満たしているため、安全な環境でビルドを実行することができ、ビジネスシーンにおいても安心して利用可能なサービスとなっています。
Cloud Build の活用シーン
Cloud Build は CI/CD のプラットフォームとして利用されるケースが一般的です。
CI/CD とは「 Continuous Integration (継続的インテグレーション)と Continuous Delivery (継続的デリバリー)」の略であり、ソフトウェアの変更を常にテストし、本番環境へ自動適用できるような状態にする開発手法を意味します。
Cloud Build を活用することで、高速ビルドやビルド結果の分析、脆弱性の特定などが可能になるため、 CI/CD を実践する上では、とても有効なサービスだと言えるでしょう。
また、 Cloud Build を利用する際には「デフォルトプール」と「プライベートプール」の 2 種類のプールを使うことが可能です。なお、プールとは「データをすぐに取り出せるように一時的に情報を貯めておく保管領域」を意味する言葉であり、 Cloud Build でビルドを実行した場合、何も設定していなければ自動的にデフォルトプールが選択される仕様になっています。
デフォルトプールは公共のインターネットにアクセスできるオープンな環境であり、一定の安全性は確保されていますが、カスタマイズできる範囲には制限が設けられています。一方、プライベートプールはプライベートネットワーク内のリソースへのアクセスなど、ビルド環境を自由にカスタマイズして強化するための専用プールであり、自社専用のリソースとして占有的に利用できます。
以下、デフォルトプールとプライベートプールの違いを表にまとめます。
機能 | デフォルトプール | プライベートプール |
---|---|---|
フルマネージド | ◯ | ◯ |
1 ビルド分あたりの料金 | ◯ | ◯ |
自動スケーリング | ◯ | ◯ |
0 にスケーリング | ◯ | ◯ |
公共インターネットへのアクセス | ◯ | 構成可能 |
VPC または共有 VPC にピアリングして、プライベートリソースにアクセス | ✖️ | ◯ |
VPC Service Controls のサポート | ✖️ | ◯ |
静的内部 IP 範囲 | ✖️ | ◯ |
パブリック IP を無効にする機能 | ✖️ | ◯ |
最大同時ビルド数 | 30 | 100 以上 |
マシンタイプ | 5 | 15 |
ビルドが実行されるリージョン | gcloud builds submit または Google Cloud コンソールの「トリガー」ページで指定されたリージョンで実行 | プライベート プールを作成するリージョンで実行 |
※24年1月現在
このように、デフォルトプールとプライベートプールには、様々な違いが存在します。フルマネージドで提供されている点や自動スケーリングが可能な点などは共通していますが、デフォルトプールでは、 VPC Service Controls のサポートやパブリック IP を無効にする機能などは提供されていません。
ビルド環境を自社の状況に合わせて柔軟にカスタマイズしたい場合には、プライベートプールを選択すると良いでしょう。
Cloud Build の料金体系
最後に、 Cloud Build の料金体系について解説します。
Cloud Build はサービスの利用時間が指定の制限を超えると、消費したビルド分に応じて課金される仕組みとなっています。ビルド分は Cloud Build が開始したビルドが実行されている時間を分単位で表しており、ビルド時間が 1 分に満たない端数は、実際に使用された秒数で利用料金が発生します。
また、ネットワークの上り(内向き)と下り(外向き)の料金は、ビルド分の料金に内包されており、ビルドがキューに入っている時間はビルド分に含まれません。そして、これらをもとに算出された Cloud Build の利用料金は、ビルドを開始した Google Cloud Console プロジェクトの請求先アカウントに課金されます。
以下、 Google 公式サイトに掲載されているマシンタイプごとの料金を表にまとめます。
記載の数値は、24年1月現在のデータとなります。
マシンタイプ | 仮想 CPU 数 | メモリ | クイックスタート | 料金 |
---|---|---|---|---|
e2-medium | 1 | 4 GB | 0.003 米ドル / ビルド分 | |
e2-standard-2 | 2 | 8 GB | ◯ | 0.006 米ドル / ビルド分(毎月最初の 2,500 ビルド分は無料) |
e2-highcpu-8 | 8 | 8 GB | 0.016 米ドル / ビルド分 | |
e2-highcpu-32 | 32 | 32 GB | 0.064 米ドル / ビルド分 |
また、プライベートプールに関しては、仮想 CPU 数が「 1 ビルド分あたり 0.00317 米ドル / vCPU 」、メモリが「 1 ビルド分あたり 0.00042 米ドル / GB 」となっており、事前定義されたプライベートプールのマシンタイプごとに料金が定められています。
マシンタイプ | 仮想 CPU 数 | メモリ | 1 ビルド分あたりの料金 |
---|---|---|---|
e2-medium | 1 | 4 GB | 0.00485 米ドル |
e2-standard-2 | 2 | 8 GB | 0.00970 米ドル |
e2-standard-4 | 4 | 16 GB | 0.01940 米ドル |
e2-standard-8 | 8 | 32 GB | 0.03880 米ドル |
e2-standard-16 | 16 | 64 GB | 0.07760 米ドル |
e2-standard-32 | 32 | 128 GB | 0.15520 米ドル |
e2-highcpu-2 | 2 | 2 GB | 0.00718 米ドル |
e2-highcpu-4 | 4 | 4 GB | 0.01436 米ドル |
e2-highcpu-8 | 8 | 8 GB | 0.02872 米ドル |
e2-highcpu-16 | 16 | 16 GB | 0.05744 米ドル |
e2-highcpu-32 | 32 | 32 GB | 0.11488 米ドル |
e2-highmem-2 | 2 | 16 GB | 0.01306 米ドル |
e2-highmem-4 | 4 | 32 GB | 0.02612 米ドル |
e2-highmem-8 | 8 | 64 GB | 0.05224 米ドル |
e2-highmem-16 | 16 | 128 GB | 0.10448 米ドル |
なお、プライベート プールのディスクサイズはカスタマイズ可能であり、最大 1,000 GB の SSD をリクエストできます。また、追加 SSD の料金は「 GB / 月あたり 0.17 米ドル」となっており、 SSD の料金は秒単位で計算されます。
まとめ
本記事では、 Cloud Build の概要や機能、活用シーン、料金体系など、あらゆる観点から一挙にご紹介しました。
Cloud Build を活用することで、高速ビルドや脆弱性の特定など、様々なメリットを享受できます。この記事を読み返して、サービスの特徴や強みを理解しておきましょう。
当社センティリオンシステム 大阪事業所はこれまでの多くのクラウド開発を支援してきた知見を活かし、クラウドを活用した内製化に取り組まれるお客様を全力でサポートします。
以下のような課題をお持ちの方は、ぜひお気軽にご相談ください。
- CI/CD を実現したい
- SRE を実現したい
- 開発で生成 AI を活用したい
- クラウド活用を推進するための開発体制作りが進まない
- 既存資産をどのようにクラウド移行するか検討する知見が不足している
- 内製化するためのクラウド開発スキルを持った人材が不足している
- コスト削減の実現方法に悩んでいる
貴社の状況に合わせて、体制づくり支援や開発計画支援、クラウド開発スキルアップ支援など、様々な支援メニューを提供しています。
また、今回ご紹介した「 Google Cloud 」に特化したメニューも提供しています。 Google Cloud に関するスキルの底上げや平坦化を検討されている方は、ベストプラクティスセミナーやテクニカル・アドバイザリーサービス、テクニカルコンサルティングなどをご検討ください。
無料相談も可能なため、まずは問い合わせフォームからお気軽にご連絡いただければと思います。
本記事を参考にして、 Google Cloud の導入および Cloud Build の活用を検討してみてはいかがでしょうか?