TL

Cloud Service

Azure Event Hubs

ログ・テレメトリ・イベントを毎秒数百万件規模で取り込めるビッグデータストリーミング基盤。AWS の Amazon Kinesis に相当する Azure のリアルタイム取り込みサービス。

中級パフォーマンス効率信頼性コスト最適化セキュリティ
最終更新: 2026-06-03公式ドキュメント ↗
TL;DR要点だけ先に
  • 1.ログやテレメトリを毎秒数百万件取り込むストリーミング基盤。
  • 2.読んでも消えず複数コンシューマーグループが各自のオフセットで処理。
  • 3.高スループットな取り込みは Event Hubs、業務処理は Service Bus。

解決する課題

大量のイベントを単一のエンドポイントで受け止め、複数のダウンストリームへ流すための取り込み層を提供します。

  • 大量データを リアルタイム に取り込みたい(毎秒数百万イベント規模)
  • 複数の処理系で 同じストリームを並行処理 したい(コンシューマーグループ)
  • ストリームを Blob Storage / Data Lake へ自動保存 したい(Capture)
  • Kafka クライアントを コード変更なし で Azure 側に向けたい(Kafka 互換エンドポイント)

主要概念と用語

  • 名前空間(Namespace): Event Hubs を束ねる管理コンテナ。スループット単位や課金の境界となる
  • イベントハブ(Event Hub): Kafka の「トピック」に相当する個々のストリーム
  • パーティション: イベントハブを構成する順序付きシーケンス。並列度とスループットの単位(AWS の「シャード」相当)
  • パーティションキー: 同じキーを持つイベントを同一パーティションへ振り分け、順序を保証する
  • コンシューマーグループ: ストリーム全体の独立した「ビュー」。各グループが自分のオフセットで読み進める
  • スループット単位(TU)/ 処理単位(PU)/ キャパシティ単位(CU): Standard は TU、Premium は PU、Dedicated は CU でスケールする
  • Event Hubs Capture: イベントを Blob Storage / Data Lake Storage Gen2 へ Avro 形式で自動保存する機能
  • Kafka エンドポイント: Apache Kafka プロトコル(1.0 以降)互換のエンドポイント。Standard 以上で利用可

仕様・制限・クォータ

  • スループットは単位(TU/PU/CU)で決まる。1 TU = 入力 1 MB/秒(または 1,000 イベント/秒)、出力 2 MB/秒が目安
  • Auto-Inflate(Standard)で TU を上限まで自動拡張できる(自動縮小はしない)
  • 保持期間: Basic は 1 日固定、Standard は最大 7 日、Premium / Dedicated は最大 90 日。保持期間内はオフセット指定で再読み込み可能
  • パーティション数は作成後に増やせる場合があるが、原則は作成時に決める設計対象(順序保証はパーティション内のみ)
  • 1 イベントの最大サイズ: Basic / Standard は 1 MB、Premium / Dedicated は 1 MB(バッチ送信が基本)
  • 名前空間あたりのイベントハブ数・パーティション数には SKU ごとの上限がある

内部の仕組み

Event Hubs は、送信されたイベントをパーティションキーに基づいて パーティションへ分散し、各パーティション内では 追記専用(append-only)の順序付きログとして保持します。保持期間内であれば、複数のコンシューマーグループがそれぞれのオフセットから読み直せるのが特徴です(キューの Service Bus は取り出すと消えるのに対し、Event Hubs は読んでも消えません)。

Azure Event Hubsで送信元からパーティションへイベントを追記し、複数のコンシューマーグループが独立して読み取る構成
イベントはパーティション内に保持され、読み取りでは削除されません。各コンシューマーグループは独立した処理位置を持ち、チェックポイントから再開できます。Captureは同じストリームを長期保存へ分岐します。
  • パーティションキーを指定しない送信は、パーティション間にラウンドロビン的に分散される
  • 読み取り側は オフセットまたはシーケンス番号で位置を管理し、チェックポイント(通常は Blob Storage)に保存して再開する
  • Capture を有効にすると、ストリームと並行してイベントが Blob / Data Lake へ Avro 形式で自動保存され、バッチ分析やアーカイブに使える
Event Hubs と Service Bus の違い

Event Hubs =順序付き・再読み込み可能なイベントストリーム(複数コンシューマーグループ)Service Bus =取り出すと消えるメッセージキュー/トピック(個別配信・トランザクション向き)。高スループットなテレメトリ取り込みは Event Hubs、業務メッセージングは Service Bus と要件で選びます。

設計パターン / ベストプラクティス

  • 取り込み= Event Hubs、ストリーム処理/集計= Azure Stream Analytics または Functions、保存= Capture → Blob/Data Lake
  • パーティションキー設計で「ホットパーティション」を回避し、スループットを均等化する
  • スループットが読めなければ Auto-Inflate(Standard)または Premium(CPU/メモリ分離)を採用
  • 既存の Kafka 資産があるなら Kafka エンドポイントで接続し、コード変更を最小化
  • コンシューマーは イベントプロセッサー(EventProcessorClient) を使い、パーティション割り当てとチェックポイントを SDK に任せる

運用・監視・トラブルシュート

  • Azure Monitor のメトリクスで監視: IncomingMessages / OutgoingMessages / IncomingBytes / ThrottledRequests(スロットル)
  • コンシューマーの遅延は チェックポイントのオフセットと最新オフセットの差で検知する(Kinesis の IteratorAge に相当する考え方)
  • ThrottledRequests が出たら TU/PU 不足またはホットパーティションを疑う
  • 診断設定でキャプチャ/実行時ログを Log Analytics へ送り、送受信・エラーを可視化

コスト

SKU(価格レベル)の選択がコスト最適化の肝です。Standard は TU、Premium は PU、Dedicated は CU で課金されます。

価格レベル課金の単位向いている用途
Basicスループット単位(TU)+取り込みイベント数小規模・保持1日・検証
StandardTU(Auto-Inflate可)+イベント数一般的な本番。Kafka/Capture対応
Premium処理単位(PU)月額リソース分離・低レイテンシ・長期保持
Dedicatedキャパシティ単位(CU)月額超大規模・占有クラスター

セキュリティ

  • Microsoft Entra ID + RBAC で送受信権限を制御(Azure Event Hubs Data Sender / Data Receiver ロール)。資格情報のハードコードを避ける
  • 共有アクセス署名(SAS)も利用可能だが、原則は Entra ID 認証を推奨
  • 保存データはサービス側で暗号化(SSE)。Premium / Dedicated は カスタマーマネージドキー(Key Vault) に対応
  • プライベートエンドポイント / ネットワーク規則で公開アクセスを制限し、転送は TLS で保護
アンチパターン

接続文字列(SAS キー入りの connection string)をアプリやリポジトリに直書きするのは NG。マネージド ID + Entra ID 認証を使えばキーの管理・ローテーション・漏洩リスクを排除できます。

関連サービス・比較(AWS との対応)

観点Azure Event HubsAmazon Kinesis Data Streams
位置づけイベント取り込みストリームリアルタイム取り込みストリーム
並列の単位パーティションシャード
独立した読み取りコンシューマーグループコンシューマー(拡張ファンアウト)
自動保存Capture → Blob/Data Lake(Avro)Firehose → S3/Redshift 等
スケール単位TU / PU / CUシャード(プロビジョンド/オンデマンド)
互換プロトコルApache Kafka 互換Kinesis API(独自)
権限付与Entra ID + RBAC / SASIAM

ハンズオン / CLI例

# リソースグループを作成
az group create --name demo-rg --location japaneast

# Event Hubs 名前空間を作成(Standard レベル)
az eventhubs namespace create \
  --resource-group demo-rg \
  --name demo-ehns-0603 \
  --location japaneast \
  --sku Standard

# 名前空間の中にイベントハブ(ストリーム)を作成(4パーティション・保持3日)
az eventhubs eventhub create \
  --resource-group demo-rg \
  --namespace-name demo-ehns-0603 \
  --name events \
  --partition-count 4 \
  --cleanup-policy Delete \
  --retention-time-in-hours 72

# 専用のコンシューマーグループを追加(処理系ごとに独立して読む)
az eventhubs eventhub consumer-group create \
  --resource-group demo-rg \
  --namespace-name demo-ehns-0603 \
  --eventhub-name events \
  --name analytics-consumer

Azure Service

Azure Event Hubsを実務で読む

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

解決すること

分析

比較で見る軸

クラウド: Azure / カテゴリ: 分析 / 難易度: intermediate

導入後に効く点

読んでも消えず複数コンシューマーグループが各自のオフセットで処理。

先に潰すリスク

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

数字・仕様の読み方
クラウド
Azure
カテゴリ
分析
難易度
intermediate
関連資格
設計柱
performance / reliability / cost / security

判断チェックリスト

  • 自社の用途が「分析 / performance」に近いか確認する。
  • 強みである「ログやテレメトリを毎秒数百万件取り込むストリーミング基盤。」が本当に評価軸になるか確認する。
  • 注意点の「サービス単体ではなく、権限、ネットワーク、監視、課金、バックアップを含めて設計する必要がある。」を運用で吸収できるか確認する。
  • 公開値や仕様値は、対象プラン・対象機種・対象リージョンまで確認する。
  • 既存システム、ID、ネットワーク、監視、バックアップとの接続方法を先に洗い出す。
  • 小さく試してから、本番移行、権限設計、障害時手順、コスト監視を決める。

次に確認する観点

分析performancereliabilitycostsecurity

他クラウドの同等サービス

役割が近いサービスです。設計の置き換えや比較検討の参考に。