DynamoDB キャパシティユニット
キャパシティユニットとは
1秒あたりにN回の読み書きできる容量
- WCU(ライトキャパシティユニット)は書き込みできる量
- RCU(リードキャパシティユニット)は読み取りできる量
以下、1キャパシティユニットのできること
読み書き | 内容 |
---|---|
読み込み (強力な整合性) | 1秒に1回 (4KBまでは) |
読み込み (結果整合性) | 1秒に2回 (4KBまでは) |
書き込み | 1秒に1回 (1KBまでは) |
結果整合性は、楽観ロック→最新状態が担保されていない
強い整合性は、悲観ロック→最新状態が担保されている
キャパシティユニットは1テーブルごとに設定する。
例えば、5ユニットの書き込みキャパシティ/読み込みキャパシティをテーブルに設定すると、
- 1秒に5KBまでの書き込み (1KB × 5回)
- 1秒に20KBまでの強力な整合性読み込み (4KB × 5回)
- 1秒に40KBまでの結果整合性読み込み (4KB × 10回)
仮に1秒間に1.5KBのデータを書き込む場合はキャパシティユニットが2必要
キャパシティモード
キャパシティモードには2種類あり、それぞれ
- オンデマンド
- プロビジョンド
どちらもキャパシティユニットの容量の設定方法である。
オンデマンド
オートスケーリング
オンデマンドは最初にキャパシティユニットの量を決めずに、
読み書きが増えればそれに応じてキャパシティユニットの量を増減させることができる。
プロビジョンド
オンデマンドがオートスケーリングするのに対してプロビジョンドは最初に容量を決めます。
プロビジョンドではリザーブドキャパシティという長期間分を前払いをして安くなるというオプションがあります。
キャパシティユニットの消費パターン
読み込みリクエストの場合
整合性レベルが上がるたび、ユニット数が倍になっていくイメージ
リクエストの種類 | 基準サイズ | 必要ユニット数 |
---|---|---|
結果整合性 | 4KB以下 | 0.5 RCU |
強力な整合性 | 4KB以下 | 1 RCU |
トランザクション | 4KB以下 | 2 RCU |
書き込みリクエストの場合
リクエストの種類 | 基準サイズ | 必要ユニット数 |
---|---|---|
通常 | 1KB以下 | 1 WCU |
トランザクション | 1KB以下 | 2 WCU |
CloudWatch 測定対象の自動作成
プロビジョンドのオートスケーリングを有効にすると自動でメトリクスが作成されるみたいです。
くわしくないので、触れる程度。