AWSのNoSQLデータベース「DynamoDB」を使うときに必ず出てくるのが RCU(読み込みキャパシティーユニット)。
「なんとなくわかるけど、実際どれくらい必要なの?」「どうやって計算すればいいの?」と疑問に思ったことはありませんか?
✅ RCUとは?
RCU(Read Capacity Unit) は、DynamoDBでデータを**読み込むときの処理能力(スループット)**を表す単位です。
簡単に言うと、「1秒間にどれだけ読み込めるか」の目安になります。
📏 1RCUでできること
1RCUがカバーする読み込みの量は次の通り:
読み込みタイプ | 1 RCUで処理できる内容 |
---|---|
強い整合性(Strongly Consistent Read) | 4KBのデータを1回/秒 読み込み可能 |
結果整合性(Eventually Consistent Read) | 4KBのデータを2回/秒 読み込み可能 |
トランザクション読み込み | 4KBのデータを0.5回/秒(つまり2RCU必要) |
🔍 強い整合性 vs 結果整合性って?
- 強い整合性:最新のデータが必ず返ってくる(1RCU = 1回)
-
結果整合性:多少遅れていてもいい(1RCU = 2回)
→ よりRCUを節約できる!
📊 実際のRCUの計算例
例:1つのアイテムが8KBで、結果整合性の読み込みを毎秒100回したい
1回の読み込みで必要なRCU:
- 8KB ÷ 4KB = 2RCU(1リクエストにつき)
でも結果整合性なので:
- 2RCU ÷ 2 = 1RCU
→ 100回/秒 × 1RCU = 100RCU 必要!
⚙️ オンデマンドとプロビジョニング
DynamoDBでは2つの料金モードがあります:
① オンデマンドモード(自動でスケーリング)
- リクエスト数に応じて自動でRCUが増減
- 小規模〜中規模で変動が大きいアプリにおすすめ
② プロビジョニングモード(手動設定)
- RCU/WCUを明示的に設定
- 安定したトラフィックがある場合にコスト削減可能
💡まとめ
- RCUは「読み込みの処理能力(スループット)」の単位
- 読み込みタイプやデータサイズで必要なRCUが変わる
- コストに関わるので、アクセスパターンに合わせて適切に設定するのが大切!