カフカとは何ですか?

2026年8月13日公開

← 用語集のすべての項目 「K」へジャンプ

Apache Kafkaは、アプリケーションがトピックに整理されたレコードの連続ストリームを公開、保存、および購読できるようにする、オープンソースの分散型イベントストリーミングプラットフォームです。プロデューサーはトピックにレコードを書き込み、コンシューマーはそれらを独立して、それぞれのペースで読み取ります。これにより、データを生成するシステムと、それを処理するシステムとの結合が解除されます。

主なポイント

  • Kafkaは、オープンソースの分散型イベントストリーミングおよびメッセージングプラットフォームです。
  • プロデューサーはトピックに投稿し、コンシューマーはそれを購読して、自分のペースで読み進めます。
  • レコードは保持期間中保存されるため、コンシューマーは過去のイベントを再生することができます。
  • Versa VMS、アナリティクスのログエクスポート、およびDirectorのイベントの基盤としてKafkaを使用しています。
  • Kafkaクラスタは、ハードウェアを交換するのではなく、ブローカーやパーティションを追加することでスケールします。

このページの内容: その重要性仕組み種類カフカとVersaよくある質問

カフカはなぜ重要なのでしょうか?

現代のシステムは、クリックストリーム、センサーの測定値、ログ行、ユーザーID関連のイベントなど、データベースが単一の書き込みで処理しきれないほどの速度で、絶え間ないデータストリームを生成しています。 Kafkaが重要なのは、このデータを生成するシステムとそれを消費するシステムを分離する点にあります。プロデューサーはレコードを一度書き込むだけで、任意の数の独立したコンシューマーが、それぞれのペースで同じストリームを読み取ったり、データが保存されてからかなり経ってからでもそれを再生したりできます。これにより、従来のメッセージングキューが引き起こすポイントツーポイントの統合の複雑化が解消されます。従来の方式では、新しいコンシューマーが追加されるたびに、すべてのプロデューサーへの専用の接続が必要だったからです。

セキュリティテレメトリ、IoTデバイス群、イベント駆動型マイクロサービスなど、リアルタイムパイプラインを構築する組織にとって、Kafkaの耐久性と順序保証は、イベント駆動型アーキテクチャ のデフォルトの基盤となっています。ハードウェアを交換するのではなく、ブローカーやパーティションを追加することで水平方向にスケールアウトが可能です。

カフカとは何ですか?

Kafkaはデータをトピックとして整理します。トピックとは、プロデューサーがデータを追加し、コンシューマーがデータを読み取る、名前付きのレコードのストリームです。各トピックはパーティションに分割され、ブローカーと呼ばれるサーバーのクラスター全体に分散されます。このパーティショニングにより、Kafkaはスループットを拡張できるほか、パーティション内(ただしパーティション間では不可)での順序保証を実現しています。コンシューマーグループはそれぞれ独立してサブスクライブおよび読み取りを行い、各グループが独自の読み取り位置(オフセット)を追跡するため、複数のアプリケーションが互いに干渉することなく、同じストリームを消費することができます。

ブローカーは各パーティションを複数のノードに複製するため、単一のブローカーが障害を起こしてもデータが失われることはありません。また、データの保持は「読み取り時に削除」方式ではなく、時間またはサイズに基づいて行われるため、新しいコンシューマーは新しいメッセージのみを表示するのではなく、履歴を再生することができます。接続はTLS経由で行うことができ、クライアントは通常、ネットワークの信頼関係のみに依存するのではなく、SASL(ユーザー名/パスワード、SCRAM、またはOAuthトークン)を使用してブローカーに対して認証を行います。

Kafkaの導入形態

Kafkaの導入形態は、一般的に3つのパターンに分類されます。自己管理型クラスターは、運用者が管理するインフラ上で完全に稼働します。つまり、ブローカーはオンプレミスまたはプライベートクラウドにインストールされ、キャパシティプランニング、パッチ適用、フェイルオーバーはすべて運用者が担当します。一方、Confluent CloudやAmazon MSKなどのマネージドクラウドサービスでは、ブローカーの運用をプロバイダーに委託し、運用負担を軽減しながら、プロデューサーおよびコンシューマー向けのAPIをそのまま利用できます。マルチクラスターかつ地理的にレプリケートされた展開では、MirrorMakerなどのレプリケーションツールを使用して、2つ以上のKafkaクラスター(多くの場合、異なるサイトやリージョンにある)を連携させます。このツールは、災害復旧やマルチデータセンター設計のために、ソースクラスターから宛先クラスターへトピックをミラーリングします。

この選択は、アプリケーションの設計よりも運用上のオーバーヘッドに大きな影響を与えます。つまり、基盤となるパターンにかかわらず、プロデューサーとコンシューマーは同じクライアントAPIを使用します。

カフカ&Versa

Versa Versa Messaging Service(VMS)のメッセージング基盤としてKafkaを採用しています。VMSは、Versa のヘッドエンドコンポーネントと ゲートウェイの間で、ユーザーIDイベント、脅威フィード、デバイスのリスクスコア、エンドポイント情報といったリアルタイムデータを配信するコンポーネントです。 SIM向けの は、RADIUSの代替手段としてKafka経由で加入者イベントを公開することができ、SCIM、UEBA、およびXIP-EIPの各マイクロサービスは、Kafkaブローカーのトピック、アドレス、ポート、およびSASLまたは証明書ベースの認証を設定します。SASE SASE

VMSクラスターでは、Kafka MirrorMakerを利用してVMSノード間でデータをレプリケートし、冗長性を確保することも可能です。これは、Versa がCrowdStrike、Microsoft Defender、SentinelOneなどのEDRプラットフォームを統合する前に必要とする手順です。Versa Analyticsは、リモートログコレクターとしてログを外部のKafkaクラスターにストリーミングでき、ログコレクターエクスポーター上でトピックやTLS/SASL認証を設定できます。また、Versa Directorは、下流システム向けにKafkaを介してオブジェクト変更通知やイベント通知を発行します。

よくある質問

カフカのトピックとは何ですか?

トピックとは、プロデューサーが書き込み、コンシューマーが読み取る、名前が付けられた、追記専用のレコードストリームです。Kafkaは各トピックをパーティションに分割することで、単一のパーティション内での順序を維持しつつ、ストレージや読み書きの負荷を複数のブローカーに分散させることができます。

カフカと従来のメッセージキューの違いは何ですか?

従来のキューでは、通常、コンシューマーがメッセージを読み取ると、そのメッセージは削除されます。一方、Kafkaでは、メッセージが読み取られたかどうかに関係なく、設定可能な期間、レコードが保持されるため、互いに影響を与えることなく、独立したコンシューマーグループが同じストリームを読み取り、再実行することができます。

カフカにはZooKeeperが必要ですか?

以前のバージョンのKafkaでは、クラスタのメタデータやリーダー選出のために、独立したApache ZooKeeperアンサンブルに依存していました。KafkaのKRaftモードが本番環境での運用が可能になって以来、ブローカーが内部でその調整を処理するようになり、ZooKeeperへの依存が解消されました。

カフカはメッセージの順序をどのように保証しているのでしょうか?

Kafkaは、単一のパーティション内でのみ順序を保証します。つまり、同じパーティションに書き込まれたレコードは、生成された順序で読み出されます。パーティションをまたぐ場合、順序の保証はないため、厳密なグローバルな順序を確保するには、関連するレコードを同じパーティションキーにルーティングする必要があります。

Versa は、VMSへのKafka接続をどのように保護しているのでしょうか?

Versa TLS暗号化通信および証明書ベースまたはSASL認証を用いて、KafkaとVMS間の接続を保護します。VMSブローカーの設定では、SCRAMおよびOAuth-bearer SASLメカニズムに加え、CA、クライアント証明書、秘密鍵のアップロードもサポートされており、これらはAnalyticsのログエクスポートでも使用されているのと同じ制御機能です。

カフカについてさらに詳しく

さらに詳しく知りたい場合は、私たちが信頼している情報源を以下にご紹介します。

Apache Kafka:ドキュメント
Apache Kafka プロジェクトの公式ドキュメント:アーキテクチャ 、トピック、プロデューサーとコンシューマー、および操作方法。

カフカについて読んでいるなら、次はこれらもぜひチェックしてみてください。

Versa メッセージングサービス プライバシー強化メール 件名の別名
Kubernetesを基盤とし、Kafkaをメッセージストリーミングのバックボーンとして活用して、Versa の各コンポーネントにID、脅威、リスクスコアデータを配信するヘッドエンドサービス。 KafkaのTLSで保護されたリモートコレクターが、CAファイル、クライアントファイル、および秘密鍵ファイルに対して要求する証明書および鍵のエンコード形式。 Kafkaクライアントが暗号化された接続を介してブローカーの認証を行う際、TLS検証でチェックされる証明書の拡張子。
この記事は役に立ちましたか?
問題を報告する