前回はビッグデータ基盤にリアルタイム性が備わるメリットを解説した。そんなリアルタイム性を備えた基盤を比較的容易に構築できるAWSのサービスが「Amazon Kinesis」である。今回はKinesisの仕組みをみていく。

 Kinesisは、次々と発生するデータ(ストリーミングデータ)を収集し、24時間まで貯蔵しておくサーバーの機能を提供するマネージド型サービスである。収集可能な一つひとつのデータのサイズは最大50Kバイト。小売店のPOSデータや工場などで使われるセンサーのログ、Webサイトのアクセスログなどの収集に向く。

 Kinesisの活用方法が分かりやすいように、小売チェーンがPOS端末のデータを集約し、加工するためのシステムの構成例を示そう。Kinesisは各店舗のPOS端末から次々と送られてくるデータをリアルタイムに近い頻度で収集し、24時間貯蔵する(図1)。ユーザー企業はKinesisの後段にアプリケーションサーバーを設置し、24時間以内の任意のタイミングでKinesisからデータを取得。DBやストレージに送り込んで永続化する。

図1●Amazon Kinesisの仕組み
図1●Amazon Kinesisの仕組み
データをリアルタイムで取得し、一時貯蔵する。「シャード」と呼ばれる帯域を拡張することで、大量データを処理できる
[画像のクリックで拡大表示]

 Kinesisの最大の特徴は、収集するデータ量に応じて柔軟に拡張できることだ。「シャード」と呼ばれる帯域を基本単位とし、1シャード当たり毎秒1Mバイト、最大1000件のデータを受け付ける。1000件を上回るデータを取得したいときは、シャードの数を増やせばよい。毎秒2500件のデータを集める際には、3シャード分を利用するといった具合である。データ量の増減に応じてシャードの数を自動的に拡縮させることもできる。

 規模に応じて柔軟にスケールするため、処理するデータ量の大小にかかわらず、システムの構成は基本的に同じだ。Kinesisの登場以前であれば、ユーザー企業は自前でKinesisと同様のデータ収集用サーバーを用意し、運用しなくてはいけなかった。データ処理量が増えてサーバーの性能が不足すると再構築を迫られたり、それを防ぐために当初から高性能なサーバーを購入せざるを得なかったりした。