[ウェビナー] 生成 AI アプリをより速く構築する方法 | 今すぐ登録

Apache Kafka® とは?

Apache Kafka は、大規模なストリーム処理、リアルタイムデータパイプライン、データ統合に使用されるオープンソースの分散型ストリーミングシステムです。リアルタイムデータの処理を目的に2011年に LinkedIn で開発されて以降、メッセージキューから、毎秒100万件以上のメッセージ、つまり1日あたり数兆件以上のメッセージを処理できる本格的なイベントストリーミングプラットフォームへと急速に進化を遂げてきました。

Apache Kafka® を生んだ開発者チームによって設立された Confluent は、非常に幅広い Kafka チュートリアル、トレーニング、サービス、サポートを提供します。また、Confluent はあらゆるクラウド環境向けに構築された完全マネージド型のクラウドネイティブなデータストリーミングサービスを提供しており、最新のデータインフラストラクチャのニーズに対応するスケーラビリティと信頼性が確保されます。

Kafka を選ぶ理由

Kafka には無数の利点があります。今日、Kafka はほぼあらゆる業界のフォーチュン100企業の80%以上において、大小さまざまなユースケースで使用されており、最新世代のスケーラブルなリアルタイムデータストリーミングアプリケーションの構築を検討している開発者やアーキテクトが使用するデファクトテクノロジーとなっています。市場には、こうした目的を達成できるさまざまなテクノロジーがありますが、主に以下の理由から Kafka は非常に高い人気を集めています。

高スループット

Kafka は高速かつ大量のデータに対応し、1 秒あたり数百万件のメッセージを処理できます。そのため、複数のサーバー間でのリアルタイムのデータ処理と統合を必要とするアプリケーションに最適です。

高いスケーラビリティ

Kafka Cluster は最大1,000点の Broker まで拡張でき、1 日あたり数兆件のメッセージと数ペタバイトのデータを処理できます。Kafka のパーティション分割ログモデルでは、ストレージと処理能力の柔軟な拡張と縮小が可能です。このスケーラビリティにより、Kafka は膨大な数のデータソースとストリームをサポートできます。

低レイテンシ

Kafka は、2 ミリ秒という低レイテンシでマシンのクラスターを使用して大量のメッセージを配信できます。この低レイテンシは、リアルタイムのデータ処理とデータストリームへの即時応答を必要とするアプリケーションにとって非常に重要です。

永久保存

Kafka は、分散型で耐久性があり、フォールトトレラントなクラスターにデータストリームを安全かつ確実に保存します。これにより、データレコードが確実に保存され、サーバー障害が発生した場合でもアクセスできるようになります。パーティション化されたログモデルにより、Kafka のデータストリーム管理能力がさらに強化され、1回限りの処理が保証されます。

高可用性

Kafka は、クラスターを可用性ゾーン間で効率的に拡張したり、地理的リージョン間でクラスターを接続したりできます。この高可用性により、Kafka はフォールトトレラントとなり、データ損失のリスクがなくなります。Kafka の設計により、複数のサブスクライバーと外部ストリーム処理システムをシームレスに管理できます。

Apache Kafka はどのように機能しますか?

Apache Kafka はストレージ層とコンピューティング層で構成されており、効率的なリアルタイムのデータ取り込み、ストリーミングデータパイプライン、分散システム全体にわたるストレージを可能にします。その設計により、Kafka と外部システム間のデータストリーミングが簡素化されるため、リアルタイムのデータを簡単に管理し、あらゆるタイプのインフラストラクチャ内で拡張できます。

大規模なリアルタイム処理

データストリーミングプラットフォームには、データの生成と同時にそのデータを処理し、分析できる機能が欠かせません。Kafka Streams API は、強力かつ軽量なライブラリで、集計、ウィンドウパラメータの作成、ストリーム内のデータ結合などの同時処理が可能です。これは Kafka 上に Java アプリケーションとして構築されているため、追加のクラスターを管理する必要なくワークフローを継続できます。

耐久性のある永続ストレージ

Kafka は、分散データベースに一般的な分散コミットログを抽象化することで、耐久性のあるストレージを提供します。これにより、Kafka は「信頼できる唯一の情報源」として機能し、複数のノードにデータを分散することで、単一のデータセンターや複数の可用性ゾーンにまたがる高可用性のデプロイメントを実現します。この耐久性と永続性に優れたストレージにより、サーバー障害が発生した場合でもデータの整合性と信頼性が確保されます。

パブリッシュ + サブスクライブ

Kafka は、シンプルで不変のコミットログを備えています。ユーザーがサブスクライブすることで、任意の数のシステムやリアルタイムアプリケーションにデータを公開できます。従来のメッセージングキューとは異なり、Apache Kafka® は拡張性が高く、フォールトトレラントな分散システムです。これにより、Kafka は個々のアプリケーションから全社的な展開まで拡張できるようになります。例えば Kafka は、Uber での乗客とドライバーのマッチング管理、British Gas のスマートホーム向けリアルタイム分析と予測メンテナンス、LinkedIn 全体の多数のリアルタイムサービスの実行などに使用されています。

Kafka の使われ方

リアルタイムストリーミングデータパイプラインやリアルタイムストリーミングアプリケーションの構築によく使用される Kafka は、さまざまなユースケースをサポートします。データに依存している、またはデータを扱う企業は、Kafka を利用することで多くのメリットを得られます。

データパイプライン

Apache Kafka のコンテキストにおいて、ストリーミングデータパイプラインとは、データが作成され次第ソースから Kafka にデータを取り込み、そのデータを Kafka から1つ以上のターゲットにストリーミングすることを意味します。これにより、さまざまなシステム間でシームレスなデータ統合と効率的なデータフローが可能になります。

ストリーム処理

ストリーム処理には、フィルター、結合、マップ、集計、その他の変換などの操作が含まれており、企業はこれらを活用して多くのユースケースを強化します。Apache Kafka のために構築されたストリーム処理ライブラリ Kafka Streams を使用すると、企業はデータをリアルタイムで処理でき、即時のデータ処理と分析を必要とするアプリケーションに最適です。

ストリーミング分析

Kafka は高スループットのイベント配信を提供し、Druid などのオープンソーステクノロジーと組み合わせると、強力なストリーミング分析マネージャー (SAM) を形成できます。Druid は Kafka からのストリーミングデータを消費して分析クエリを有効にします。イベントは最初に Kafka にロードされ、Broker でバッファリングされ、その後 Druid リアルタイムワーカーによって消費されます。これにより、リアルタイムの分析と意思決定が可能になります。

ストリーミング ETL

Kafka を使用したリアルタイム ETL は、他のデータベース、アプリケーション、API との間でデータの消費と生成を行うために使用される Kafka Connect ソースコネクターとシンクコネクター、オプションの Kafka Connect 機能である Single Message Transforms (SMT)、大規模なリアルタイムの継続的なデータ処理を実現する Kafka Streams など、さまざまなコンポーネントと機能を組み合わせています。これらにより、効率的なデータ変換と統合が可能になります。

イベントドリブン型マイクロサービス

Apache Kafka は、スケーラビリティ、効率性、速度など、マイクロサービスが達成を目指す属性を実現しながらそのオーケストレーションに関連する多くの問題を解決するため、マイクロサービス向けに最も人気のあるツールです。Kafka はサービス間の通信も容易にし、超低レイテンシとフォールトトレランスを維持します。これは、堅牢でスケーラブルなマイクロサービスアーキテクチャの構築に不可欠です。

Apache Kafka の機能を使用することで、組織は効率の高いデータパイプラインを構築し、データストリームをリアルタイムで処理し、高度な分析を実行し、スケーラブルなマイクロサービスを開発でき、最新のデータドリブン型アプリケーションの需要を満たすことができます。

Apache Kafka の実際の動作

Kafka のユーザー層

世界有数のブランドが Kafka を使用しています。

Airbnb logo
Netflix
Goldman Sachs
Linkedin
Microsoft
New York Times
Intuit

Kafka の価値を最大化するには Confluent が不可欠

Kafka を生んだ開発者チームによって創設された Confluent は最も完成度の高い Kafka ディストリビューションを提供しています。コミュニティ版/商用版機能を追加することで Kafka をさらに改善し、プロダクション環境において運用者と開発者のストリーミング体験を大規模に向上させることが可能となります。

人気の Apache Kafka® を管理負担なしに活用。クラウドネイティブで完璧な Confluent の完全マネージド型サービスなら、Kafka の枠を超えて活用の幅が広がり、自社の有能な人材が事業価値の実現に集中できるようになります。

クラウド版 Kafka

クラウドネイティブ

インフラストラクチャの管理と運用の負担なしに、あらゆる規模でクラス最高のクラウドエクスペリエンスを提供するために Kafka を再設計しました。Confluent は、Kafka の唯一の真のクラウドネイティブエクスペリエンスを提供し、開発者が期待するサーバーレス、弾力性、コスト効率、可用性に優れたセルフサービスエクスペリエンスを実現します。

完全版の Kafka

すべての機能を完備

リアルタイムアプリケーションの作成と保守には、オープンソースソフトウェアとスケーラブルなクラウドインフラへのアクセス以上のものが必要です。Confluent は Kafka をエンタープライズ対応にし、アプリケーションを迅速、確実、安全に構築するために必要なツール一式をお客様に提供します。当社の完全マネージド型の機能は、概念実証 (POC) から本番環境まで、あらゆるユースケースに対応します。

あらゆる環境に対応する Kafka

あらゆる環境に対応

分散型の複雑なデータアーキテクチャは、これまで考えられなかったユースケースを可能にする規模、信頼性、パフォーマンスを提供できますが、実行は非常に複雑です。Confluent の完全なマルチクラウドデータストリーミングプラットフォームを使用すると、Connect を使用して Kafka にデータを入出力したり、Confluent Schema Registry を使用してデータの構造を管理したり、ksqlDB を使用してデータをリアルタイムで処理したりすることが簡単になります。Confluent は、お客様がどこにいても対応し、リージョン、クラウド、オンプレミス環境全体のリアルタイムデータを強化・統合します。

わずか数分で利用を開始

Confluent は、過去のデータとリアルタイムのデータを信頼できる情報源へと一元化することで、まったく新たなカテゴリーの最新イベントドリブン型アプリケーションの構築、ユニバーサルなデータパイプラインの獲得、強力なユースケースの実現を、完全なスケーラビリティ、セキュリティとパフォーマンスで可能にします。

最初の4か月間に利用できる$400の無料クレジットを使って、Confluent を無料でお試しください。

Apache Kafkaは、開発者とアーキテクトの双方に最も人気のデータストリーミングシステムです。Producer、Consumer、Streams、Connect の4つの API が揃った強力な Event Streaming Platform を提供します。

一般に、開発者の Kafka 活用は単一のユースケースから始まります。例としては、現在のワークロードに対応できないレガシーデータベースを保護するメッセージバッファとしての Apache Kafka の使用のほか、Kafka Connect API でこうしたデータベースと付随する検索インデックスエンジンとの同期を保ち、Streams API でデータを到着時に処理し、アプリケーションに直接集計を表示する例などが挙げられます。

言い換えれば、Apache Kafka であらゆるインフラストラクチャに対応する強力なイベントドリブン型のプログラミングが可能となり、データドリブン型のアプリ構築や複雑なバックエンドシステムの管理がシンプルになります。Kafka の導入で、データが常にフォールトトレラントで再生可能、リアルタイムであるという安心が得られ、データの処理や保管に加え、リアルタイムのデータにアプリとシステムを接続する単一の Event Streaming Platform を通じて迅速な構築が実現します。