2011-12-14 3 views
0

私は何百万ものエンドポイントから(ここでは楽観的に)来るであろう少量のセンサーデータのための信頼できる(そしてスピーディーな)ストレージのオプションを探しています。 私が話しているスケールは1Mエンドポイントで、毎分100バイトを送信します。このデータは、この後すぐに分析に使用する必要があります。 さらに、このデータは数年間保持され、合計ストレージが100TBを超えている可能性があります。Amazon S3は何百万ものエンドポイントからセンサーデータストリーミングのストレージとして機能しますか?

S3はこれに対する解決策ですか、それともCassandra/MongoDBなどの独自のNoSQLクラスタをホストする方が良いでしょうか?

私が情報を指定していない場合は教えてください。

答えて

3

はい、可能です。しかし、S3の1つの要求で複数のオブジェクトを読み取るクエリメカニズムや方法はありません。また、書かれる前にデータを検査する仕組みはありません。

これは良いアイデアかもしれません:

  • は、クライアントが
  • アプリケーションがキューからメッセージを読み取り、SimpleDBのか、他のデータストアにデータを書き込むSQSキューにセンサデータの書き込みがあります

データのロード/ストアフェーズで、データの受信を解除します。

多くのAmazonサービスでは、リクエストごとに料金が発生します。 SQSの場合、$ 0.01/10000リクエストです。 100万人のクライアントに1分ごとに1件のメッセージを書き込ませたい場合は、1か月に4万ドル以上の請求料がかかります。メッセージを読むことを考慮すると倍増する。

(((1000000 * (60*24*30))/10000) * $0.01) * 2 = $86,400 

S3の場合、POST(クライアントの書き込み)は$ 0.01/1000、GETは$ 0.01/10000(読み取り)です。 100万人のクライアントの場合、リクエストごとの料金だけで1か月に500,000ドルに簡単に達することができます。

究極的には、100万のクライアントでは、単に経済的要因のために独自の受信エンドポイントを実行する必要があります。

+0

経済についての大きなポイント。 OPが求めていることは確かに実現可能ですが、最適なコストを得ることは、経験としか遭遇しない別の手段です。 – Iterator

+0

洞察に感謝します。私がちょうど書き込みコスト(受信データフリー)がないec2ベースのインフラストラクチャでデータを収集していたとすれば、このコストは非常に急峻に見えます。しかし、S3は、単一のユーザーのデータを収集するデータブロブに追加する方法をサポートしていますか?または、受信したデータサンプルごとに1つのファイルを作成する必要がありますか?それは制御から吹き飛ぶだろう..コメント? – user393144

+0

@ user393144 S3は単純なブロブストレージです。既存のファイルに「追加」する方法はありません。あなたのデータが構造化されていれば、データベースに保存するほうがはるかに良いでしょう。従来のリレーショナル・データベースまたは非SQL(例えば、SimpleDB)である。 –

関連する問題