割り当て

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

レート制限

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

説明 最大の割り当て量 デフォルトの割り当て量
パブリッシャーのスループット 無制限
100 秒あたり 10,000,000 kB(100 MB/秒)
サブスクライバーのスループット 無制限
100 秒あたり 20,000,000 kB(200 MB/秒)
確認と ModifyAckDeadline のスループット 無制限
100 秒あたり 20,000,000 kB(200 MB/秒)
push サブスクライバーのスループット 無制限
100 秒あたり 1,000,000 kB(10 MB/秒)
管理オペレーション 100 秒あたり 10,000(100 オペレーション/秒)
100 秒あたり 1,000(10 オペレーション/秒)

注:

  • 割り当ては、Google Cloud Platform Console の [API とサービス] で増やすことができます。
  • パブリッシャーのスループットの場合、割り当ての使用量は、Publish リクエストで送信された 1 秒あたりのキロバイト数で測定されます。Publish 呼び出しごとに、1 キロバイトとリクエストの合計サイズの大きいほうがカウントされます。複数のメッセージを単一の Publish リクエストに含めることができます。メッセージあたりの追加割り当て料金はありません。リクエストごとの割り当て使用量は、最も近いキロバイト単位となるよう切り捨てが行われます。たとえば、Publish リクエストにそれぞれが 50 バイトのメッセージが 100 件含まれており、リクエスト内のトピック名の長さが 30 バイトである場合、そのリクエストの割り当て使用量は max(1, floor(5030/1000)) = 5kB になります。
  • サブスクライバーのスループットACKModifyAckDeadline のスループットpush サブスクライバーのスループットの場合、割り当ての使用量は受信するメッセージに関連付けられた 1 秒あたりのキロバイト数として測定されます。pull サブスクリプションの場合は、Pull レスポンスのサイズ、AcknowledgeModifyAckDeadline リクエストのサイズとして測定されます。push サブスクリプションの場合、push エンドポイントへのリクエストのサイズとして測定されます。リクエストまたはレスポンスは、1 キロバイトと、そのリクエストまたはレスポンスの合計サイズの大きいほうがカウントされます。各リクエストまたはレスポンスの割り当て使用量は、最も近いキロバイト単位となるよう切り捨てが行われます。
  • メッセージをパブリッシュするための割り当て使用量が、同じメッセージを受信するための割り当て使用量とは一致しない場合があります。これは、パブリッシュまたは受信されるメッセージが、1,024 バイトの最小リクエスト サイズより小さい場合に発生することがあります。
    • たとえば、10 個のメッセージを個別のリクエストでパブリッシュし、各メッセージが 500 バイトである場合、パブリッシュ割り当て使用量は 10,240 バイトになります。これは、1,024 バイトより小さいメッセージは自動的に 1,024 バイトの最小サイズに切り上げられるためです。
    • 1 回のサブスクライブ リクエストでこれら 10 個のメッセージを受信した場合、サブスクライブ割り当て使用量はおよそ 5,000 バイトとなります。これは、メッセージが 1 回のオペレーションで受信される場合は、各メッセージの実際のサイズが結合されて全体の使用量が決まるためです。
    • その逆になることもあります。1 回のパブリッシュ リクエストで複数のメッセージをパブリッシュし、個別のリクエストでそれらのメッセージを受信した場合、使用されるサブスクライブ割り当ての合計量がパブリッシュ割り当てよりも大きくなる可能性があります。
  • push エンドポイントに行われた push 配信要求の場合、その push サブスクリプションが含まれているプロジェクトに対して割り当てが課金されます。
  • pubsub.googleapis.com/topic/byte_costpubsub.googleapis.com/subscription/byte_cost 指標をそれぞれ追跡することで、トピックまたはサブスクリプションあたりの現在の割り当て使用量をモニタリングできます。これらの指標はバイト単位ですが、割り当てはキロバイト単位で指定されていることに注意してください。
  • 管理オペレーションは GetListCreateDeleteModifyPushConfigSetIamPolicyGetIamPolicyTestIamPermissions です。

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

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

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

その他の制限

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

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

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

Cloud Pub/Sub のドキュメント