Amazon DynamoDBをオンデマンド(従量課金)で利用した場合の料金体系まとめ #reinvent
従量課金
re:Invent 2018のキーノート1日目に「Amazon DynamoDBの従量課金サポート」が発表されました!
新規作成時に設定できることはもちろん、すでに作成しているテーブルを変更できる点も非常にありがたいアップデートです。
すぐに実運用で利用したい!と思う場合にとっても大事なのが料金体系。すでにドキュメントが公開されているのでまとめてみました。
用語
まず用語を理解しましょう。
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を使う上では リクエストが固定的になるか変動的になるか をよく考えて決めると良いと思います。