はじめに
概要
DynamoDBのキャパシティユニットを増やす/減らすという概念がいまいちよくわからなかったので調べてまとめました
この記事で得られること
キャパシティユニットとは何か
DynamoDBとは
AWSのNoSQLデータベースのサービスで、DynamoDBはAWSのマネージド(AWS側がサーバー側を管理してくれる)サービスです。
今回はそんなDynamoDBのキャパシティユニットについてのお話です。
キャパシティユニットとは
WCUとRCU
DynamoDBにはキャパシティユニットという読み書きできる量を表したものがあります。
WCU(ライトキャパシティユニット)は書き込みできる量です。
RCU(リードキャパシティユニット)は読み取りできる量です。
1キャパシティユニット=?
キャパシティユニットが「1」というのは「1秒間に1KB以下のデータ書き込み/読み込み」ができるということです。
仮に1秒間に1.5KBのデータを書き込む場合はキャパシティユニットが2必要です。
最小キャパシティユニットはデフォルトで1に設定されています。
これは最小の読み書きが1秒間に1回は可能であるということです。
0という値は設定できませんが、仮に0が設定出来たとすると、それは読み書きができないデータベースということになります
キャパシティモード
オンデマンド
オンデマンドは最初にキャパシティユニットの量を決めずに、
読み書きが増えればそれに応じてキャパシティユニットの量を増減させることができます。
これをオートスケーリングといいます
プロビジョンド
オンデマンドがオートスケーリングするのに対してプロビジョンドは最初に容量を決めます。
プロビジョンドではリザーブドキャパシティという長期間分を前払いをして安くなるというオプションがあります。
どっちを選べばいい?
まずはオンデマンドを使用してみて、読み書きの量が安定して予測可能なレベルであれば、プロビジョンドのリザーブドキャパシティを検討するのが良いでしょう。
逆にスパイクが発生するようなシステムであればオンデマンドで良いかと思います。
まとめ
キャパシティユニットとは読み書きの量を1KBずつに分けた単位です。
所感
他のサービスでもそうですが、オンデマンドで使った分だけというのはちょっと試してみよう!ができるので学習もしやすくとても素晴らしいなと感じました。