Pub/Sub または Pub/Sub Lite の選択

このページの情報は、Pub/Sub と Pub/Sub Lite の選択に役立ちます。

Pub/Sub と Pub/Sub Lite はともに、水平スケーリングが可能なマネージド メッセージング サービスです。ほとんどのアプリケーション統合および分析のユースケースでは、Pub/Sub がデフォルトのソリューションになります。Pub/Sub Lite は、費用を非常に低コストで抑えるために追加の運用作業が正当化されるアプリケーションにのみおすすめします。

Pub/Sub は、より広範な機能、メッセージごとの並列処理、グローバル ルーティング、リソース容量の自動スケーリングを提供します。

Pub/Sub Lite のコストは桁違いに低くなりますが、可用性と耐久性は低下します。また、Pub/Sub Lite では、リソース容量を手動で予約して管理する必要があります。

たとえば、サブスクリプションが 1 つ(各メッセージの読み取りは 1 回)のシステムの場合、コストは 85% 安くなります。具体的には、1 MiB/秒(60 MiB/分、または 2.5 TiB/月)のデータのパブリッシュと受信を行い、メッセージを 24 時間保存する場合(ストレージ容量は 84 GiB/月)、Pub/Sub Lite の料金は 1 か月あたり $30 になるのに対して、Pub/Sub では 1 か月あたり $200 になります。

Pub/Sub と Pub/Sub Lite の費用の違いについて詳しくは、Pub/Sub Lite の料金をご覧ください。

比較表

機能 Pub/Sub Pub/Sub Lite
メッセージ レプリケーション シングル リージョン内のマルチゾーン シングルゾーン
容量 自動プロビジョニング済み 使用前にプロビジョニング
料金 使用した容量に対しての支払い プロビジョニングした容量に対しての支払い
保存 無制限 Lite トピックあたり 30 GiB~10 TiB
保持期間 最大 7 日 無制限
Service エンドポイント グローバルとリージョナル リージョン
リソースの名前空間 グローバル ゾーン
メッセージ ルーティング グローバル ゾーン

メッセージ ルーティング

Pub/Sub はメッセージをグローバルにルーティングします。どのリージョンでホストされているアプリケーションも、単一のトピックにメッセージをパブリッシュできます。これらは、組織のポリシーで許可されている最も近いリージョンで処理され、ソースとは無関係にサブスクライバーに転送されます。

Pub/Sub Lite は、メッセージをゾーンにルーティングします。サブスクライバーは、トピックが配置されているリージョンのサービス インスタンスに接続する必要があります。そのため、パブリッシャーとサブスクライバーは、通信するために同じリージョンへのネットワーク接続を維持する必要があります。パブリッシャーは、どこからでもトピックにデータをパブリッシュできますが、リモート リージョンへの接続が必要になり、ネットワーク レイテンシが増加することがあります。異なるロケーションのトピックにパブリッシュされた集計データを必要とするサブスクライバーは、メッセージを読み取るために、関連するすべてのローカル サービス インスタンスに接続する必要があります。

リソースの名前空間

Pub/Sub トピックとサブスクリプションはグローバル リソースです。Pub/Sub サービスは、トピック ストレージ ポリシーで許可されている任意のリージョンにメッセージを保存できます。さらに、トピックとそのトピックへのサブスクリプションを異なるプロジェクトに保存できるため、きめ細かな請求とアクセス制御が可能になります。最終的に、サブスクライバーは、Pub/Sub への接続に使用しているサービス エンドポイントや、データのパブリッシャーが使用したサービス エンドポイントに関係なく、同じデータを取得します。

Pub/Sub Lite トピックとサブスクリプションは、同じ Cloud プロジェクトとゾーン内に存在する必要のあるゾーンリソースです。パブリッシャーまたはサブスクライバーを Google Cloud で運用すると、アプリケーションは、Lite トピックと Lite サブスクリプションがある Cloud プロジェクトから別の Cloud プロジェクトで動作します。Pub/Sub Lite がサポートするゾーンのリストについては、Pub/Sub Lite のロケーションをご覧ください。

容量管理

Pub/Sub は自動スケーリングを行います。メッセージのパブリッシュの容量は自動的にプロビジョニングされるため、プロジェクトに対して構成した割り当てまで、任意のレートでメッセージを送受信できます。

Pub/Sub Lite は手動でプロビジョニングされます。Lite トピックごとにパーティション数を構成する必要があります。また、ストレージとスループットの容量をプロビジョニングする必要があります。スループット容量は、Lite 予約を使用してプロビジョニングできます。

配信モード

Pub/Sub は複数のメッセージ配信モードをサポートしています。これらには、Pull(従来のポーリング)、Push(HTTPS POST)、StreamingPull(最小のレイテンシと最高の効率性のための双方向 RPC)、HTTP REST と gRPC の pull が含まれています。

Pub/Sub Lite は、gRPC pull メッセージ配信のストリーミングのみをサポートしています。メッセージをリクエストするには、サブスクライバーは、各パーティションとの双方向ストリーミング接続を確立します。

並列処理

Pub/Sub はメッセージごとの並列処理を使用します。これにより、1 つのサブスクリプションで 1 つまたは数千のクライアントから任意の数のメッセージを同時処理できます。

Pub/Sub Lite は、パーティションベースの並列処理を使用します。これにより、クライアントは単一のクライアント インスタンスで各データ パーティションを直線的に処理します。これにより、クライアント インスタンスの最大数がパーティションの最大数に制限されます。

ストリーミング パイプライン

Pub/Sub と Pub/Sub Lite はどちらも、サーバーレス ストリーム処理とデータ統合のために Dataflow と統合されています。Pub/Sub を使用すると、Dataflow で柔軟なスケーリングが可能になり、Dataflow SQL がサポートされます。

Dataflow と Pub/Sub または Pub/Sub Lite の使用を開始するには、次のチュートリアルを試してください。