同時実行

Cloud Run では、リビジョンのスケーリングが自動的に行われます。すべての受信リクエストを処理できるように、必要なコンテナ インスタンスの数が調整されます。

リクエストを処理するコンテナ インスタンスが増えると、CPU とメモリの使用量も増加し、コストも高くなります。新しいコンテナ インスタンスの起動が必要になると、リクエストの処理に時間がかかり、サービスのパフォーマンスが低下する可能性があります。

よりコントロールをするために、Cloud Run では、特定のコンテナ インスタンスで同時に処理できる最大リクエスト数を指定する同時実行を設定できます。

同時実行の値

デフォルトでは、Cloud Run コンテナ インスタンスは同時に最大 80 件のリクエストを受信できます。Cloud Functions などの Functions-as-a-Service(FaaS)ソリューションの同時実行数は 1 に固定されています。

この値を変更したい場合は、いつでも同時実行の設定で変更できます。指定された同時実行の値は最大値であり、インスタンスの CPU の使用率がすでに高い場合、Cloud Run は特定のコンテナ インスタンスにそれほど多くのリクエストを送信しません。

次の図は、同時実行のリクエストの処理に必要なコンテナ インスタンスの数に同時実行の設定がどのように影響するかを示しています。

同時実行の図

同時実行を 1 つのリクエストに制限する場合

実行中のコンテナ インスタンスに同時に 1 つのリクエストしか送信されないように、同時実行を制限することもできます。次のような場合には、この設定を検討する必要があります。

  • 1 つのリクエストで利用可能な CPU またはメモリのほとんどを使用する。
  • たとえば、コンテナが 2 つのリクエストを共有できないグローバルな状態に依存している場合など、コンテナ イメージは複数のリクエストを同時に処理するように設計されていません。

受信リクエストが急増したときに多くのコンテナ インスタンスを起動する必要があるため、同時実行を 1 に設定するとスケーリングのパフォーマンスが低下する可能性があります。

事例紹介

次の指標は、最大同時実行数が 1 に設定された Cloud Run サービスに対して、400 クライアントが 1 秒あたり 3 つのリクエストを行うユースケースを示しています。上の緑の線は時間経過とともにリクエスト数を示し、下の青い線はリクエストの処理を開始したコンテナ インスタンスの数を示しています。

同時実行を 1 に設定

次の指標は、最大同時実行数が 80 に設定された Cloud Run サービスに対して、400 のクライアントが 1 秒あたり 3 つのリクエストを行うケールを示しています。上の緑の線は時間経過とともにリクエスト数を示し、下の青いラインはリクエストの処理を開始したコンテナ インスタンスの数を示しています。同じリクエスト量を処理するために必要なインスタンスが、はるかに少ないことに注意してください。

同時実行を 80 に設定

次のステップ

Cloud Run サービスの同時実行を管理する方法については、同時実行の設定をご覧ください。

同時実行の設定を最適化する方法については、同時実行を調整する際のヒントをご覧ください。