割り当てと制限

このドキュメントでは、Cloud Pub/Sub の割り当てとリソースの制限について説明します。

割り当て(トピックとサブスクリプションの使用状況など)を追跡する方法について詳しくは、モニタリングをご覧ください。

割り当て使用量の表示と割り当て制限の管理

特定のプロジェクトについて、現在の割り当てとその使用量を表示するには、API とサービスの割り当てダッシュボードを使用します。このダッシュボードを使用して、割り当てを一度に 1 つずつ変更することもできます。

複数の割り当てを変更するには、IAM と管理の割り当てダッシュボードを使用します。

次のことを行うには、上記のいずれかのダッシュボードを使用できます。

  • 割り当てを減らす。
  • 割り当ての制限引き上げを適用するためのプロセスを開始する。

割り当て量

リクエストまたはレスポンスは、1 KB またはリクエスト / レスポンスの合計サイズのどちらか大きいほうがカウントされます。

各リクエストまたはレスポンスの割り当て使用量は、最も近い KB 単位となるよう切り上げが行われます。たとえば、パブリッシュ リクエストにそれぞれ 50 バイトのメッセージが 100 件含まれており、トピック名の長さが 30 バイトだとします。この場合、このリクエストの割り当て使用量は max(1, ceil(5030/1000)) = 6kB となります。

プロジェクトの使用量属性

push サブスクライバーのスループットについては、該当する push サブスクリプションを含むプロジェクトに対して割り当て使用量が課金されます。

次の割り当てについては、使用量が課金されるのは、発信者の認証情報に関連付けられているプロジェクトに対してです。要求されたリソースが含まれるプロジェクト(つまり、トピックまたはサブスクリプション名に表示されるプロジェクト)に対してではありません。

  • パブリッシャーのスループット
  • サブスクライバーのスループット
  • 管理者のオペレーション

たとえば、プロジェクト A のサービス アカウントからプロジェクト B 内のトピックに公開するためのパブリッシュ リクエストが送信された場合、割り当て使用量はプロジェクト A に対して課金されます。各リクエストには、プロジェクト ID などの認証情報が含まれます。

割り当て制限

次の表に記載する割り当ては、API とサービスの割り当てダッシュボードでプロジェクトごとに表示、編集できます。

割り当て デフォルトの割り当て制限 説明
パブリッシャーのスループット 1 分あたり 60,000,000 kB(1,000 MB/秒) 割り当て使用量は、PublishRequest に含まれるメッセージのサイズに基づきます。

複数のメッセージを単一のパブリッシュ リクエストに含まれることができます。メッセージあたりの追加割り当て料金はありません。

サブスクライバーのスループット 1 分あたり 120,000,000 kB(2,000 MB/秒) pull サブスクリプションの場合、割り当て使用量は、次を含む Pull レスポンスのサイズに基づきます。

さらに、Acknowledge および ModifyAckDeadline リクエストも割り当て使用量に含まれます。

  • AcknowledgeRequest(RPC)
  • ModifyAckDeadlineRequest(RPC)
    push サブスクライバーのスループット 1 分あたり 6,000,000 kB(100 MB/秒) push エンドポイントに行われた push 配信リクエストの場合、割り当て使用量はその push エンドポイントに対するリクエストのサイズに基づきます。
    StreamingPull サブスクライバーのスループット 1 分あたり 120,000,000 kB(2,000 MB/秒) 割り当て使用量は StreamingPullResponses のサイズに基づきます。

    クライアント ライブラリでは、可能な場合は StreamingPull オペレーションを使用します。

    StreamingPull のオープン接続数 同時オープン接続数 30,000 任意の時点での StreamingPull の同時オープン接続数。StreamingPull をご覧ください。
    StreamingPull 接続のレート 1 分あたり 6,000,000 接続 新しい StreamingPull 接続をオープンするレート。StreamingPull をご覧ください。
    管理者のオペレーション 1 分あたり 6,000(100 オペレーション/秒) 管理者の各オペレーション(GetTopicRequest など)が 1 ユニットとして割り当て使用量に計上されます。

    通常、Get*, List*, Create*, Delete*, ModifyPushConfig, SetIamPolicy, GetIamPolicyTestIamPermissions は管理オペレーションのセットからなります。

    リソース制限

    リソース 最大値
    プロジェクト トピック 10,000 件
    サブスクリプション 10,000 件
    トピック 関連付けるサブスクリプション 10,000 件
    関連付けるスナップショット 5,000 個
    サブスクリプション 確認応答されていないメッセージがパブリッシュされた時点から 7 日間、それらのメッセージを永続ストレージに保持します。31 日間クライアントの存在が検出されなかったサブスクリプションは自動的に削除されることがあります。存在は、PullAcknowledge などの呼び出し、または成功した push オペレーションを使用して検出されます。
    パブリッシュ リクエスト 10 MB(合計サイズ)
    メッセージ 1,000 件
    メッセージ メッセージのサイズ(data フィールド): 10 MB(リクエストの最大サイズ)
    メッセージあたりの属性: 100
    属性キーのサイズ: 256 バイト
    属性値のサイズ: 1,024 バイト
    push 配信メッセージ 未処理のメッセージは、サブスクリプションごとに以下の両方の制限が適用されます。
    • 10 MB(この制限はメッセージ データと属性を含むすべての未処理のメッセージのサイズの合計に適用されます)
    • 未処理のメッセージ数の合計数 1,000 件
    エンドポイントがすばやく応答する場合(100 ミリ秒未満)は、これらの制限が適用されることはほとんどありません。Push サブスクライバー ガイドをご覧ください。
    StreamingPull ストリーム オープン ストリームあたり 10 MB/秒
    Pull/StreamingPull メッセージ 接続あたりの未処理の StreamingPull メッセージの合計数に対する制限が適用される場合があります。この制限が適用された場合は、メッセージを確認する頻度と使用する接続数を増やします。

    ヒントと注意点

    大量のオペレーション

    Cloud SDK gcloud ツールを通常のユーザー アカウントで使用する場合(つまり、サービス アカウントで使用するのではない場合)、Cloud Pub/Sub のオペレーションは手動オペレーションに適したレートに制限されます。レートがその制限を超えると、RESOURCE_EXHAUSTED エラーが発生します。これに対する解決策は、必ずサービス アカウント認証情報を使用することです。Cloud SDK から自動で認証情報を使用するには、Cloud Pub/Sub のオペレーションに対してサービス アカウントをアクティブ化してください。

    割り当て使用量の不一致

    割り当て使用量の不一致は、パブリッシュまたは受信されるメッセージのサイズが、1,000 バイトより小さい場合に発生することがあります。次に例を示します。

    • 10 件の 500 バイトのメッセージを個別のリクエストでパブリッシュすると、パブリッシャーの割り当て使用量は 10,000 バイトになります。これは、1,000 バイトより小さいメッセージは自動的に 1,000 バイトに切り上げられるためです。

    • これら 10 件のメッセージを 1 つの pull レスポンスで受信する場合、サブスクライバーの割り当て使用量は 5 KB になります。これは、各メッセージの実際のサイズが結合されて全体の使用量が決まるためです。

    • その逆も当てはまります。複数のメッセージを 1 つのパブリッシュ リクエストでパブリッシュしたり、個別の pull リクエストで複数のメッセージを受信したりすると、サブスクライバーの割り当て使用量がパブリッシャーの割り当て使用量より大きくなる場合があります。

    このページは役立ちましたか?評価をお願いいたします。

    フィードバックを送信...

    Cloud Pub/Sub ドキュメント