いま注目のリアルタイムデータ処理サービス、Kinesis、Storm、GUST
SUMMARY
- Amazon Kinesis(キネシス)は、リアルタイム処理をバッファリングでサポートするクラウドサービス
- Apache Storm(ストーム)は、オープンソースのリアルタイム分散処理フレームワーク
- かもめのGUST(ガスト)は、プログラミングレスで設定可能なリアルタイム処理アプリケーション
ビッグデータ、なかでもセンサーデータの活用においてリアルタイムデータ処理が注目されています。リアルタイムデータ処理とは、すべてのデータをストレージにストックしていた従来の手法に代わり、データをリアルタイムに処理して不要なデータをフローしていく基盤です。
現在よく利用されているリアルタイムデータ処理サービスはKinesis(クラウドサービス)、Storm(フレームワーク)、GUST(アプリケーション)は、それぞれ適用範囲が異なります。それぞれのサービスの特徴をご紹介します。
リアルタイム処理をバッファリングでサポートするクラウドサービス、Kinesis
AWS(Amazon Web Service)が提供するAmazon Kinesis は、大規模データのリアルタイム処理をサポートするフルマネージ型のクラウドベースのサービスです。
最大の特徴はデータをバッファリングしておくことで、バッファによって一時的なトラフィックの増加に対応します。
ただしKinesisにはデータ処理機能はなく、バッチ処理の先頭にバッファリングサービスとしてKinesisを適用するといったような使い方になります。この場合、別途、プログラミングの必要があります。
そのほか、Kinesisの特長としては次のような点が挙げられます。
―AWSのフルマネージド型サービス
―同じストリームを複数のアプリから利用可能
―データの保存期間は24時間
―データの順番が保証されている
―データ送信・受信用のアプリ開発SDKがある
―「シャード」数が自在に選択できる
なお、「シャード」とは、Kinesis ストリームの基本的な単位であり、1 シャードで秒間1 MBのデータ入力と 秒間2 MBのデータ出力の能力があります。AWSでは、シャードに応じて課金が行われる仕組みです。
オープンソースのリアルタイム分散処理フレームワーク、Storm
ASF(The Apache Software Foundation)が提供するApache Storm は、Hadoop を活用し、リアルタイムで効率的なクラスタ処理を可能にするオープンソースのリアルタイム分散処理フレームワークです。
Storm は、入力処理から解析、出力処理まで、自由なプログラミング言語で開発することができます。ただしエンジンではなく、あくまでもフレームワークであるところがポイントです。
そのほか、Storm の特長としては次のような点が挙げられます。
1.分散処理フレームワーク
2.拡張性がある
3.データ欠損があった場合もリトライできる
4.耐障害性に強い
プログラミング不要で設定可能なリアルタイム処理アプリケーション、GUST
かもめエンジニアリングが提供しているのが、GUST(ガスト)というリアルタイム処理アプリケーションです。
KinesisやStormと比べ、GUSTはアプリケーションである点が最大の特徴です。事前に複数のルールエンジンが備わっており、プログラミング不要でさまざまなデータを自動的に処理することを可能にします。
GUSTはバッチ処理のアドオンとして活用できるのはもちろん、KinesisやStormとの連携も実現します。
そのほか、GUSTの特長としては次のような点が挙げられます。
―多様なルールエンジンを標準搭載したアプリケーション
―オンプレミス・クラウドのどちらにも設置可能
―要求性能に応じた処理ユニットのスケールアウトが可能
―プログラミングレスで導入が可能
―カスタマイズによる処理ルール・I/Fの拡張が可能
―中継キューとして高速な分散KVSを内蔵
リアルタイム処理サービス徹底比較
Kinesis(クラウドサービス)、Storm(フレームワーク)、GUST(アプリケーション)は、それぞれ成り立ちが異なるため、力点が置かれているところが異なります。
それぞれのサービスの詳しい特徴は、次のような表をご確認ください。
実際のセミナーでは、モデルケースを使ってそれぞれの特徴を具体的にご紹介しています。
ストリームデータ処理ツール「GUST」についてもっと知りたい方は、こちらへ