割り当て

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

レート制限

次の表に、Cloud Pub/Sub オペレーションのレート制限を示します。

説明 デフォルトの割り当て量
パブリッシャーのスループット 1 分あたり 60,000,000 kB(1,000 MB/秒)
サブスクライバーのスループット 1 分あたり 120,000,000 kB(2,000 MB/秒)
StreamingPull サブスクライバーのスループット 1 分あたり 120,000,000 kB(2,000 MB/秒)
push サブスクライバーのスループット 1 分あたり 6,000,000 kB(100 MB/秒)
管理オペレーション 1 分あたり 6,000(100 オペレーション/秒)

注:

  • 割り当ては、Google Cloud Platform Console の [API とサービス] で増やすことができます。
  • パブリッシャーのスループットの場合、割り当ての使用量は、Publish リクエストで送信された 1 秒あたりのキロバイト数で測定されます。Publish 呼び出しごとに、1 キロバイトとリクエストの合計サイズの大きいほうがカウントされます。複数のメッセージを単一の Publish リクエストに含めることができます。メッセージあたりの追加割り当て料金はありません。リクエストごとの割り当て使用量は、最も近いキロバイト単位となるよう切り上げが行われます。たとえば、Publish リクエストに 50 バイトのメッセージが 100 個含まれ、リクエスト内のトピック名の長さが 30 バイトの場合、リクエストの割り当て使用量は max(1, ceil(5030/1000)) = 6kB となります。
  • サブスクライバーのスループットの場合、割り当ての使用量は、受信するメッセージに関連付けられた、秒あたりのキロバイト数として測定されます。pull サブスクリプションと StreamingPull サブスクリプションの場合、Pull レスポンスのサイズとして測定されます。push サブスクリプションの場合、push エンドポイントへのリクエストのサイズとして測定されます。リクエストまたはレスポンスは、1 キロバイトと、そのリクエストまたはレスポンスの合計サイズの大きいほうがカウントされます。各リクエストまたはレスポンスの割り当て使用量は、最も近いキロバイト単位となるよう切り捨てが行われます。
  • メッセージをパブリッシュするための割り当て使用量が、同じメッセージを受信するための割り当て使用量とは一致しない場合があります。これは、パブリッシュまたは受信されるメッセージが、1,024 バイトの最小リクエスト サイズより小さい場合に発生することがあります。
    • たとえば、10 個のメッセージを個別のリクエストでパブリッシュし、各メッセージが 500 バイトである場合、パブリッシュ割り当て使用量は 10,240 バイトになります。これは、1,024 バイトより小さいメッセージは自動的に 1,024 バイトの最小サイズに切り上げられるためです。
    • 1 回のサブスクライブ リクエストでこれら 10 個のメッセージを受信した場合、サブスクライブ割り当て使用量はおよそ 5,000 バイトとなります。これは、メッセージが 1 回のオペレーションで受信される場合は、各メッセージの実際のサイズが結合されて全体の使用量が決まるためです。
    • その逆になることもあります。1 回のパブリッシュ リクエストで複数のメッセージをパブリッシュし、個別のリクエストでそれらのメッセージを受信した場合、使用されるサブスクライブ割り当ての合計量がパブリッシュ割り当てよりも大きくなる可能性があります。
  • push エンドポイントに行われた push 配信リクエストの場合、その push サブスクリプションが含まれているプロジェクトに対して割り当てが課金されます。Cloud Pub/Sub が最適な配信率を決定する方法の詳細については、push メッセージの受信に関する記事をご覧ください。push サブスクリプションによるメッセージの配信率には次の制限があります。
    • 配信率に関して 1 秒あたりメッセージ 10,000 件の割り当て。
    • 未処理メッセージは最大 10 MB または合計 1,000 件まで。これは割り当てではなく、厳格な制限です。Cloud Pub/Sub がメッセージ リクエストをエンドポイントに送信し、そのレスポンスをまだ受信していない場合、そのメッセージは未処理と見なされます。エンドポイントのレスポンスが高速(100 ミリ秒未満)である場合、この制限は適用されません。ただし、レスポンス時間が長くなった場合は適用されます。
  • トピックごとまたはサブスクリプションごとの現在の割り当て量消費状況は、Google Cloud Platform Console の [API とサービス] の割り当て量グラフで確認できます。
  • 管理オペレーションには、GetListCreateDeleteModifyPushConfigSetIamPolicyGetIamPolicyTestIamPermissions があります。

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

PublishPullAcknowledgeModifyAckDeadline、およびすべての管理オペレーションの場合、割り当ては発信者の認証情報に関連付けられているプロジェクトに対して課金されます。要求されたリソースが含まれているプロジェクト(トピックまたはサブスクリプション名に表示されているプロジェクトなど)に対して課金されるわけではありません。各リクエストには、プロジェクト ID を含む認証情報が含まれています。このため、たとえば、プロジェクト A のサービス アカウントが、プロジェクト B のトピックにパブリッシュするパブリッシュ リクエストを送信すると、割り当てはプロジェクト A に対して課金されます。

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

その他の制限

次の表に、他の Cloud Pub/Sub の制限を示します。

コンポーネント 制限
プロジェクト 最大 10,000 トピックまで含めることができます。
最大 10,000 サブスクリプションまで含めることができます。
トピック 添付されているサブスクリプションを最大10,000 まで含めることができます。
サブスクリプション 確認応答されていないメッセージがパブリッシュされた時点から 7 日間、それらのメッセージを永続ストレージに保持します。30 日間クライアントの存在が検出されなかったサブスクリプションは自動的に削除されることがあります。存在は、PullAcknowledge などの呼び出し、または成功した push 呼び出しを使用して検出されます。
StreamingPull 最大 20,000 ストリームまで同時に開くことができます。
パブリッシュ リクエスト 合計サイズは最大 10MB です。
含めるメッセージは最大 1,000 です。
メッセージ 最大メッセージ サイズ(data フィールド)は、最大リクエスト サイズ(10MB)によって制限されています。
メッセージあたりの属性の最大数は 100 です。
属性キーの最大サイズは 256 バイトです。
属性値の最大サイズは 1,024 バイトです。
このページは役立ちましたか?評価をお願いいたします。

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

Cloud Pub/Sub ドキュメント