次の図は、サービスの Cloud Run リソースモデルを示しています。
この図は、2 つの Cloud Run サービス Service A
と Service B
を含む Google Cloud プロジェクトを示しています。各サービスには複数のリビジョンがあります。
Service A
では、多くのリクエストを受信しているため、複数のコンテナ インスタンスが起動し、実行されています。Service B
では現在リクエストを受信していないため、コンテナ インスタンスは起動していません。
Cloud Run サービス
サービスは Cloud Run のメインリソースです。各サービスは特定の Google Cloud リージョン(Cloud Run)にあります。冗長性とフェイルオーバーのため、サービスはリージョン内の複数のゾーンに自動的に複製されます。1 つの Google Cloud プロジェクトで、複数のリージョンの多くのサービスを実行できます。
各サービスは固有のエンドポイントを公開し、受信リクエストを処理するため、基盤となるインフラストラクチャを自動的に拡張します。
Cloud Run のリビジョン
サービスをデプロイするたびに、リビジョンが作成されます。リビジョンは、環境変数、メモリ制限、同時実行などの環境設定と特定のコンテナ イメージから構成されています。
リビジョンは変更されません。作成されたリビジョンを変更することはできません。コンテナ イメージを新しい Cloud Run サービスにデプロイすると、最初のリビジョンが作成されます。その後、同じサービスに別のコンテナ イメージをデプロイすると、2 番目のリビジョンが作成されます。さらに、環境変数を設定すると、3 番目のリビジョンが作成されます。
リクエストは、最新で正常な状態のリビジョンに自動的にルーティングされます。
Cloud Run ジョブ
各ジョブは特定の Google Cloud リージョンに配置され、完了するまで 1 つ以上のコンテナを実行します。ジョブは、特定のジョブ実行で並列に実行される 1 つまたは複数の独立したタスクで構成されます。各タスクではコンテナ インスタンスが 1 つ実行され、再試行される可能性があります。
Cloud Run ジョブ実行
ジョブが実行されると、すべてのジョブタスクを開始するジョブ実行が作成されます。ジョブ実行を成功させるには、ジョブ実行のすべてのタスクが正常に完了する必要があります。タスクのタイムアウトを設定し、タスクが失敗した場合の再試行回数を指定できます。いずれかのタスクで再試行の最大数を超えると、そのタスクは「失敗」とマークされ、ジョブは「失敗」とマークされます。デフォルトでは、タスクは最大 100 件まで並行して実行されますが、バッキング リソースで必要な場合は最大値を小さくできます。
Cloud Run コンテナ インスタンス
リビジョンは、受信したすべてのリクエストを処理できるように、コンテナ インスタンスの数を自動的にスケーリングします。1 つのコンテナ インスタンスが同時に多くのリクエストを受信する場合があります。同時実行の設定を使用すると、1 つのコンテナ インスタンスに同時に送信されるリクエストの最大数を設定できます。