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

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/SubPub/Sub Lite の詳細な費用の違いをご確認ください。

機能の比較表

機能 Pub/Sub Pub/Sub Lite
サブスクライバー API メッセージごとのリース、パーティションなし 進捗の追跡に使用されるオフセット付きの順序付きパーティション
メッセージ レプリケーション シングル リージョン内のマルチゾーン
  • ゾーン Lite トピックの場合は単一ゾーン。
  • リージョン Lite トピックの単一リージョン内のデュアルゾーン。
容量 自動プロビジョニング済み 使用前にプロビジョニング
料金 従量課金制 プロビジョニングした容量に対しての支払い
保存 無制限 Lite トピックあたり 30 GiB~10 TiB
保持期間 最大 31 日 無制限
Service エンドポイント グローバルとリージョナル リージョン
リソースの名前空間 グローバル
  • ゾーン Lite トピックのゾーン。
  • リージョン Lite トピックのリージョン。
メッセージ ルーティング グローバル
  • ゾーン 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 の使用を開始するには、次のチュートリアルを試してください。