AWSのDynamoDBの基本的な質問です。試しに、最小の設定でテーブルを作ってみる為に

プロビジョニングされたキャパシティの読み込み容量ユニットに1(テーブル)を設定しました。
(書き込みにも1を設定してみました。これでなんと 一か月 0.67$ )
説明書によると、1秒間あたりの読み込み回数が 読み込み容量ユニットであるとの説明があるのですが
Lambdaから getItemをfor文で60回呼び出してみたのですが どう考えても1秒間に1回以上 呼び出せてしまっています。どういうことでしょう (?_?)

回答の条件
  • 1人1回まで
  • 13歳以上
  • 登録:2016/02/15 22:07:11
  • 終了:2016/02/22 22:10:03

回答(2件)

id:a-kuma3 No.1

a-kuma3回答回数4324ベストアンサー獲得回数17732016/02/15 22:56:01

ポイント50pt

AWS DynamoDB では、strongly consistent read というのと、eventually consistent read というのがあるみたいです。
GetItem などでは、パラメータで指定することで strongly consistent read な要求ができる、と。

Strongly Consistent Reads

When you issue a strongly consistent read request, DynamoDB returns a response with the most up-to-date data that reflects updates by all prior related write operations to which DynamoDB returned a successful response. A strongly consistent read might be less available in the case of a network delay or outage. For the GetItem, Query or Scan operations, you can request a strongly consistent read result by specifying optional parameters in your request.

Supported Operations in DynamoDB - Amazon DynamoDB

Capacity Unit による制限も、それぞれで違います。

Capacity Unit Sizes

One read capacity unit = one strongly consistent read per second, or two eventually consistent reads per second, for items up 4 KB in size.

Limits in DynamoDB - Amazon DynamoDB

特に意識してないなら、試してみたコードでは eventually consistent read な要求になっていたのだと思います。
「どう考えても1秒間に1回以上 呼び出せてしまっています」というのは、1秒間に 2回くらい呼び出せているということじゃないか、と想像します。

他2件のコメントを見る
id:nekomilk

な、なるほど!!!

2016/02/20 16:20:13
id:nekomilk

おまけとかな感じで、アクセスできてるのかと思いました。ありがとうございました!

2016/02/20 16:21:43
id:y-kawaz No.2

y-kawaz回答回数1417ベストアンサー獲得回数2252016/02/17 15:01:53

ポイント50pt

DynamoDBのキャパシティーはバースト出来ます。
なので散発的な場合は、秒単位で見たキャパ以上のアクセスが可能です。
ただしそれが継続するとクエリがDENYされて実行できなくなるはずです。
例えば、1分間に60req/secを1回だけ行うのなら大丈夫ですが、2req/secの利用ペースを10分間ずっと継続とかは出来なかったはずです。

恐らくは CloudWatch の数分単位のメトリクスを使った平均read/writeがキャパを超えたかどうかで判定してるんだと思います。
スパイクアクセス時にバーストしてくれるのは助かるので利用者にとっては無駄なキャパシティを確保する必要が無いので良い仕様だと思います。
ただしキャパオーバーを放っておくと突然使えなくなるのでCloudWatchのメトリクス値には注意するようにしましょう。

DynamoDBコンソールのメトリクスの情報アイコンのポップアップ内にもそう書いてありますね。
f:id:y-kawaz:20160217145432p:image

id:nekomilk

なるほどですね! とてもしっくり来ました!

2016/02/20 16:20:56

コメントはまだありません

この質問への反応(ブックマークコメント)

「あの人に答えてほしい」「この質問はあの人が答えられそう」というときに、回答リクエストを送ってみてましょう。

これ以上回答リクエストを送信することはできません。制限について

絞り込み :
はてなココの「ともだち」を表示します。
回答リクエストを送信したユーザーはいません