DynamoDB Auto Scaling によるスループットキャパシティーの自動管理 - Amazon DynamoDB

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

DynamoDB Auto Scaling によるスループットキャパシティーの自動管理

多くのデータベースワークロードは本質的に循環的なものであり、そうでない場合は前もって予測することは困難です。例えば、日中の時間帯に大部分のユーザーがアクティブなソーシャルネットワーキングアプリがあるとします。データベースは日中のアクティビティを処理できる必要がありますが、夜間のスループットに同じレベルは必要ありません。別の例としては、急速に導入された新しいモバイルゲームアプリが挙げられます。ゲームがあまりに人気になると、利用可能なデータベースリソースを超過し、パフォーマンスが低下して顧客が不満を感じるようになります。この種のワークロードでは多くの場合、手動介入によってデータベースリソースを使用レベルに応じて上下させる必要があります。

Amazon DynamoDB Auto Scaling は AWS Application Auto Scaling サービスを使用し、実際のトラフィックパターンに応じてプロビジョニングされたスループットキャパシティーをユーザーに代わって動的に調整します。これにより、テーブルまたはグローバルセカンダリインデックスは、プロビジョニングされた読み込みおよび書き込みキャパシティーを増やし、急激なトラフィック増加をスロットリングなしに処理します。ワークロードが減ると、Application Auto Scaling はスループットを低下させ、未使用のプロビジョニングされたキャパシティーに料金が発生しないようにします。

注記

AWS マネジメントコンソールを使用してテーブルまたはグローバルセカンダリインデックスを作成すると、DynamoDB Auto Scaling はデフォルトで有効になります。Auto Scaling の設定はいつでも変更できます。詳細については、「DynamoDB Auto Scaling での AWS マネジメントコンソールの使用」を参照してください。

Application Auto Scaling では、スケーリングポリシーテーブルまたはグローバルセカンダリインデックスの場合。スケーリングポリシーは、テーブルまたはインデックスの読み込みキャパシティーまたは書き込みキャパシティー(またはその両方)およびプロビジョニングされたキャパシティーユニット設定をスケーリングするかどうかを指定します。

スケーリングポリシーには、ターゲット使用率— ある時点における消費されたプロビジョニング済みスループットの割合。Application Auto Scaling はのターゲットの追跡アルゴリズムを使用して、実際のワークロードに応じてテーブル (またはインデックス) のプロビジョニングされたスループットを上方下方に調整することで、実際のキャパシティーの使用率がターゲット使用率に、またはその近くに維持されます。

読み取りおよび書き込み容量に対して、Auto Scaling ターゲット使用率の値を 20% から 90% の間で設定できます。

注記

テーブルに加え、DynamoDB Auto Scaling はグローバルセカンダリインデックスもサポートします。グローバルセカンダリインデックスには、基本テーブルとは別に、独自のプロビジョニングされたスループットキャパシティーがあります。グローバルセカンダリインデックスのスケーリングポリシーを作成すると、Application Auto Scaling はインデックスのプロビジョニングされたスループット設定を調整し、実際の使用率がターゲット使用率と同じか近い値に維持されるようになります。

DynamoDB Auto Scaling の仕組み

注記

DynamoDB Auto Scaling のご利用開始にあたっては、「」を参照してください。DynamoDB Auto Scaling での AWS マネジメントコンソールの使用

次の図は、DynamoDB Auto Scaling によるテーブルのスループットキャパシティーの管理方法について、高レベルの概要を示しています。

次のステップは、前の図に示された Auto Scaling のプロセスをまとめたものです。

  1. DynamoDB テーブルのApplication Auto Scaling ポリシーを作成します。

  2. DynamoDB は、消費されたキャパシティーメトリクスを Amazon CloudWatch に発行します。

  3. テーブルの消費されたキャパシティーが一定期間中にターゲット使用率を超える(または下回る)と、Amazon CloudWatch はアラームをトリガーします。コンソールでアラームを表示し、Amazon Simple Notification Service (Amazon SNS) を使用して通知を受けることができます。

  4. CloudWatch アラームは、Application Auto Scaling を呼び出してスケーリングポリシーを評価します。

  5. Application Auto Scaling はUpdateTableリクエストを使用して、テーブルのプロビジョニングされたスループットを調整します。

  6. DynamoDB はUpdateTableリクエストでは、テーブルのプロビジョニングされたスループットキャパシティーが動的に増減し、ターゲット使用率に近づけます。

DynamoDB Auto Scaling の仕組みを理解するため、ProductCatalog。テーブルにはまれにデータがバルクロードされます。そのため、書き込みアクティビティが頻繁に生じることはありません。ただし、時間で変化する高度な読み込みアクティビティが生じています。の Amazon CloudWatch メトリックスをモニタリングするにはProductCatalogでは、テーブルに 1,200 ユニットの読み込みキャパシティーが必要です (アクティビティのピーク時に DynamoDB が読み込みリクエストをスロットリングしないため)。さらに、読み込みトラフィックが最も低い時点で、ProductCatalog には最少で 150 ユニットの読み込みキャパシティーが必要です。

読み込みキャパシティー 150 ~ 1,200 ユニットの範囲内で、ProductCatalog に適したターゲット使用率 70% を決定します。ターゲット使用率は、プロビジョニングされたキャパシティーユニットに対する消費されたキャパシティーユニットの比率です。パーセンテージで示されます。Application Auto Scaling は、ターゲット追跡アルゴリズムを使用して、プロビジョニングされた読み込みキャパシティーがProductCatalogは、使用率が 70% 以下になるように、必要に応じて調整されます。

注記

DynamoDB Auto Scaling は、実際のワークロードの増減が数分間維持された場合にのみ、プロビジョニングされたスループット設定を変更します。Application Auto Scaling ターゲットトラッキングアルゴリズムは、ターゲット使用率を選択した値の付近に長期に渡って維持しようとします。

アクティビティの急激かつ短時間の上昇は、テーブルに組み込まれたバーストキャパシティーで対応されます。詳細については、「バーストキャパシティーを効率的に使用する」を参照してください。

DynamoDB 自動スケーリングを有効にするにはProductCatalogテーブルで、スケーリングポリシーを作成します。このポリシーでは、以下を指定します。

  • 管理するテーブルまたはグローバルセカンダリインデックス

  • 管理するキャパシティータイプ (読み込みキャパシティーまたは書き込みキャパシティー)

  • プロビジョニングされたスループット設定の上下の境界

  • ターゲット使用率

スケーリングポリシーを作成すると、Application Auto Scaling はユーザーに代わって Amazon CloudWatch アラームのペアを作成します。各ペアはプロビジョニングされたスループット設定の上下の境界を示します。これらの CloudWatch アラームは、テーブルの実際の使用率が一定期間ターゲット使用率を逸脱したときにトリガーされます。

CloudWatch アラームの 1 つがトリガーされると、Amazon SNS から通知が送信されます (有効にしている場合)。次に、CloudWatch アラームがApplication Auto Scaling を呼び出します。これにより、ProductCatalogテーブルのプロビジョニングキャパシティーを必要に応じて上昇または下降します。

使用に関する注意事項

DynamoDB Auto Scaling の使用を開始する前に、以下を確認する必要があります。

  • DynamoDB Auto Scaling は、自動スケーリングポリシーに従って、読み込みキャパシティーや書き込みキャパシティーを必要に応じて増加させます。DynamoDB のすべてのクォータは有効です。Amazon DynamoDB のサービス、アカウント、およびテーブルのクォータ

  • DynamoDB Auto Scaling により、プロビジョニングされたスループット設定を手動で変更できなくなることはありません。これらの手動調整が、DynamoDB Auto Scaling に関連する既存の CloudWatch アラームに影響することはありません。

  • 1 つ以上のグローバルセカンダリインデックスを持つテーブルの DynamoDB Auto Scaling を有効にする場合、これらのインデックスに Auto Scaling を均等に適用することをお勧めします。これを行うには、[グローバルセカンダリインデックスに同じ設定を適用するAWS マネジメントコンソールでを開きます。詳細については、「既存のテーブルでの DynamoDB Auto Scaling の有効化」を参照してください。