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 の使用に関するサンプル設定と詳細を確認できます。
-
Managing throughput capacity with DynamoDB Auto Scaling in the Amazon 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-capacity5
\ --max-capacity10
テーブルの読み取り容量に対して 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-capacity5
\ --max-capacity10
グローバルセカンダリインデックスの書き込み容量に対して 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-capacity5
\ --max-capacity10
グローバルセカンダリインデックスの読み取り容量に対して 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-capacity5
\ --max-capacity10
-
AWS SDK:
RegisterScalableTargetオペレーションを呼び出し、
ResourceId
、ScalableDimension
、ServiceNamespace
、MinCapacity
、およびMaxCapacity
をパラメータとして指定します。