Help us understand the problem. What is going on with this article?

GCP: Cloud Pub/Sub

Cloud Pub/Sub

について書きます。

Concept

https://cloud.google.com/pubsub/docs/overview

  • 非同期メッセージングサービス
  • メッセージングミドルウェアやストリーミング分析パイプラインとして使える
  • トピック: パブリッシャからメッセージが送られるリソース
  • サブスクリプション: 特定のトピックからアプリケーションにメッセージを送るリソース
  • メッセージ: データとアトリビュートの組み合わせ
  • メッセージアトリビュート: パブリッシャが定義するキーバリューペア

パブリッシャとサブスクライバの関係
fan-outという1対多の関係や、fan-inという多対1の関係、多対多の関係を実装できる。

メッセージのフロー

4~5にかけて、サブスクライバがメッセージをプルしたり、Pub/Subによるプッシュをしたりし、サブスクライバはアクノリッジを返す。

Pub/Sub Lite
https://cloud.google.com/pubsub/docs/choosing-pubsub-or-lite

まだベータ版らしい。
Pub/Subがマルチゾーンなサービスなのに対し、Liteは1ゾーンのサービス。
キャパシティは適宜プロビジョンし、そのキャパシティに対して課金される。

Cloud Taskとの違い
Pub/Subはパブリッシャとサブスクライバを分離して、その詳細を暗黙な状態にする。
Cloud Taskはパブリッシャがメッセージの行き先を決める明示的な仕組みである。

How-to

https://cloud.google.com/pubsub/docs/how-to

  • メッセージは、データ、オーダリングキー、アトリビュートから構成される。
  • メッセージには、トピック内でユニークなID、Pub/Subがメッセージを受け取ったタイムスタンプが付与される
  • 複数のメッセージをまとめて呼び出してスループットを向上できるが、レイテンシーが低下する
  • メッセージのリトライにおいては、その回数や指数的バックオフをコントロールする
  • メッセージの保持期間は10分から7日までの間
  • Pull: メッセージが多いとき、効率性やスループットが必要な時、パブリックのHTTPSが使えないとき
  • Push: 複数のトピックを同じウェブフックで使いたいとき、App EngineやCloud Functions用、Google Cloud環境が適していないとき
  • 明示的にStreaming Pullを使用していなくても、裏側ではStreaming Pullが使われていることがある。
  • Pushでは認証をすることができ、JSON Web Tokenをヘッダに付与する
  • タイムスタンプからメッセージをシーク (探) して、再送したり削除したりできる
    • サブスクライバのテストやアップデート、障害復旧に有用
  • オーダリングキーを同一リージョンで使っている場合は、メッセージを順番に受け取ることができる
  • Cloud Monitoringを通じてメトリクスを監視できる
  • Audit Logsを使って、Pub/Subのアクセスを監視できる
  • at rest/in transitでグーグル管理の暗号化鍵で暗号化できる
  • 少なくともat restのアプリケーションレイヤーでは、Customer Managed Encryption Keyで暗号化できる

現場からは以上です。ありがとうございました。

brainpad
ブレインパッドは、2004年の創業以来、データによるビジネス創造と経営改善に向き合ってきたデータ活用・分析企業です。
http://www.brainpad.co.jp/
Why not register and get more from Qiita?
  1. We will deliver articles that match you
    By following users and tags, you can catch up information on technical fields that you are interested in as a whole
  2. you can read useful information later efficiently
    By "stocking" the articles you like, you can search right away