🔖

Cloud Pub/Sub のキホン 

2022/12/19に公開

みなさん、こんにちは!Google Cloudの高田です。この記事は Google Cloud Japan Advent Calendar 2022の今から始める Google Cloud の12/18の記事になります。(12/18に鋭意作成中 )この記事では、Cloud Pub/Subについて書いていきたいと思います。(公式ドキュメントはこちら)

TL;DR;

  • Cloud Pub/Sub とは何か
  • リアルタイムデータ分析のアーキテクチャ
  • Pub/Sub と Pub/Sub Lite の使い所
  • その他、知っておいてもらいたい機能

Cloud Pub/Sub とは何か

一言で Pub/Sub を説明すると、スケーラブルで非同期なメッセージングサービスになります。Pub/Sub を使うことによって、アプリケーションやシステムで発生したイベントをトリガとしてメッセージを発行し、さまざまなサービスにメッセージを転送し、処理を行うことが可能になります。(あくまでも Pub/Sub が担う処理はメッセージング)
例えば、エンドユーザー アプリからのユーザー インタラクション イベントや、システムからのサーバー イベントをトリガとして、メッセージを Pub/Sub に転送します。Pub/Sub を経由して、Dataflow を利用し、BigQuery にデータを転送したり、Cloud Run や、Cloud Function 上で構築されたアプリケーションを実行することができます。そのメッセージングを担うのが Pub/Sub になります。

パブリッシャー、トピック 、サブスクリプション、サブスクライバーは Pub/Sub を使う上で理解しておく必要があるコンポーネントなので、簡単に説明していきます。

  • パブリッシャー
    メッセージを作成して、メッセージをトピックに送信するアプリケーションになります。メッセージはアプリケーションの中で開発者が任意のメッセージを作成する場合と、システムで発生したイベントで作成する場合があります。

  • トピック
    パブリッシャーによるメッセージの送信先となる、名前付きのリソースです。パブリッシャーは、このトピックを指定して、メッセージを送信します。

  • サブスクリプション
    サブスクライバーがパブリッシャーから発行されたメッセージを受信するには、必ずサブスクリプションが必要になります。サブスクライバーはGoogle Cloud のコンソール、もしくは gcloud コマンドを利用して作成します。サブスクリプションには、pull サブスクリプション、push サブスクリプション、BigQuery のサブスクリプションがあります。

  • サブスクライバー
    サブスクリプションからメッセージを受信するためのアプリケーションになります。

利用するための一連の流れはこちらのクイックスタートがわかりやすいので、参考にしてみてください。

リアルタイムデータ分析のアーキテクチャ

リアルタイムデータ分析のアーキテクチャでは、データの取り込みで Pub/Sub が使われます。その理由としては Pub/Sub を利用することで世界中のアプリケーションから、1 秒間に億単位のイベントを取り込んで分析できます。リアルタイムデータ分析のユースケースでは、大量のイベントを取り込むことができるスケーラビリティが重要なポイントになります。

引用: Pub/Sub > ユースケース > ストリーム分析

Cloud Pub/Sub と Pub/Sub Lite の使い所

Pub/Sub には、2つのタイプのサービスがあります。1つは Pub/Sub で、もう1つは Pub/Sub Lite になります。

大きな違いは、Pub/Sub は自動でグローバルのリソースとしてプロビジョニングされるため、容易に運用することができます。一方、Pub/Sub Lite は コストを抑えて運用する必要がある場合におすすめされるソリューションで、ユーザが自身で容量の設定などの運用作業を行う必要があります。そのため、信頼性高く、ユーザがリソースを調整する運用コストを抑えて、容易に開発を行うためには、Pub/Sub が選択肢となります。(機能の比較表)

また、Pub/Sub Lite は、gRPC pull メッセージ配信のストリーミングのみをサポートしています。サブスクライバーで利用するサービスによっては、より柔軟なメッセージ配信モードをサポートしている、Pub/Sub にする必要があるため、重要なポイントになります。

さいごに

Cloud Pub/Sub は Google Cloud のデータ分析においては非常に重要なサービスで、リアルタイム分析のユースケースでは基本的に利用されるサービスになります。
今回、ご紹介した内容以外にも、メッセージの順序指定や、1回限りの配信メッセージの暗号化など、さまざまな機能がありますので、ぜひドキュメントを読んで、試してみていただけたらと思います。

それでは Enjoy hacking and the holidays !

Google Cloud Japan

Discussion