Apache Kafkaのユースケース:多様な業種・業務でイノベーションを推進

仮想現実ヘッドセットを装着した若い男性

著者

Mesh Flinders

Staff Writer

IBM Think

Apache Kafkaオープンソースの分散ストリーミング・プラットフォームで、開発者がリアルタイムでイベント駆動型のアプリケーションを構築できるようにします。Apache Kafkaを使用することで、開発者はストリーミング・データ・レコードを継続的に使用し、ユーザーにリアルタイムのエクスペリエンスを提供するアプリケーションを構築できます。

アカウント残高の確認や、Netflixのストリーミング、LinkedInの閲覧など、今日のユーザーはアプリからのほぼリアルタイムのエクスペリエンスを期待しています。Apache Kafkaのイベント駆動型アーキテクチャーは、データをリアルタイムで保管しイベントをブロードキャストするよう設計されており、メッセージ・ブローカーであると同時にストレージでもあり、多様なアプリケーションでリアルタイムのユーザー体験を可能にします。

Apache Kafkaは最も人気のあるオープンソースデータ処理システムの一つで、約5万社が利用し、市場の共有は26.7%に達しています。

ニュースレターを表示しているスマホの画面

The DX Leaders

「The DX Leaders」は日本語でお届けするニュースレターです。AI活用のグローバル・トレンドや日本の市場動向を踏まえたDX、生成AIの最新情報を毎月お届けします。

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

Kafkaは分散システムであり、複数のノード(コンピューター)間で計算リソースを共有するさまざまなソフトウェア・プログラムのコレクションであり、単一の目標を達成します。このアーキテクチャーにより、Kafkaは、システム内の単一ノードまたはマシンの損失に対処して機能し続けることができるため、他のシステムよりも耐障害性が高くなります。

分散システムの中でもApacheは、マイクロサービス・アーキテクチャーを構築するための最良のツールの1つとして際立っています。マイクロサービス・アーキテクチャーとは、1つのアプリケーションが多数の小さな、接続されたコンポーネントやサービスで構成されるクラウドネイティブなアプローチです。クラウドネイティブ環境に加え、開発者はオープンソースの コンテナ・オーケストレーション・プラットフォームである Kubernetes上でApache Kafkaを使用し、サーバーレス・フレームワークを使用したアプリを開発しています。

開発者にとって、Apacheの魅力の大きな部分は、その独自のアーキテクチャーです。Apacheは、パブリッシュ/購読するメッセージングシステム、つまり非同期通信と呼ばれるシステムを使用しており、開発者が高度でアーキテクチャーが複雑なアプリケーションを簡単に構築できるようにします。Apacheのアーキテクチャーはイベント、生産者、利用者の3つのカテゴリーで構成されており、動作のためにアプリケーション・プログラミング・インターフェース(API)に大きく依存しています。

Kafkaの重要なコンセプト

Apache Kafkaは、イベント、ストリーミング、プロデューサー、利用者という4つの基本概念に基づいて動作します。ここでは、これらの各モデルがどのように連携してApache Kafkaにコア機能を実現するかについて簡単に説明します。

イベントとストリーミング

サービスへの登録や注文など、ユーザーがウェブサイトを操作する場合、それは「イベント」と呼ばれます。Apacheアーキテクチャーでは、イベントとは、ユーザーが行ったことを説明する情報を含むあらゆるメッセージです。例えば、ユーザーがウェブサイトに登録した場合、イベントレコードにはそのユーザーの名前とEメールが含まれます。

おそらく、Apache Kafkaを他のデータ・ストレージ・アーキテクチャーと区別する機能は、イベント・ストリーミングの能力以外にないだろう。この機能は、「イベント・ストリーミング」または単に「ストリーミング」(特にApache Kafkaの場合はKafkaストリーム)として知られています。イベント・ストリーミングとは、数百、さらには数千のプロデューサーによって生成されたデータがプラットフォームを通じて利用者に同時に送信されることです。

生産者と利用者

Apache Kafkaアーキテクチャーにおける「プロデューサー」とは、データを作成できるあらゆるものを指します。例えば、Webサーバー、アプリケーション、アプリケーションコンポーネント、IoT(モノのインターネット)、デバイス、その他多数あります。「利用者」とは、機能するためにプロデューサーが作成したデータを必要とするコンポーネントのことです。例えば、IoTアプリの場合、温度計や信号の変化を検知する自動運転車のセンサーなど、インターネットに接続されたセンサーからの情報がデータになる可能性があります。

Kafkaのアーキテクチャーは、プロデューサーによって生成されたイベント・データの絶え間ない流入を処理し、各イベントの正確な記録を保持し、これらの記録のストリームを常に利用者に公開できるように設計されています。

IBM®  Kafka

Kafkaとは

オープンソースの分散型ストリーミング・プラットフォームであるApache Kafkaで、開発者がEvent Streamsを使った高性能なアプリケーションを作成できるようになる仕組みを、IBM CloudのWhitney Leeが解説します。

Apache Kafkaのユースケース

Apache Kafkaの中核となるリアルタイム・データ処理機能により、多くの業種・業務にわたってアプリの機能が向上しました。Kafkaを使用して、企業はストリーミング・データを活用して収益を増やし、デジタル・トランスフォーメーションを推進し、顧客に楽しいエクスペリエンスをもたらす新しい方法をはこちらしています。ここでは、最も印象的な例をいくつかご紹介します。

モノのインターネット(IoT)

センサーが組み込まれ、インターネット経由でデータを収集、共有できるデバイスのネットワークであるモノのインターネット(IoT)は、Apache Kafkaアーキテクチャーに大きく依存しています。例えば、風車に接続されたセンサーは、IoT(モノのインターネット)機能を使用して、風速、温度、湿度などのデータをインターネット経由で送信します。このアーキテクチャーでは、各センサーはプロデューサーであり、毎秒データを生成し、処理のためにバックエンド・サーバーまたはデータベース(利用者)に送信します。

Kafkaアーキテクチャーは、このデータのやり取りと受信、およびその処理をリアルタイムで容易にし、科学者やエンジニアが数百マイルまたは数千マイル離れた気象状況を追跡できるようにします。Apacheの記録管理機能とメッセージキュー機能により、収集されるデータの品質と正確性が保証されます。

金融サービス

Apacheは、利用者にリアルタイムでストリーミングできるIoTデバイスを介したデータ収集を可能にするのと同じように、株式市場からの情報の収集と分析も可能にします。

Apacheは、株式の取引や金融市場の監視に不可欠な、多くのビジネス・クリティカルな大容量ワークロードに使用されてきました。PayPal、Iing、JP Morgan Chaseなどの世界有数の銀行や金融機関では、リアルタイムのデータ分析、金融詐欺の不正アクセス検知、銀行オペレーションにおけるリスク管理、規制コンプライアンス、市場分析などに利用されています。

小売業

オンライン小売業者やeコマース・サイトは、アプリやWebサイトからの注文を毎日処理する必要があり、Kafkaは多くの企業でこれを実現する上で中心的な役割を果たしています。レスポンスタイムと顧客関係管理(CRM)は、小売業界における成功の鍵であるため、注文を迅速かつ正確に処理することが重要です。

Kafkaは、データ・パイプラインを使用してイベントを正確に記録し、注文とキャンセルの記録を保持して、すべての関係者にリアルタイムで警告することで、顧客と企業間のコミュニケーションを簡素化するのに役立ちます。Kafkaは、注文の処理に加えて、業績を評価し、貴重な洞察を明らかにするために分析できる正確なデータを生成します。

医療

ヘルスケア業界は、病院をクリティカルな電子ヘルス記録(EHR)や機密の患者情報につなげるためにKafkaを利用しています。Kafkaは、複数の異なるソースによってリアルタイムで生成されるデータに依存するヘルスケア・アプリを強化する双方向通信を促進します。Kafkaの機能を使用すると、リアルタイムで知識を共有することもできます。例えば命を救うことができる特定の薬に対する患者のアレルギーなどです。

Kafkaは、医師が患者をどのように治療したかに役立つリアルタイム・データを取得できるようになるだけでなく、医療研究コミュニティーにとってもクリティカルです。そのデータ・ストレージと分析機能は、研究者が医療データを精査して病気や患者ケアについての洞察を得るのに役立ち、医療のブレークスルーを加速します。

通信

電気通信会社はさまざまなサービスでApacheを使用しています。リアルタイムのデータ・ストリーム処理は、主に、世界中の何百万ものワイヤレス・デバイスを支えるネットワークの監視に使用されています。Apacheはネットワーク・オペレーションに関するデータを収集し、サーバーにリアルタイムでストリーミングし、そのデータを常に分析して問題の有無を確認します。Apacheが通信会社のために保持する記録には、通話、テキスト、顧客データ、使用状況、ドロップ・コールなどがあります。

ゲーム

今日の最先端のゲームプラットフォームは、数百マイル、さらには数千マイル離れたプレイヤー間のリアルタイム通信に依存しています。プレイヤーの反応時間が成功の鍵を握るゲームにおいて遅延が発生すると、性能が低下します。さらに、業種・業務は後半の急成長を遂げており、年平均成長率(CAGR)13.4%で成長し、メトリクス監視を強化しています。

Apacheは、人気の高い超リアルなゲームエコシステムを非常に人気のあるものにしているプレイヤー間の超高速通信と相互作用を強化します。新しいゲームは、Apacheのリアルタイム・ストリーミング機能、リアルタイム分析およびデータ・ストレージ機能に依存しています。さらに、Apacheのストリーミング・パイプラインは、プレイヤーの動きが他のプレイヤーに即座に送信されることを保証することで、プレイヤーが相互にリアルタイムで追跡するのに役立ちます。

Apache Kafkaのメリット

世界最大規模の最新企業に選ばれる開発者やエンジニアは、Apacheを使用して多くのリアルタイム・ビジネス・アプリケーションを構築しています。Apache Kafkaは、金融業界、オンライン・ショッピング大手、音楽およびビデオ・ストリーミング、ビデオ・ゲームのイノベーターなどにサービスを提供するアプリの背後にKafkaがあります。Kafkaでの開発には、他のプラットフォームに比べて多くのメリットがあります。ここでは、最も人気のあるメリットをいくつか紹介します。

スピード

Kafkaのデータ処理システムは、独自のAPIを活用し、データ統合を最適化し、ビッグデータ分析に用いられる人気のSQLやNoSQLアーキテクチャーなど、多くの他のデータベースストレージ設計へのデータ統合を最適化しています。

拡張性

Kafkaは、世界で最も処理量の多いウェブサイトのいくつかにおけるバッチ・キュー処理における高レイテンシーの問題を解決するために構築されました。Kafkaは1つだけではなく複数のKafkaクラスターにわたってプロビジョニングできるため、柔軟なマルチクラスター・スケーラビリティーを備えており、より高い拡張性、高スループット、低レイテンシーを実現します。

接続性

データ・ストリーミング・ツールであるApache Connectには、AWSのAmazon S3、MongoDB、Google BigQuery、ElasticSearch、Azure、DataDogなど、最も一般的なバックエンド・データ・ストレージ・ソリューションとの統合を可能にする120のコネクターがあらかじめ用意されています。Apacheを使用する開発者は、組織のあらゆる要件をサポートしつつ、アプリの開発をスピードアップできます。

ストレージと追跡

世界最大規模で最も要求の厳しいウェブサイトの一部はApacheを使用しているため、中断を避けるためにはユーザーのアクティビティーを迅速かつ正確に記録できる必要があります。Apacheは、ユーザー登録、ページビュー、購入、およびWebサイトのアクティビティー追跡に関連するその他の情報など、頻繁に発生するイベントをリアルタイムで記録します。次に、データをトピックごとにグループ化し、分散ネットワーク上に保管して、高速で簡単にアクセスできるようにします。

メッセージング

Apacheはメッセージを受信し、キューというコンテナに保持します。このキューは、メッセージの保存と送信に使用されるコンテナです。コンテナはメッセージを利用者アプリとユーザーに接続します。Apacheは、RabbitMQのような他の一般的なメッセージ・ブローカーと同様の方法で設計されているが、Rabbitや他のブローカーとは異なり、関連性によってメッセージをフィルタリングするために使用できるメッセージキーを使用して、メッセージをKafkaトピックに分割します。

データ処理

Apacheの最も魅力的な特性の1つは、イベント・データをリアルタイムでキャプチャーして保管できることです。他の一般的なリアルタイム・データ・パイプラインは、スケジュールされたバッチと呼ばれるもの、つまり事前にスケジュールされた時間でのみ処理できるデータのバッチで実行する必要があります。Apacheの設計により、データはリアルタイムで処理できるようになり、IoT(モノのインターネット)、分析など、リアルタイムのデータ処理に依存するテクノロジーが機能します。

詳細はこちら

Apache Kafkaは、データを保管し、イベントをリアルタイムでブロードキャストして、さまざまなアプリケーションで動的なユーザー体験を提供するために構築されています。IBM® Event Streamsは、企業がKafkaを最適化するのに役立ちます。このオープンソースのプラットフォームは、完全マネージド・サービスとしてIBM® Cloud上で、またはEvent Automationの一部としてオンプレミスにデプロイできます。

ベンチに座っている男性の上方からの画像

見逃せない知見AIニュースレターを購読する

AI、量子コンピューティング、クラウド、セキュリティーなどに関する専門ニュースをチェックして、知識を自分のものにしましょう。

今すぐ購読する
関連ソリューション
IBM Event Streams

IBM® Event Streamsは、オープンソースのApache Kafka上に構築されたイベント・ストリーミング・ソフトウェアです。IBM Cloud上でフルマネジド・サービスとして利用するか、セルフ・ホスティングに利用できます。

Event Streamsの詳細はこちら
インテグレーション・ソフトウェアとソリューション

IBMの統合ソリューションでビジネスの可能性を解き放ち、アプリケーションとシステムを接続してクリティカルなデータに迅速かつ安全にアクセスできます。

統合ソリューションの詳細はこちら
クラウド・コンサルティング・サービス

IBM Cloudコンサルティング・サービスで新しい機能を解き放ち、ビジネスの俊敏性を高めましょう。

クラウド・コンサルティング・サービスの詳細はこちら
次のステップ

IBM® Event Streamsは、オープンソースのApache Kafka上に構築されたイベント・ストリーミング・ソフトウェアです。IBM Cloud上でフルマネジド・サービスとして利用するか、セルフ・ホスティングに利用できます。

Event Streamsの詳細はこちら 詳細を取得する