AWS Storage and Database Architecture Best Practices @re:Invent 2013 13/Nov

 re:Invent S3 RDS EC2 DynamoDB ElastiCache
2013.11.15

AWSエンタープライズ・ソリューションアーキテクト Siva Raghupathyさんの
セッション「AWS Storage and Database Architecture Best Practices @re:Invent 2013」が
AWSのデータストアサービスを選定・利用する際の大きなヒントになるので
スライドの写真とその日本語訳、補足を少々。

 

(全スライドは公式のこちらをご参照ください。ちなみにAWSの全スライドはこちら

 

--

AWSデータストアサービスの特徴

彼はまず、AWSのマネージドデータストアサービスには
非構造化データであるバイナリの格納先となる S3やClaciarも含めて、
・複雑なクエリに対応するもの/シンプルなクエリに対応するもの
・構造化されたデータ向け/非構造化データ向け
があるといいます。
 

「君のデータ、"温度" はどのくらい?」

彼が顧客によく聞く質問だそうです。
以下のように、データ特性を温度という尺度に置き換えてみると

 
HOTCOOL
リクエスト頻度
高い
低い
GBあたりの費用
低い
高い
平均レイテンシ
ミリ秒
数時間
データサイズ
小さい
大きい


それぞれのデータに向いているAWSのサービスがわかります。


 
 

もっとも優れたシステムデザインは、最小のコストになる

温度の延長で、話題は価格に移ります。
扱うデータとそのデータストアの適正が一致するほどコストが下がるとのこと。

デモでは、とある問題の解決には当初S3が最適だと思っていたにもかかわらず、
simple monthly calculatorで計算してみたらDynamoDBを使う方が
10%も価格が下がったという例を挙げていました。
温度の話でいえば、実際は想定より熱いデータだった(ひとつひとつのデータが小さかった)ため
左側に位置しているDynamoDBのほうがより適切で、かつコストも低くなったようです。

より適切なサービスを使えばよりコストが下がる思想でコストもデザインしているので、
simple monthly calculatorを使えばシステムデザインできますよ、だそうです。


さて、写真つきで各データストアの適正とベストプラクティスを見て行きましょう。
 

RDS

いつ使うべきか

いつ使うべきでないか

ベストプラクティス

 

DynamoDB

いつ使うべきか

いつ使うべきでないか

ベストプラクティス

 

ElastiCache (Memcached)

いつ使うべきか

いつ使うべきでないか

ベストプラクティス

 

ElastiCache (Redis)

いつ使うべきか

いつ使うべきでないか

ベストプラクティス

 

CloudSearch

いつ使うべきか

いつ使うべきでないか

ベストプラクティス

 

Redshift

いつ使うべきか

いつ使うべきでないか

ベストプラクティス

 

Elastic Map Reduce

いつ使うべきか

いつ使うべきでないか

ベストプラクティス

 

S3

いつ使うべきか

いつ使うべきでないか

ベストプラクティス

 

Data Pipeline

いつ使うべきか

いつ使うべきでないか

ベストプラクティス

 

Glacier

ベストプラクティス

 

EC2

いつ使うべきか

いつ使うべきでないか

 

EBS

ベストプラクティス

 

以上

 

 

訳してみて

いざちゃんと訳そうすると、随分使った(と思っていた)サービスでも新たな発見がありました。
ここで言うのもなんですが、Sivaさんありがとうございました!

 

※日本語訳というか、そもそも技術的な解釈間違えてるよ、みたいなフィードバックがもしあれば
nakamaru at supinf.co.jp までお願いします。(レスつけられないブログですいません)