BT

Ready for InfoQ 3.0? Try the new design and let us know what you think!

Amazon Kinesisでビッグデータをストリーム処理

| 作者: Roopesh Shenoy フォローする 0 人のフォロワー , 翻訳者 笹井 崇司 フォローする 0 人のフォロワー 投稿日 2013年12月1日. 推定読書時間: 3 分 |

原文(投稿日:2013/11/25)へのリンク

Amazonがさまざまなソースにある大規模データをストリーム処理できるサービス、Kinesisを発表した。現在、限定プレビューとして利用できる。

Kinesisとは何か? SQSとどう違うのか? BuckKniferson氏はこう説明する

KinesisはSQSキューとオートスケーリングのコンピュートインスタンスを新しいプロダクトにまとめたように見えます。Kinesisを使うことで、1秒間に何百万ものPOSTリクエストを受け付け、それらをストリームとしてリアルタイムに処理できます。ストリーム化されたデータを直接S3に送ったり、それを処理するためのアプリケーションやリレーショナルストレージなどへ送ることができます。すべてリアルタイムで。

SQSメッセージは256kbのテキストメッセージに限られます(一般的にはJSONですが、好きなものが使えます)。Kinesisストリームは1秒間にメガバイト単位で用意でき、私が知るかぎり、HTTP PUT経由のどんなデータも受け付けます。

さらに、SQSメッセージはゾーン依存で永続的ではありませんが、Kinesisストリームデータは複数のアベイラビリティゾーンで24時間、アプリから利用できます。SQSメッセージの場合、ゾーンが機能しなくなったり何らかの異常があると、それはなくなってしまいます。SQSにはKinesisのようなスケーラビリティとIOが備わっていないと思います。私はSQSの公開されているIOPS保証をこれまで目にしたことはありませんが、Kinesisはシャードあたり1秒間に1000のPUTリクエストを受け付けることができます。

Kinesisストリームを使って、アプリケーションはデータをキャプチャ、格納、伝送することができる。各ストリームは複数のリーダーとライターを持つことができる。ストリームの容量はシャードという単位で規定される。各シャードは1000書き込みトランザクション、1秒あたり1MBまで書き込める。ユーザはシャードを増減させることで、ダウンタイムなしにストリームの容量を変えることができる。

開発者はKinesisクライアントライブラリを使って、Kinesisを利用したアプリケーションを作ることができる。生産者側はPutRecord APIを使ってデータをプッシュする。消費者側はIRecordProcessorに対する実装を用意し、クライアントは新しいレコードが生成されるとそれを「プッシュ」する。GetShardIteratorGetNextRecordsといった低レベルのインターフェイスもある。消費者側のコードでは、処理したレコードをAWSストレージサービス(S3、RedShift、DynamoDB)の1つに格納したり、別のKinesisストリームに渡すことができる。

Kinesisでできるリアルタイム処理は、(Hadoopでできるような)バッチ処理とは異なっている。Kinesisの場合、データが到着するとそれは即座に処理される。AmazonはKinesisで実現可能なユースケースとして、ログの処理、ソーシャルメディアデータの処理、ファイナンシャルトランザクションのリアルタイム処理、オンライン機械学習を挙げている。こうした大規模なリアルタイムの複雑な処理を可能にするプロダクトとしては、ほかにStormがある。

 

 InfoQ事務局より追記(2013年12月4日)


Amazonさんから本記事につきまして以下ご指摘がございましたのでご紹介させていただきます

「ゾーン依存で永続的ではない」という引用がありますが、Amazon SQSは全てのメッセージを複数のサーバと複数のデータセンターに格納するため、単一のコンピュータまたはネットワークの障害により、SQSメッセージがアクセス不能になることはありません。

以下FAQページと併せてご確認ください

Q: どれほどの信頼性でデータは Amazon SQS に格納されていますか?
http://aws.amazon.com/jp/sqs/faqs/#How_reliably_is_my_data_stored_in_Amazon_SQS

Amazon SQS は、すべてのキューおよびメッセージ情報を高信頼性で高可用性のデータセンターの Amazon のネットワークに格納します。すべてのメッセージは、情勢性を保持した状態で複数のサーバーと複数のデータセンターに格納されています。つまり、単一のコンピュータまたはネットワークの障害により、SQS メッセージがアクセス不能になることはありません。
 

 

 

この記事に星をつける

おすすめ度
スタイル

こんにちは

コメントするには InfoQアカウントの登録 または が必要です。InfoQ に登録するとさまざまなことができます。

アカウント登録をしてInfoQをお楽しみください。

あなたの意見をお聞かせください。

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする
コミュニティコメント

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

HTML: a,b,br,blockquote,i,li,pre,u,ul,p

このスレッドのメッセージについてEmailでリプライする

ディスカッション
BT