注: このドキュメントの目的は、Pub/Sub と Pub/Sub Lite のどちらかを選ぶを手助けすることです。このドキュメントでは、「トピック」や「サブスクリプション」など、Pub/Sub の基本的なコンセプトについて十分に理解している必要があります。Pub/Sub を初めて使用する場合は、まず Pub/Sub とはをご覧ください。
Pub/Sub と Pub/Sub Lite は、水平スケーリングが可能なマネージド メッセージング サービスです。これらのサービスは大容量を処理でき、大容量ストレージの要件をサポートできます。ほとんどのアプリケーション統合および分析のユースケースでは、Pub/Sub がデフォルトのソリューションになります。これは機能が豊富でフルマネージドです。Pub/Sub Lite は、メッセージング スループットがより安定し、ワークロードがパーティション ベースのシステムから恩恵を受けることができ、コストが大きな懸念事項であるアプリケーションに適しています。
Pub/Sub には、さまざまな機能(メッセージごとの並列処理、グローバル ルーティング、リソース容量の自動スケーリング)があります。メッセージ レプリケーションの観点から、Pub/Sub は同期レプリケーションを保証します。
運用上のワークロード、グローバルな可用性、費用効果の機能をトレードオフする Pub/Sub Lite はパーティション ベースのソリューション。Pub/Sub Lite では、リソース容量を手動で予約して管理する必要があります。Pub/Sub Lite では、ゾーン Lite トピックまたはリージョン Lite トピックを選択できます。リージョン Lite トピックには、Pub/Sub トピックと同じ可用性 SLA が適用されます。
メッセージ レプリケーションの観点から 2 つのサービスの信頼性の違いに注意してください。Pub/Sub は同期データ レプリケーションをサポートし、3 つのゾーンを使用します。リージョン Lite トピックでは、データはセカンダリ ゾーンに複製されます。ゾーン Lite トピックは、1 つのゾーンでのみデータを複製します。
ビジネス要件のチェックリスト
次の質問を参考にして、適切な Pub/Sub メッセージング サービスを選択できます。
信頼性、最小限の運用コスト、開発の容易さが最優先事項ですか?Pub/Sub を使用する
トピックの容量管理に関して追加の運用上のオーバーヘッドを発生させますか?ゾーンサービスに固有の可用性のリスクに対応でき、低コストが必要ですか?ゾーン Lite トピックを使用する
ゾーン障害に対する保護が必要ですか?トピックの容量管理に関して運用上のオーバーヘッドを発生させ、スループットあたりの費用を最小に抑える必要がありますか。 リージョン Lite トピックを使用します。
Pub/Sub と Pub/Sub Lite の費用の違いについては、価格ページをご覧ください。
機能の比較表
機能 | Pub/Sub | Pub/Sub Lite |
---|---|---|
アクセスの透明性 | ○ | × |
容量 | 自動プロビジョニング済み | 使用前にプロビジョニング |
クライアント ライブラリの言語 | Java、Python、Go、Node.js、C++、C#、PHP、Ruby、SAP、ABAP | Java、Python、Go |
プロジェクト間のサブスクリプション | ○ | × |
顧客管理の暗号鍵 | ○ | × |
デッドレター トピック | ○ | × |
1 回限りの配信 | ○ | × |
統合 | ||
メッセージのフィルタリング | はい(メッセージ属性について) | × |
メッセージ レプリケーション | ○ | × |
メッセージ ルーティング | グローバル | ゾーンまたはリージョン |
メッセージ スキーマの検証 | ○ | × |
シングル リージョン内のマルチゾーン | × | 単一リージョン内の単一ゾーンまたはデュアルゾーン |
順序付けられた配信 | キーごとの順序付け | パーティションごとの順序付け |
メッセージの確認応答のトラッキング | メッセージごと | パーティションごとのカーソル |
料金 | 従量課金制 | プロビジョニングした容量に対しての支払い |
REST エンドポイント | ○ | × |
リソースの名前空間 | グローバル | ゾーンまたはリージョン |
保持期間 | 最大 31 日 | 無制限 |
Service エンドポイント | グローバルとリージョナル | リージョン |
ストレージ | 無制限 | 無制限 |
サブスクリプション |
データ レプリケーション
Pub/Sub トピックでは、リージョン内の 3 つのゾーンにデータが複製されます。 Pub/Sub データ レプリケーションの詳細については、トピック内のデータ レプリケーションをご覧ください。
リージョン Pub/Sub Lite トピックでは、リージョン内の 2 つのゾーンにデータが複製されます。ゾーン Pub/Sub Lite トピックは、リージョン内の単一ゾーンにデータを保存します。Pub/Sub Lite データ レプリケーションの詳細については、Lite トピックのデータ レプリケーションをご覧ください。
メッセージ ルーティング
Pub/Sub と Pub/Sub Lite は、Google Cloud の外部でも、すべてのリージョンからパブリッシュとサブスクライブを行えます。
Pub/Sub はメッセージをグローバルにルーティングします。どのリージョンでホストされているアプリケーションも、単一のトピックにメッセージをパブリッシュできます。メッセージは、組織のポリシーで許可されている最も近いリージョンで処理され、ソースとは無関係にサブスクライバーに転送されます。
Pub/Sub Lite は、リージョン内またはゾーン内でメッセージを転送します。サブスクライバーは、トピックが配置されているリージョンのサービス インスタンスに接続する必要があります。そのため、パブリッシャーとサブスクライバーは、通信のために同じリージョンへのネットワーク接続を維持する必要があります。パブリッシャーは、どこからでもトピックにデータをパブリッシュできますが、リモート リージョンへの接続が必要になり、ネットワーク レイテンシが増加することがあります。異なるロケーションのトピックにパブリッシュされた集計データを必要とするサブスクライバーは、メッセージを読み取るために、関連するすべてのローカル サービス インスタンスに接続する必要があります。
リソースの名前空間
Pub/Sub トピックとサブスクリプションはグローバル リソースです。Pub/Sub サービスは、トピック ストレージ ポリシーで許可されている任意のリージョンにメッセージを保存できます。さらに、トピックとそのトピックへのサブスクリプションを異なるプロジェクトに保存できるため、きめ細かな請求とアクセス制御が可能になります。最終的に、サブスクライバーは、Pub/Sub への接続に使用しているサービス エンドポイントや、データのパブリッシャーが使用したサービス エンドポイントに関係なく、同じデータを取得します。
ゾーン Lite トピックとサブスクリプションはゾーンリソースです。これらのリソースは、同じ Cloud プロジェクトとゾーンに存在する必要があります。
リージョン Lite トピックとサブスクリプションは、リージョン リソースです。 これらのリソースは、同じ 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 の使用を開始するには、次のチュートリアルを試してください。