Amazon DynamoDBをオンデマンド(従量課金)で利用した場合の料金体系まとめ #reinvent

従量課金

re:Invent 2018のキーノート1日目に「Amazon DynamoDBの従量課金サポート」が発表されました!

【アップデート】Amazon DynamoDBが従量課金で利用できるようになりました! #reinvent

新規作成時に設定できることはもちろん、すでに作成しているテーブルを変更できる点も非常にありがたいアップデートです。

すぐに実運用で利用したい!と思う場合にとっても大事なのが料金体系。すでにドキュメントが公開されているのでまとめてみました。

用語

まず用語を理解しましょう。

Read request unit

読み込みリクエストのユニット数です。つまりRead capacity unitのリクエスト版です。整合性の強い読み込みか、結果整合性の読み込みか、さらにはトランザクショナルな読み込みかによって消費するユニット数が変わります。

Write request unit

書き込みリクエストのユニット数です。スタンダードな書き込みか、トランザクショナルな書き込みかによって消費ユニット数が変わります。

Replicated write request unit

DynamoDB Global Tableを利用している場合のレプリケーション時に発生する書き込みリクエストのユニット数です。

Streams read request unit

DynamoDB Streamsを利用している場合の読み込みリクエストのユニット数です。

Transactional read/write requests

トランザクショナルな読み込み・書き込みリクエスト数です。

機能単位の概要

機能単位で見てみます。以下の消費で費用が発生します。

機能 処理 消費
書き込みリクエスト データをテーブルに書き込む Write request unit
読み込みリクエスト テーブルからデータを読みこむ Read request unit
継続的なバックアップ 35日前までのバックアップ GB/月
オンデマンドバックアップ スナップショットバックアップを手動で取る GB/月
バックアップからのリストア 特定のスナップショット、または特定の時間のデータをリストア GB
Global Table マルチリージョン・マルチマスターにする Replicated write request unit
DynamoDB Accelerator (DAX) インメモリキャッシュ利用によってレイテンシを減らす Node/月
DynamoDB Streams アイテムのデータの変更をストリームに流す Streams read request unit
データ移行 他のリージョンにデータを移行する GB

ユニットあたりの金額

東京リージョンの場合は以下になります。

  • Write request units: $1.427 / 1,000,000 書き込みリクエストユニット
  • Read request units: $0.2854 / 1,000,000 読み込みリクエストユニット

まとめ

オンデマンドが追加されたからといって、全てをオンデマンドにすれば良いというわけではありません。時にはプロビジョニングプランの方が金額的に良い場合があります(リザーブドキャパシティ)。DynamoDBを使う上では リクエストが固定的になるか変動的になるか をよく考えて決めると良いと思います。