コンテンツに移動
データ分析

Pub/Sub トピックの保持で実現するメッセージの保存と費用・時間の節約

2021年9月10日
Google Cloud Japan Team

※この投稿は米国時間 2021 年 8 月 27 日に、Google Cloud blog に投稿されたものの抄訳です。

本日より Pub/Sub の新たな機能であるトピックの保持をご利用いただけるようになったことをお知らせします。これにより、パブリッシュされたメッセージの保存と再生がより簡単かつ便利なものとなります。従来、メッセージ保持の構成は各サブスクリプションで個別に行う必要があり、料金もサブスクリプション単位で発生していました。これからは、トピックの保持を有効にすると、選択した保持期間内でトピックに送信されたすべてのメッセージが、すべてのトピックのサブスクリプションで利用できます。サブスクリプションを追加してもストレージの費用が増えることはありません。さらに、メッセージのパブリッシュ時点でトピックにサブスクリプションが関連付けられていなくても、メッセージは保持され、再生できるようになります。

また、トピックの保持によって Pub/Sub の既存のシーク機能が拡張され、再生対象のメッセージが、サブスクリプションの確認済みメッセージに制限されなくなりました。トピックによって保持されているデータを使用して、新しいサブスクリプションを初期化でき、どのサブスクリプションでも以前にパブリッシュされたメッセージを再生できます。これにより、データ処理エラーの心配なくストリーム処理コードを更新したり、メッセージの履歴に基づいて構築された新しい AI モデルやサービスをデプロイしたりすることが、これまでより安全になります。

トピック保持の仕組み

トピックの保持では、サブスクリプションの保持設定とは関係なく、トピックがメッセージを保存する役割を担います。トピックのオーナーは、トピックの保持期間を完全に制御でき、トピックによるメッセージの保存に関連する費用をすべて負担します。サブスクリプションのオーナーは、個々のニーズに合わせてサブスクリプション保持ポリシーを構成できます。

https://storage.googleapis.com/gweb-cloudblog-publish/images/Topic-retained_messages.max-2000x2000.jpg
トピックによって保持されたメッセージは、サブスクリプションがメッセージを保持するように構成されていない場合でも利用可能

新しいユースケース向けにデータを初期化する

組織がストリーミング データの使用に習熟すると、Pub/Sub トピックにパブリッシュした既存のデータ ストリームに新しいユースケースを適用したいと思うことがよくあります。トピックの保持を使用すると、新しいサブスクリプションを作成して目的の時点までシークするという方法で、新しいユースケースの目的に合わせてデータ ストリームの履歴にアクセスできます。

gcloud CLI の使用

新しいサブスクリプションを初期化し、過去 2 日間のデータを再生する 2 つのコマンドを次に示します。保持されたメッセージは、シーク操作が実行されてから 1 分以内に使用可能になります。

読み込んでいます...

ご自分に合った保持オプションを選択する

Pub/Sub では、メッセージの保持ポリシーをいくつかの異なるタイプから選択することができます。各タイプのおすすめの使用方法の概要は次のとおりです。

  • トピックの保持を使用すると、作成された時期に関係なく、保持ウィンドウ内でパブリッシュされたメッセージをすべて再生でき、料金の発生は関連付けられているすべてのサブスクリプションに対して 1 回のみです。トピックのオーナーが共有ストレージを管理することが望ましい状況では、トピックの保持をおすすめします。

  • サブスクリプションの保持を使用すると、マルチテナント構成におけるサブスクリプションの各オーナーは、トピック オーナーが構成した保持設定とは関係なく、各自の保持に対するニーズを満たすことができます。

  • スナップショットは、重要なイベントが発生した時点におけるサブスクリプションの状態をキャプチャするために最もよく使われます。たとえば、サブスクリプションから読み取るときのサブスクライバー コードの更新などです。

サブスクリプション保持からトピック保持への移行

Cloud Console または gcloud CLI を使用して、新しいトピックを作成するときや、既存のトピックを更新するときに、トピックの保持を構成できます。CLI では、コマンドは次のようになります。

gcloud alpha pubsub topics update myTopic --message-retention-duration 7d.

サブスクリプション ストレージからトピック保持に移行する場合、サブスクリプション ストレージは 7 日後に安全に無効にできます。

次のステップ

Pub/Sub トピックの保持によって、Pub/Sub を使用したデータの再処理がより簡単で便利になります。ご利用にあたっては、機能の詳細料金についてのドキュメントをご確認ください。また、直接 Cloud Console か gcloud CLI を使用してトピックでトピックの保持を有効にすることもできます。

-クラウド ソリューション アーキテクト Patrick Dunn

-ソフトウェア エンジニア Lauren Huang

投稿先