Amazon DynamoDB および Application Auto Scaling - Application Auto Scaling

Amazon DynamoDB および Application Auto Scaling

ターゲット追跡スケーリングポリシーとスケジュールされたスケーリングを使用して、DynamoDB tables and global secondary indexes をスケールできます。

DynamoDB と Application Auto Scaling の統合には、次の情報を参考にしてください。

DynamoDB tables and global secondary indexes のスケーリングを始めたばかりの場合は、以下のドキュメントで、Application Auto Scaling での DynamoDB の使用に関するサンプル設定と詳細を確認できます。

ヒント

チュートリアル:AWS CLI を使用したスケジュールに基づくスケーリングの開始方法」には、スケジュールされたスケーリングのためのチュートリアルも記載されています。このチュートリアルでは、DynamoDB テーブルがスケジュールされた時刻にスケールされるようにスケーリングを設定するための基本的な手順について学びます。

DynamoDB 向けに作成されたサービスリンクロール

The following service-linked role is automatically created in your AWS account when registering DynamoDB resources as scalable targets with Application Auto Scaling. This role allows Application Auto Scaling to perform supported operations within your account. For more information, see Application Auto Scaling のサービスリンクロール.

  • AWSServiceRoleForApplicationAutoScaling_DynamoDBTable

サービスリンクロールが使用するサービスプリンシパル

The service-linked role in the previous section can be assumed only by the service principal authorized by the trust relationships defined for the role. The service-linked role used by Application Auto Scaling grants access to the following service principal:

  • dynamodb.application-autoscaling.amazonaws.com

スケーラブルターゲットとしての DynamoDB リソースの Application Auto Scaling への登録

Application Auto Scaling では、DynamoDB テーブルまたはグローバルセカンダリインデックスのスケーリングポリシーまたはスケジュールされたアクションを作成する前に、スケーラブルターゲットが必要になります。スケーラブルターゲットとは、Application Auto Scaling がスケールアウトまたはスケールインできるリソースです。スケーラブルターゲットは、リソース ID、スケーラブルディメンション、および名前空間の組み合わせによって一意に識別されます。

DynamoDB コンソールを使用してオートスケーリングを設定すると、DynamoDB がユーザーに代わってスケーラブルターゲットを自動的に登録します。

AWS CLI または AWS SDK の 1 つを使用してオートスケーリングを設定する場合は、次のオプションを使用できます。

  • AWS CLI:

    テーブルの書き込み容量に対して register-scalable-target コマンドを呼び出します。以下の例は、最小容量を 5 個の書き込みキャパシティーユニット、最大容量を 10 個の書き込みキャパシティーユニットとして、my-table と呼ばれるテーブルのプロビジョニングされた書き込みキャパシティーを登録します。

    aws application-autoscaling register-scalable-target \ --service-namespace dynamodb \ --scalable-dimension dynamodb:table:WriteCapacityUnits \ --resource-id table/my-table \ --min-capacity 5 \ --max-capacity 10

    テーブルの読み取り容量に対して register-scalable-target コマンドを呼び出します。以下の例は、最小容量を 5 個の読み取り容量ユニット、最大容量を 10 個の読み取り容量ユニットとして、my-table と呼ばれるテーブルのプロビジョニングされた読み取り容量を登録します。

    aws application-autoscaling register-scalable-target \ --service-namespace dynamodb \ --scalable-dimension dynamodb:table:ReadCapacityUnits \ --resource-id table/my-table \ --min-capacity 5 \ --max-capacity 10

    グローバルセカンダリインデックスの書き込み容量に対して register-scalable-target コマンドを呼び出します。以下の例は、最小容量を 5 個の書き込みキャパシティーユニット、最大容量を 10 個の書き込みキャパシティーユニットとして、my-table-index と呼ばれるグローバルセカンダリインデックスのプロビジョニングされた書き込みキャパシティーを登録します。

    aws application-autoscaling register-scalable-target \ --service-namespace dynamodb \ --scalable-dimension dynamodb:index:WriteCapacityUnits \ --resource-id table/my-table/index/my-table-index \ --min-capacity 5 \ --max-capacity 10

    グローバルセカンダリインデックスの読み取り容量に対して register-scalable-target コマンドを呼び出します。以下の例は、最小容量を 5 個の読み取り容量ユニット、最大容量を 10 個の読み取り容量ユニットとして、my-table-index と呼ばれるグローバルセカンダリインデックスのプロビジョニングされた読み取り容量を登録します。

    aws application-autoscaling register-scalable-target \ --service-namespace dynamodb \ --scalable-dimension dynamodb:index:ReadCapacityUnits \ --resource-id table/my-table/index/my-table-index \ --min-capacity 5 \ --max-capacity 10
  • AWS SDK:

    RegisterScalableTargetオペレーションを呼び出し、ResourceIdScalableDimensionServiceNamespaceMinCapacity、および MaxCapacity をパラメータとして指定します。