亀のコツコツクラウドインフラ

2024年12月25日

【AWS DynamoDB】コスト管理とキャパシティ最適化!オンデマンドとプロビジョンドの違いを徹底解説

はじめに

以下の方におすすめの内容になっています。

  • DynamoDBの設定を簡易的に行ったことがある
  • テーブル設定をカスタマイズしたい
  • AWS認定の勉強をしている

DynamoDBの設定手順や簡易的な説明については以下の記事を参考にしてください。

【初心者必見】DynamoDBの設定手順と活用法!概要と具体的な使い方を解説

この記事では、キャパシティーモードの「オンデマンド」と「プロビジョンド」の違いと使い分けについて解説していきます。

オンデマンド設定

読み込み・書き込みのキャパシティをDynamoDBが自動でリソースのスケーリングを行います。

そのため、瞬間的なトラフィック増加にも対応できます。

使用した分だけ料金が発生し、プロビジョンド設定よりコストが高くなる可能性があります。

オンデマンド設定のメリット

  • 設定が簡単で初心者に最適
  • トラフィックの変動に柔軟に対応
  • 初期コストが抑えられる

キャパシティ等の設定を行う必要がないのですぐにDynamoDBを試すことができます。

リクエストの急増にも自動的にスケールアップされ、柔軟に対応できます。

トラフィックが少ない間はプロビジョンドモードより安価なので、小規模のアプリケーションやテスト等のアクセス頻度が少ない場合におすすめです。

オンデマンド設定のデメリット

  • 長期的なコストが高くなる場合がある
  • リクエスト数が予測可能な場合には非効率
  • 大規模アプリケーションには適さない

トラフィックが一定以上になるとプロビジョンドモードよりコストが高くなることが多いです。
例えば、毎秒数百リクエスト以上の安定トラフィックがある場合はプロビジョンドモードで対応した方が安くなります。

プロビジョンド設定

プロビジョンドモードでは、読み取りと書き込みのキャパシティをユーザーが手動で設定します。

事前にデータ量やリクエスト数を予測できるのであれば必要なスループットを設定することができます。

また、仮に性能が足らなかった場合でも、安定した性能が出ないだけで動作はします。

例えば、「1秒間に100リクエストの処理」の設定をするとその範囲では安定した性能が保証されます。

プロビジョンド設定のメリット

  • コストコントロール
  • 安定したパフォーマンス
  • 長期的なコスト削減

必要なキャパシティを設定することで、予測可能なリクエスト数に応じたコスト管理ができます。

予測可能なトラフィックであればオンデマンド設定よりも安価になります。

プロビジョンド設定のデメリット

  • 設定ミスによりパフォーマンス低下
  • トラフィックの急激な増加への対応が遅れる
  • 手動での管理が必要

予測したトラフィックより多いリクエストが送られるとパフォーマンスが低下する。

そのため、想定外のトラフィックには柔軟に対応することが難しいです。

また、キャパシティ変更を手動で行うことも出てくるので、運用負担が増えることがある。

プロビジョンドの設定

以下がユースケース別のおすすめの設定です。

ユースケース設定内容
小規模アプリや試験運用キャパシティモード: オンデマンド
Auto Scaling: オン
最小キャパシティユニット: 1
最大キャパシティユニット: 5
ターゲット使用率: 70%
中〜大規模アプリケーションキャパシティモード: プロビジョンド
Auto Scaling: オン
最小キャパシティユニット: 10
最大キャパシティユニット: 100
ターゲット使用率: 60〜70%
安定したトラフィックを持つ長期運用システムキャパシティモード: プロビジョンド
Auto Scaling: オフ(固定値を使用)
読み込み/書き込みキャパシティユニット: トラフィック量に応じて固定値を設定(例: 50/50など)。

それぞれのモードの使い分け

どういった場合におすすめかをまとめます。

オンデマンド設定

初心者や試験運用の場合

初期設定が簡単で、キャパシティ管理を機にする必要がない

トラフィックの変動が読めない場合

トラフィックが予測できない場合でも、自動でスケールアップされて柔軟に対応できる

アクセスが少ない場合

リクエストが少ない間はプロビジョンド設定より安価になる

プロビジョンド設定

トラフィックが予測可能な場合

一定のアクセスが見込まれる場合、事前にアクセス量にあったキャパシティを設定することでコストの最適化を行える。

長期運用する場合

トラフィックが一定であれば、オンデマンド設定よりも安価になることが多い。

大規模データ処理が必要な場合

大規模な読み取り/書き込みリクエストを予測できる場合、プロビジョンド設定で効率よくリソースを割り当てることが可能。

まとめ

オンデマンド設定 は、初心者やトラフィックの変動が大きいアプリ・スモールスタートに最適です。

プロビジョンド設定 は、安定したトラフィックが予測できる場合や長期的なコスト削減を目指す場合に適しています。

両モードを使い分けることで、DynamoDBのコストを最適化しましょう。

この記事を書いた人

コツコツ亀

コツコツ亀

Webエンジニアとして活動中
AWSを使用してWebアプリケーションを作ったり、サーバーを構築したりしています。

関連記事

新着記事