はじめに - Amazon Kinesis を使用した AWS でのストリーミングデータソリューション

はじめに

データストリームを継続的に生成するデータソースの爆発的な増加により、今日の企業は膨大な規模と速度でデータを受信しています。アプリケーションサーバーからのログデータ、ウェブサイトやモバイルアプリケーションからのクリックストリームデータ、IoT (モノのインターネット) デバイスからのテレメトリデータなど、すべてのデータには、顧客、アプリケーション、製品が現在何をしているのかを知るのに役立つ情報が含まれています。

このデータをリアルタイムで処理および分析できることが、アプリケーションを継続的にモニターして高いサービスアップタイムを確保することや、プロモーション特典や製品レコメンデーションのパーソナライズを行うためには不可欠です。リアルタイムおよびほぼリアルタイムの処理により、ウェブサイト分析や機械学習などの他の一般的なユースケースでも、これらのアプリケーションでデータを数時間や数日ではなく数秒または数分で利用できるようになることで、より正確で実用的なものになります。

リアルタイムおよびほぼリアルタイムのアプリケーションシナリオ

ストリーミングデータサービスは、アプリケーションのモニタリング、不正検出、ライブリーダーボードのようなリアルタイムおよびほぼリアルタイムのアプリケーションに使用できます。リアルタイムのユースケースでは、取り込みから処理、ターゲットのデータストアや他のシステムへの結果の送信に至るまで、エンドツーエンドでミリ秒単位のレイテンシーが要求されます。例えば、Netflix は Amazon Kinesis Data Streams を使用してすべてのアプリケーション間のコミュニケーションをモニターすることで、問題をすぐに検出して修正し、アップタイムと利用可能性の高いサービスをお客様に提供しています。最も一般的に適用できるユースケースはアプリケーションパフォーマンスのモニタリングですが、アドテック、ゲーム、IoT の分野では、このカテゴリに分類されるリアルタイムアプリケーションの数が増えています。

一般的なほぼリアルタイムのユースケースには、データサイエンスおよび機械学習のためのデータストアでの分析が含まれます。ストリーミングデータソリューションを使用すると、データレイクにリアルタイムデータを継続的にロードできます。新しいデータが利用可能になり次第、機械学習モデルを更新して、出力の精度と信頼性を高めることができます。例えば、Zillow は Kinesis Data Streams を使用して、公開レコードデータやマルチリスティングサービス (MLS、multiple listing service) リスティングを収集し、住宅購入者と販売者に最新の住宅価格推定をほぼリアルタイムで提供します。ZipRecruiter では、ZipRecruiter 雇用市場から 1 日あたり 60 億のイベントを収集、保存し、継続的に処理するための重要なインフラストラクチャコンポーネントであるイベントのログ記録パイプラインに、Amazon MSK を使用しています。

バッチ処理とストリーム処理の違い

リアルタイムストリーミングデータの収集、準備、処理には、従来バッチ分析に使用していたツールとは異なるツールセットが必要です。従来の分析では、データを収集して定期的にデータベースにロードし、数時間、数日、または数週間後に分析していました。リアルタイムデータの分析には別のアプローチが必要です。ストリーム処理アプリケーションは、データが保存される前であっても、リアルタイムで継続的にデータを処理します。ストリーミングデータは猛烈なペースで流入し、データ量は増減する可能性が常にあります。ストリーミングデータ処理プラットフォームは、受信データの速度と変動性に対処でき、データを受信してすぐに処理できる必要があります。多くの場合、1 時間あたり数百万から数億のイベントが発生します。