TL

Cloud Service

メッセージング

Pub/Sub / Eventarc / Cloud Tasks / Dataflow の使い分けを一枚で。疎結合キュー・ファンアウト・イベント配信・ストリームの違いを即断。

基礎
最終更新: 2026-06-04

ひと目で使い分け

やりたいこと選ぶもの
バッファして疎結合に処理(キュー)Pub/Sub(Pull サブスク 1 本)
1イベントを複数へ同報(ファンアウト)Pub/Sub(複数サブスク)
特定タスクを実行時刻・レート制御つきで確実にキックCloud Tasks
GCP の状態変化やログで宛先へ振り分け(イベント駆動)Eventarc
毎秒大量のストリームを取り込み・再処理・分析Pub/Sub + Dataflow
定期実行(cron)Cloud Scheduler
GCP は「1サービスで SQS と SNS の両方」

AWS では SQS(キュー)と SNS(ファンアウト) が別サービスですが、GCP では Pub/Sub 1 つが両方をこなします。 キュー的に使うなら Pull サブスクリプションを 1 本、同報したいなら 同じトピックにサブスクリプションを複数生やすだけ、というのが基本発想です。

詳細比較

観点Pub/SubCloud TasksEventarcDataflow
モデルPub/Sub+キュー両対応タスクキュー(1対1)イベントルーティングストリーム/バッチ処理
配信方式Pull / PushPush(HTTP ターゲット)Push(CloudEvents)Pull で取り込み処理
順序順序指定キーで保証個別ディスパッチ保証なしウィンドウ/イベント時刻で制御
再読み込みシークで時刻/スナップショットへ巻き戻し不可(実行で消える)不可ソース(Pub/Sub)依存
スコープグローバルリージョンリージョン(一部 global)リージョン(ジョブ単位)
代表用途疎結合バッファ/ファンアウト個別ジョブの確実なキックGCP イベント駆動連携リアルタイム集計/ETL

キュー的に使う:Pub/Sub サブスク か Cloud Tasks か

どちらも「処理を後回しにして確実にこなす」用途で重なりますが、設計思想が違います。

観点Pub/Sub(Pull サブスク)Cloud Tasks
発想ストリームをまとめて高スループットに捌く個々のタスクを 1 件ずつ確実にディスパッチ
ターゲットサブスクライバーが取りに行く / Push 先 URLHTTP / App Engine ターゲットへ Push
実行時刻の制御基本は即時(到着順)スケジュール指定・遅延実行が得意
レート/同時実行の制御サブスクライバー側で調整キューで最大ディスパッチ/同時実行を細かく制御
重複at-least-once(冪等前提)原則 1 タスク 1 回(再試行はあり)
向きファンアウト・大量イベント外部 API 呼び出しの平準化・予約実行
Pub/Sub と Cloud Tasks の境目

Pub/Sub=多対多のストリーミング配信(ファンアウト・高スループット)Cloud Tasks=個別タスクのディスパッチ(実行時刻やレートを細かく制御)。 「届いたイベントを並列に捌く」なら Pub/Sub、「この処理を 5 分後に・1 秒あたり N 件だけ確実にキック」なら Cloud Tasks を選びます。

迷ったらこの順で考える

  1. GCP の状態変化(Storage 作成・監査ログ等)をトリガーに処理したい → Eventarc(CloudEvents で Cloud Run などへ配信)
  2. 送信側と処理側を切り離してバッファ/同報したい → Pub/Sub(キューなら Pull 1 本、ファンアウトなら複数サブスク)
  3. 特定タスクを予約実行・レート制御つきで確実にキックしたい → Cloud Tasks
  4. 毎秒大量のストリームを取り込み、集計・変換して保存したい → Pub/Sub + Dataflow(→ BigQuery / GCS)
  5. 時刻ベースの定期実行(cron)がしたい → Cloud Scheduler
Pub/Sub と Eventarc の違い

どちらもイベントを運びますが役割が違います。

  • Pub/Sub=汎用の高スループットなメッセージング基盤。自分で発行したメッセージを自由なトポロジで配る「土管」。
  • Eventarc=GCP サービスのイベント(Cloud Storage / 監査ログ等)を CloudEvents 標準に整え、フィルタして Cloud Run などへ届ける上位レイヤー。内部の配送には Pub/Sub を使います。 「アプリ間で自前のメッセージを流す」なら Pub/Sub、「GCP で何かが起きたら処理する」なら Eventarc です。
ストリームは「Pub/Sub で受けて Dataflow で処理」

GCP に「Kinesis」という単一サービスはありません。Pub/Sub が取り込み(シャード管理不要で自動スケール)Dataflow(Apache Beam)がストリーム/バッチ処理を担い、2 つの組み合わせで AWS の Kinesis Data Streams + Managed Service for Apache Flink に相当します。 Pub/Sub は消費してもシークで過去へ巻き戻せるため、リアルタイム処理とバグ修正後の再処理を両立できます。

アンチパターン

Push サブスクリプションや Eventarc の宛先を認証なしの公開 URL で受けるのは NG。誰でも偽メッセージを POST できてしまいます。 Push は OIDC トークン認証を有効化し受信側でトークンを検証、Eventarc は専用サービスアカウントroles/eventarc.eventReceiver と宛先の roles/run.invoker のみを付与します。鍵(サービスアカウント JSON)のハードコードも避け、ワークロードに紐づくサービスアカウントを使います。

AWS との対応

役割GCPAWS
疎結合キューPub/Sub(Pull サブスク)SQS
ファンアウト/同報Pub/Sub(複数サブスク)SNS(+複数 SQS)
個別タスクのディスパッチCloud TasksSQS(+ワーカー)
イベントルーティングEventarcEventBridge
ストリーム取り込み+処理Pub/Sub + DataflowKinesis(Data Streams + Flink)
定期実行(cron)Cloud SchedulerEventBridge Scheduler
対応関係のまとめ

Pub/Sub 1 つで SQS のキューと SNS のファンアウトの両方をこなすのが GCP 最大の特徴。 cron は Eventarc ではなく Cloud Schedulerストリーム処理は単一サービスではなく Pub/Sub + Dataflow という役割分担を押さえておけば迷いません。

関連: Pub/Sub / Eventarc / Pub/Sub + Dataflow

Google Cloud Service

メッセージングを実務で読む

TL;DRは入口です。実際に選ぶ・使う段階では、何を解決するか、何と比較するか、導入後にどこで詰まるかまで見る必要があります。

解決すること

cheatsheets

比較で見る軸

クラウド: Google Cloud / カテゴリ: cheatsheets / 難易度: basic

導入後に効く点

導入後の運用手順、権限、監視、更新方法まで含めて評価します。

先に潰すリスク

サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。

数字・仕様の読み方
クラウド
Google Cloud
カテゴリ
cheatsheets
難易度
basic
関連資格
設計柱

判断チェックリスト

  • 自社の用途が「cheatsheets」に近いか確認する。
  • 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

cheatsheets