🙌

2023年の Cloud Run のアップデートまとめ

2023/12/24に公開

2023年は「Cloud Run を触って覚える」をテーマとした ひとりアドベントカレンダー を開催しており、Cloud Run のさまざまな機能や Cloud Run でよく使う構成などをご紹介しています。

24日目は2023年の Cloud Run のアップデートを リリースノート をもとに振り返っていきたいと思います。

Cloud Run の概要は「gihyo.jp」で解説していますので、こちらもぜひご覧ください。

https://gihyo.jp/article/2023/10/modern-app-development-on-google-cloud-03

2023年のアップデートをカテゴリに分けてご紹介します。

コンテナ

マルチコンテナ (サイドカー)

マルチコンテナ (サイドカー) が GA されました。Nginx のようなプロキシ レイヤーや OpenTelemetry Collector のようなエージェント レイヤー、Auth Proxy といったワークロードをメイン コンテナとは別に同じサービス内にデプロイできるようになりました。

マルチ アーキテクチャ コンテナ イメージのサポート

マルチ アーキテクチャ イメージ を含んだコンテナ イメージをデプロイできるようになりました。

マルチ アーキテクチャ イメージ を使用するには、マニフェスト リストamd64/linux を含める必要があります。

Buildpacks で package.json のビルド スクリプトを実行

Node.js を使用するソース コードのデプロイメントでは、package.json ファイルでビルド スクリプトが定義されている場合に、デフォルトで npm run build コマンドが自動的に実行されるようになりました。

環境変数を設定するオプションやデフォルト スクリプトの実行を禁止するオプションなど、package.json ファイルの構成方法の詳細については、Node.js ビルドパック構成 をご覧ください。

Ubuntu 22 LTS ベース イメージのサポート

Cloud Run ソースのデプロイでは、Ubuntu 22 LTS ベース イメージがサポートされるようになりました。これは gcr.io/buildpacks/builder:google-22 で利用できる新しいビルダーで、複数のセキュリティ問題に対処します。google-22 ビルダーの詳細については、GitHub での発表 をご覧ください。

Cloud Run ソース デプロイのデフォルト ビルダーは、将来 google-22 に切り替わる予定です。google-22 ビルダーをプレビューするには、Cloud Run を使用したソースからのデプロイをご覧ください。

パフォーマンス

8 CPU と 32 GiB メモリーが GA

8 CPU および 32 GiB はプレビューで提供していましたが、GA され本番環境でも利用できるようになりました。

CPU ブーストが GA

スタートアップ GPU ブースト が GA になりました。現在はサービス作成時、デフォルトで有効化されています。

CPU allocation レコメンダー

CPU allocation レコメンダー を使うことにより、過去 1 か月間に Cloud Run サービスが受信したトラフィックに基づいて CPU 割り当ての変更を自動的にレコメンドするようになりました(プレビュー)。

Always on CPU で CPU 使用率に基づいたオートスケール

Always on CPU が設定されているリビジョンでは、受信リクエスト以外でも CPU 使用率に基づいたインスタンスのオートスケーリングが行われるようになりました。

ネットワーキング

リージョン外部・内部 HTTP(S) ロードバランサのサポート

リージョン外部およびリージョン内部 HTTP(S) ロードバランサは、ロードバランサのバックエンドとして Cloud Run サービスの使用をサポートするようになりました。 これは、サーバーレス ネットワーク エンドポイント グループ (NEG) を使用して構成されます。

詳しくは次のドキュメントも参考にしてください。

セッション アフィニティが GA

セッション アフィニティが GA になりました。同じクライアントをなるべく同じコンテナ インスタンスにトラフィックを流すようになります。ベストエフォートになる点にご留意ください。

また、複数のリビジョン間でトラフィックを分割している Cloud Run サービスでセッション アフィニティが有効になっている場合、同じクライアントからのリクエストは同じリビジョンにルーティングされるようになりました。

トラフィック分割構成を更新するとき、Cloud Run は新しいリビジョンにリダイレクトされるクライアントの数を最小限に抑えます。

デプロイ時のリクエスト遅延の配慮

新しいリビジョンをデプロイするとき、Cloud Run は新しいリビジョンにトラフィックを送信する前に、新しいリビジョンの十分なインスタンスを開始するようになりました。これにより、特に高レベルのトラフィックを処理する場合に、新しいリビジョンのデプロイメントがリクエストの遅延に与える影響が軽減されます。

ヘルスチェックのポート構成のサポート

Cloud Run ヘルスチェック プローブがコンテナ ポート構成をサポートするようになりました。

ヘルスチェックの失敗のログの記録

デフォルトの TCP 起動プローブの失敗を含む、コンテナのヘルスチェックの失敗をログに記録するようになりました。

VPC

ダイレクト VPC 下り (外向き) (プレビュー)

VPC 内のリソースの接続方法の新しいオプションとして、ダイレクト VPC 下り (外向き) が使えるようになりました(プレビュー)。

Serverless VPC Access Connector が作成画面から作成可能に

Cloud Run のサービス・ジョブ作成画面またはリビジョンの作成画面の中で Serverless VPC Access Connector を作成できるようになりました。VPC アクセスのための設定を行っている流れの中で別画面に移動することなく、スムーズに作成できるようになりました。

共有 VPC からの内部アクセスが GA

共有 VPC Ingress が GA されました。共有 VPC からのトラフィックは、共有 VPC ネットワークに接続されている Cloud Run サービスにとって「内部」とみなされます。

内部向け Cloud Run サービスが返すエラー コードの変更

内部または内部 + Load Balancer の Ingress 設定によって禁止されているサービスに許可のないクライアントからアクセスすると、403 エラー コードではなく 404 エラー コードが発生するようになりました。

認証

Identity-Aware Proxy のサポートが GA

Identity-Aware Proxy のサポートが GA になりました。Cloud Run サービスに対するアクセスの手前に Google アカウントによる認証をプロキシすることができます。

こちらのブログでも解説しているので、ぜひ参考にしてください。

カスタム認証への配慮

アプリケーションがすでにカスタム認証に Authorization ヘッダーを使用している場合、X-Serverless-Authorization ヘッダーに Google 署名の OpenID Connect ID トークンを含めることで、Cloud Run サービスに対して認証できるようになりました。

カスタム オーディエンスの設定が GA

Cloud Run サービスでのカスタム オーディエンスの設定が GA になりました。

Cloud Run ジョブ

Cloud Run ジョブが GA

Cloud Run ジョブが GA になりました。Cloud Run を使ったコンテナによる並列処理を本番環境でも使用できるようになりました。

Cloud Run ジョブについての概要や使い方はこちらのブログで紹介しているので、ぜひご覧ください。

Cloud Run ジョブで 1 時間以上の長時間ジョブをサポート

1 時間を超える長時間のジョブを実行できるようになりました。

Cloud Run ジョブのジョブ実行時の設定のオーバーライド

ジョブの実行時に、ジョブに対してすでに構成されている引数、環境変数、タスクの数、タイムアウト時間をオーバーライドできるようになりました。これにより、タスクの数が動的に変更できるようになりました。

Cloud Run ジョブの実行のキャンセル

実行中の Cloud Run ジョブをキャンセルできるようになりました。

Cloud Run Integrations

Cloud Run Integrations で Firebase Hosting をサポート

Cloud Run Integrations の機能のひとつとして、Firebase Hosting への追加が簡単に行えるようになりました。

Cloud Run Integrations でサポートするリージョンの追加

次のリージョンでも Cloud Run Integrations が使えるようになりました。東京・大阪リージョンでも利用できるようになっています。

  • asia-east1
  • asia-northeast1
  • asia-northeast2
  • asia-south1
  • asia-southeast2
  • australia-southeast1
  • europe-central2
  • europe-north1
  • europe-west1
  • europe-west2
  • europe-west3
  • europe-west4
  • northamerica-northeast1
  • southamerica-east1
  • us-east1
  • us-east4
  • us-west1
  • us-west2
  • us-west3

そのほか

インメモリ ボリューム (プレビュー)

ファイルの読み取りと書き込みに使用できる専用のインメモリ ボリュームが使用できるようになりました(プレビュー)。

Docker Hub のコンテナ イメージを直接デプロイ

Docker Hub で公開されているコンテナ イメージの URL を直接指定し、そのままデプロイできるようになりました。Docker Hub で公開されているコンテナ イメージをカスタマイズすることなく使用したり、サンプルのコンテナ イメージをクイックに試したい場合などに便利です。

GMP (Managed Service for Prometheus) サイドカーを使った Prometheus メトリクスの収集

Prometheus サイドカーのマネージド サービスを使用して、Cloud Run サービスから Prometheus メトリクスを収集できるようになりました。

コールド スタートが長いサービスへのリクエストの待機

コールド スタート時間が 10 秒を超えるサービスの場合、リクエストは、インスタンスの起動を待機中にタイムアウトになるまで、少なくともコールド スタート時間キューに入れられるようになりました。

Terraform の Cloud Run Admin API v2 サポートが GA

Terraform で Cloud Run Admin API v2 のサポートが GA になりました。

v1 が Kubernates Resource Model に近いスタイルだったのに対し、v2 は Google Cloud API に近いスタイルになっています。v1 が Deprecate されるわけではなく、それぞれが提供されていきます。使い分けのポイントについてはこちらを参考にしてください。

Cloud Composer の Cloud Run Operators

ワークフロー サービスである Cloud ComposerCloud Run Operators が使えるようになりました。

新しいリージョンのサポート

2023年は新たに次のリージョンでデプロイできるようになりました。

  • europe-west10
  • europe-west12
  • me-central1
  • me-central2

まとめ

2023年も数多くのアップデートがあり、より多様なワークロードがサポートできるようになりました。2024年のアップデートも楽しみにしていてください!

Google Cloud Japan

Discussion