Google CloudのProfessional Data Engineer試験では、分散メッセージング基盤に関する理解が問われます。特にApache KafkaとGoogle Cloud Pub/Subは、どちらも「イベントを扱う」文脈で登場するため混乱しやすいサービスです。私自身も試験勉強中に「結局どっちで何を解決するのか?」と立ち止まりました。本記事では、試験対策で迷いがちなKafkaとPub/Subの役割を整理し、出題での判断ポイントを共有します。

KafkaとPub/Subが混同される理由

  • どちらもイベント駆動アーキテクチャで利用される
  • 用語(トピック、サブスクリプション)が似ている
  • バッチ処理にもストリーム処理にも組み込まれる

試験中は「どちらもメッセージブローカー」と覚えているだけでは正解できません。役割・運用モデル・責務の違いを押さえる必要があります。

Kafkaの特徴と責務

高スループットと順序保証

Kafkaは分散ログの仕組みに基づいて構築されており、ブローカー群がトピックのパーティションを保持します。これにより大規模なスループットを実現しつつ、パーティション内では順序が保証されます。大量データをリアルタイムに処理するパイプラインや、厳密なイベント順序が求められるケースに強いです。

保管期間とリプレイ機能

Kafkaはメッセージを一定期間保持し、消費者が過去のイベントを再読込することができます。この「イベントストア」的な機能はデバッグや再処理に便利ですが、ストレージの運用コストが発生します。

Pub/Subの特徴と責務

フルマネージドでグローバル分散

Pub/SubはGoogleが提供するマネージドなメッセージング基盤で、利用者はブローカーの管理を一切行いません。リージョンをまたいだ高可用性がデフォルトで備わっており、試験問題では「グローバル配信」「運用管理不要」と出たらPub/Subを選びます。

配信モデルとスケーラビリティ

Pub/Subは基本的に「少なくとも1回(at-least-once)」の配信保証を提供し、順序保証はオプション機能(ordering key)に依存します。また、PushでなくPull サブスクリプション タイプ限定ですが、「1回限り(exactly-once)」の 配信もサポートされます。処理の冪等性を設計に組み込むことが前提となります。サーバーレス基盤に直結できる点も特徴で、Cloud FunctionsやDataflowとの統合が容易です。

試験での判断基準

  • 順序保証やイベントリプレイが重視される → Kafka
  • グローバルにスケーラブル、かつ運用レスが重視される → Pub/Sub
  • 既存システムがKafka依存 → DataprocやDataflowでKafka互換を組み込む
  • 新規設計でイベント駆動を簡潔に実装したい → Pub/Sub

一次情報リンク:
– Kafka: https://kafka.apache.org/documentation/
– Pub/Sub: https://cloud.google.com/pubsub/docs/overview

実務と試験での違い

試験対策では「KafkaはOSSで自己管理が必要」「Pub/SubはGoogle Cloudマネージドで運用レス」という整理で十分です。実務では、Kafkaを既に大規模に使っている企業も多く、完全移行は難しい場合があります。そのためGoogle CloudではDatastreamやDataflowを利用してKafkaとの連携を実現するパターンが一般的です。

まとめ

KafkaとPub/Subはどちらもメッセージング基盤ですが、設計思想と責務の範囲が異なります。PDE試験で問われるのは「OSSかマネージドか」「順序やリプレイか運用レスか」という切り分けです。勉強中に混乱したポイントを整理すると、試験では迷わず選択できるようになります。読了後は公式ドキュメントを確認し、実際のユースケースを想像しながら判断基準を固めておくと良いでしょう。