▤ 動画容量ナビ

動画の容量と保存 · 参考資料確認日 2026年9月22日

Cloud Runの32 MiB上限とend-to-end HTTP/2の条件

Cloud Runでは32 MiBの条件がrequestとresponseで異なります。requestはHTTP/1 serverか、responseはstreamingまたはTransfer-Encoding: chunkedを使うかを分け、clientからcontainerまでのprotocolも確認します。

requestとresponseでは32 MiBが適用される条件が違う

Cloud Runのmaximum HTTP/1 request sizeは、HTTP/1 serverを使う場合に32 MiBです。HTTP/2 serverにはこのspecific request-size limitがありません。一方、maximum HTTP/1 response sizeの32 MiBは、Transfer-Encoding: chunkedもstreamingも使わないresponseに適用されます。

そのため、requestが32 MiBで止まる問題と、non-streaming・non-chunked responseが32 MiBで止まる問題は別に診断します。streamingやchunkedに変えてCloud Runのspecific response conditionから外れても、application framework、proxy、client、downstreamの別上限までなくなるとは限りません。

clientのHTTP/2だけではrequest側の条件は変わらない

Cloud Runはnative gRPC trafficを除き、通常は受けたHTTP/2 requestをcontainerへ渡す前にHTTP/1へdowngradeします。HTTP/1 requestの32 MiBを超えるためにHTTP/2 serverを使う場合は、serviceでend-to-end HTTP/2を有効にし、containerまでHTTP/2で受ける必要があります。

GoogleのfrontendがTLSを終端するため、containerはTLS付きHTTP/2ではなくh2cをsupportして待ち受けます。これはrequest側のprotocol条件です。response側ではstreamingまたはTransfer-Encoding: chunkedの有無を別に確認し、二つの経路を一つの「HTTP/2なら無制限」という説明へまとめません。

失敗方向と転送方式を確認してから経路を変える

まず32 MiBを超えるのがrequestかresponseかを確認します。requestならCloud Runのend-to-end HTTP/2設定、containerのh2c対応、実際のcontainer portを点検します。responseならstreamingまたはTransfer-Encoding: chunkedを使っているかを確認してください。

該当する方式を安全に使えない場合はpayloadを分割するか、object storageへ置いて参照だけを渡します。変更後もapplication logとclient側の結果を確認し、Cloud Run以外のサービスの制限を別に調べます。

参考資料

  • Cloud Run quotas

    https://docs.cloud.google.com/run/quotas

    確認日:2026-09-22

  • Cloud Run end-to-end HTTP/2

    https://docs.cloud.google.com/run/docs/configuring/http2

    確認日:2026-09-22