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 トピックでは、Pub/Sub トピックと同じ可用性 SLA が提供されます。ただし、メッセージ レプリケーションの点では 2 つのサービスの信頼性には違いがあります。
Pub/Sub は同期データ レプリケーションをサポートしており、3 つのゾーンを使用します。Pub/Sub では、少なくとも 2 つのゾーンへの同期レプリケーションと、3 つ目のゾーンに対するベスト エフォート レプリケーションが保証されます。Pub/Sub Lite では、非同期データ レプリケーションがサポートされています。リージョン Lite トピックでは、データはセカンダリ ゾーンに複製されます。ゾーン Lite トピックは、1 つのゾーンでのみデータを複製します。
ビジネス要件チェックリスト
適切な Pub/Sub メッセージング サービスを選択するには、次のことを確認してください。
信頼性、最小限の運用コスト、開発の容易さが最優先事項ですか。Cloud Pub/Sub を使用します。
スループットあたりの費用を最小に抑える必要がありますか、トピックの容量管理に関して運用上のオーバーヘッドを発生させますか、ゾーンサービスに固有の可用性のリスクに対応できますか?ゾーン Lite トピックを使用します。
スループットあたりの費用を最小化し、ゾーン障害に対して保護する必要がありますか、トピックの容量管理に関して運用上のオーバーヘッドを発生させますか?リージョン Lite トピックを使用します。
料金設定に関するサンプル シナリオ
10 MiBps(1 分あたり 600 MiB、1 か月あたり 25 TiB と相当)のデータを公開してサブスクライブするシステムがあるとします。
北米でのさまざまな Pub/Sub 構成のサンプル請求を、次に示します。Pub/Sub の費用は従量制です。Pub/Sub Lite のスループット費用は、プロビジョニングされた容量に基づきます。この例では、プロビジョニングされた容量(使用率)に対する実際のスループットの比率を 50% と想定しています。また、Pub/Sub Lite ストレージが 24 時間構成されていることを想定しています。
- Pub/Sub の場合、費用は $2,000 / 月です。
- ゾーントピックを含む Pub/Sub Lite の場合、費用は $169 / 月です。
- リージョン トピックを含む Pub/Sub Lite の場合、費用は $608/月です。
上記の例は、課金モデルの非常に単純なサンプルです。Pub/Sub と Pub/Sub Lite の詳細な費用の違いをご確認ください。
機能比較表
特徴 | Pub/Sub Lite | Pub/Sub Lite |
---|---|---|
Subscriber API | メッセージごとのリース、パーティションなし | 進捗の追跡に使用されるオフセット付きの順序付きパーティション |
メッセージ レプリケーション | シングル リージョン内のマルチゾーン |
|
容量 | 自動プロビジョニング済み | 使用前にプロビジョニング |
料金 | 使用した分だけ支払いたい | プロビジョニングした容量に対しての支払い |
Storage | 無制限 | 無制限 |
保持期間 | 最長 31 日 | 無制限 |
Service エンドポイント | グローバルとリージョナル | リージョン |
リソースの名前空間 | グローバル |
|
メッセージ ルーティング | グローバル |
|
データ レプリケーション
Pub/Sub トピックでは、リージョン内の 3 つのゾーンにデータが複製されます。 Pub/Sub データ レプリケーションの詳細については、トピック内のデータ レプリケーションをご覧ください。
リージョン Pub/Sub Lite トピックでは、リージョン内の 2 つのゾーンにデータが複製されます。ゾーンの Pub/Sub Lite トピックでは、リージョン内の単一のゾーンにデータが保存されます。Pub/Sub Lite データ レプリケーションの詳細については、Lite トピックのデータ レプリケーションをご覧ください。
メッセージ ルーティング
Pub/Sub Lite と Pub/Sub Lite は、Google Cloud の外部でも、すべてのリージョンからパブリッシュとサブスクライブを行えます。
Pub/Sub Lite は、メッセージをグローバルにルーティングします。どのリージョンでホストされているアプリケーションも、単一のトピックにメッセージをパブリッシュできます。メッセージは、組織のポリシーで許可されている最も近いリージョンで処理され、ソースとは無関係にサブスクライバーに転送されます。
Pub/Sub Lite は、リージョン内またはゾーン内でメッセージを転送します。サブスクライバーは、トピックが配置されているリージョンのサービス インスタンスに接続する必要があります。そのため、パブリッシャーとサブスクライバーは、通信のために同じリージョンへのネットワーク接続を維持する必要があります。パブリッシャーは、どこからでもトピックにデータをパブリッシュできますが、リモート リージョンへの接続が必要になり、ネットワーク レイテンシが増加することがあります。異なるロケーションのトピックにパブリッシュされた集計データを必要とするサブスクライバーは、メッセージを読み取るために、関連するすべてのローカル サービス インスタンスに接続する必要があります。
リソースの名前空間
Pub/Sub Lite トピックとサブスクリプションはグローバル リソースです。Pub/Sub Lite サービスは、トピック ストレージ ポリシーで許可されている任意のリージョンにメッセージを保存できます。さらに、トピックとそのトピックへのサブスクリプションを異なるプロジェクトに保存できるため、きめ細かな請求とアクセス制御が可能になります。最終的に、サブスクライバーは、Pub/Sub Lite への接続に使用しているサービス エンドポイントや、データのパブリッシャーが使用したサービス エンドポイントに関係なく、同じデータを取得します。
ゾーン Lite トピックとサブスクリプションはゾーンリソースです。これらのリソースは同じ Cloud プロジェクトとゾーンに存在する必要があります。
リージョン Lite トピックとサブスクリプションは、リージョン リソースです。これらのリソースは同じ Cloud プロジェクトとリージョンに存在する必要があります。
Pub/Sub Lite がサポートするリージョンとゾーンの一覧については、Pub/Sub Lite のロケーションをご覧ください。
容量管理
Pub/Sub Lite は自動スケーリングを行います。 メッセージのパブリッシュの容量は自動的にプロビジョニングされるため、プロジェクトに対して構成した割り当てまで、任意のレートでメッセージを送受信できます。
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 Lite と Pub/Sub Lite はどちらも、サーバーレス ストリーム処理とデータ統合のために Dataflow と統合されています。 Pub/Sub Lite を使用すると、Dataflow で柔軟なスケーリングが可能になり、Dataflow SQL がサポートされます。
Dataflow と Pub/Sub Lite または Pub/Sub Lite の使用を開始するには、次のチュートリアルを試してください。