Cloud Run サービスのデプロイの基本
2023年は「Cloud Run を触って覚える」をテーマとした一人アドベントカレンダーを一人で開催しており、Cloud Run のさまざまな機能や、Cloud Run でよく使う構成などを実際の使い方と一緒にご紹介しています。
4日目は Cloud Run サービスのデプロイの基本とパターンについてご紹介します。
Cloud Run の概要は技術評論社さまのブログ「gihyo.jp」に寄稿した記事で解説していますのでこちらもぜひご覧ください。
Cloud Run サービスのデプロイの基本的な流れと構成要素
まずはじめに Cloud Run サービスのデプロイの基本的な流れを説明します。
次の順に実施します。
- 開発者がソースコードリポジトリにソースコードを Push する
- ビルド環境にソースコードを Pull する
- ビルド環境でコンテナ イメージをビルドする
- ビルド環境からコンテナ レジストリにコンテナ イメージを Push する
- ビルド環境から実行環境にコンテナ イメージを指定してデプロイする
- 実行環境はコンテナ イメージをもとにコンテナ インスタンスを起動する
ソースコード リポジトリ (Git リポジトリ)
アプリケーションのソースコードを管理する場所です。Git で管理する方法が現在ではスタンダードで、GitHub などの Git リポジトリのホスティング サービスを使うことで、他の開発者とソースコードを共有したり、クラウド上のサービスから参照しやすくなります。
次の Git リポジトリ ホスティング サービスがよく使われます。
- Google Cloud のサービス
- サードパーティ サービス
ビルド環境
コンテナ イメージをビルドしたり、デプロイ コマンドを実行したりする環境です。ローカルマシンで行う場合もありますが、CI/CD 環境を組むことでアプリケーションの更新のたびにコマンドを実行する必要がなくなります。
最低限では次のステップを実行する必要があります。
- コンテナ イメージのビルド
- コンテナ レジストリへのコンテナ イメージの Push
- 実行環境へのデプロイ
CI/CD を組みたい場合は CI/CD がクラウド上で実行できるサービスを使用します。これらのサービスはビルドステップを YAML で定義しておくことで、指定したタイミングでビルド環境が立ち上がり、YAML に定義されているビルドステップを順々に実行するような機能を提供しています。
- Google Cloud のサービス
- サードパーティ サービス
コンテナ レジストリ
コンテナ イメージをクラウド上で管理する場所です。実行環境 (Cloud Run) がコンテナ インスタンスを立ち上げる時に、このレジストリからコンテナ イメージをダウンロードします。ビルド環境から Push し、Cloud Run サービスにはどのコンテナ イメージを使用するかリビジョンとして登録します。
- Google Cloud のサービス
- サードパーティ サービス
まとめ
Cloud Run サービスをデプロイするまでの流れとパターンを、あくまで "基本" に絞ってご紹介しました。
ここから必要に応じて、様々なステップ (例: テスト、脆弱性チェック、承認フロー) を拡張するとよいと思います。基本を組んでから徐々に増やしていくのは Cloud Run のみならず、クラウドサービスならではの進め方だと思います。
明日は具体的なデプロイのパターンをいくつかご紹介する予定です。
Discussion