エレファントなギークになるゾウ

~エレガントになりたいエレファント~

キャッシュサーバ用にAmazon ElastiCacheとDynamoDBを比較してみた結果

スポンサーリンク

・memcashed

・redis

・DynamoDB

が候補に挙がり、調べてみたので、備忘録としてまとめてみる。

以下の点に注意して、参考にしていただければ。

 ・2017年5月現在の情報を基に書いている

 ・駆け出しのエンジニアで知識が浅い

 ・業務理解も不十分

 

結論としては、

・今回のユースケースと料金体系

・性能

(・可用性)

(・データ型の拡張性)

の観点からRedisかな、となりました。

 

ユースケースとしては、セッション管理を行う。

・アクセスの度に、更新系の処理が行われる

・ストレージ容量は小さめで良い

ということが特徴的です。

 

料金の比較

 

今回のユースケースで見積もりをしてみたところ

DynamoDBはRedisの10倍以上、利用料金がかかる結果となりました。

 (具体的なトランザクション量、必要となるストレージ容量については伏せます。) 

これは、DynamoDBの料金体系がスループット容量課金によるためです。

書き込み容量と頻度が高いほど、利用料が高額になる仕組みです。

 

DynamoDBの簡易見積もりは、下記の公式ページで行いました。

Amazon Web Services Simple Monthly Calculator

 書き込み容量: Item Size (All attributes)

 書き込み頻度: Number of items written per second:

これらのパラメタを変えると、大きく利用料金が変化します。

 

性能

Amazon ElastiCacheは、WEB/APサーバと同一VPC(Virtual Private Cloud)内に立てられるのに対して、DynamoDBは、別のVPCとなります。

そのため、DynamoDBではDBアクセスの際に毎回インターネットアクセスが必要となってしまいます。インターネットのレイテンシが性能のボトルネックとなってしまうリスクが高まることが懸念されます。

 

以上、

料金体系と性能面のリスクからDynamoDBは候補から外れました。