LoginSignup
6

More than 5 years have passed since last update.

DynamoDBのAutoscalingがスケジュール対応したので試してみる【AWS CLI】

Posted at

DynamoDB AS

DynamoDBのキャパシティの値を事前に指定した値でスケーリングさせる機能です。
現在、DynamoDBのテーブルを新しく作成するときにはdefaultで有効化にチェックが入る機能です。

なぜ、スケジュール機能が必要?

DynamoDBのオートスケールを有効化していると、
日中は最低値200で使用して夜間は50にしたい
と言ったことを解決するには、夜間のみオートスケールを解除して・・・といった面倒な事が必要でした。

これを時限起動で出来るようになったのがスケジュール機能!

CLI

awscli
aws application-autoscaling

を使用します。

  • 登録: put-scheduled-action
  • 確認: describe-scheduled-actions
  • 削除: delete-scheduled-action

それぞれ見ていきます。

登録

awscli
aws application-autoscaling put-scheduled-action \
    --service-namespace dynamodb \
    --schedule "cron(01 00 * * ? *)" \
    --scheduled-action-name TestAcction \
    --resource-id table/table_name \
    --scalable-dimension dynamodb:table:ReadCapacityUnits \
    --scalable-target-action MinCapacity=10,MaxCapacity=50   

schedule

cloudwatchで指定しているのと同じ指定方法です。
ルールのスケジュール式

注意する点はUTCで認識されるのでそのへんは気をつけて下さい。

start-time/end-time

その時点から有効・その時点で無効

"2017-11-09T14:10:00+09:00"
みたいに指定

resource-id

  • DynamoDBのテーブル: table/テーブル名
  • DynamoDBのGSI: table/テーブル名/index/インデックス名

scalable-dimension

  • 読み込みキャパシティ: dynamodb:table:ReadCapacityUnits
  • 書き込みキャパシティ: dynamodb:table:WriteCapacityUnits
  • インデックスの読み込みキャパシティ: dynamodb:index:ReadCapacityUnits
  • インデックスの書き込みキャパシティ: dynamodb:index:WriteCapacityUnits

scalable-target-action

最小値と最大値を設定

MinCapacity=INT,MaxCapacity=INT

の形式で指定

確認

awscli
aws application-autoscaling describe-scheduled-actions \
    --service-namespace dynamodb \
    --scheduled-action-names TestAcction

scheduled-action-names

登録の時に指定した scheduled-action-name を指定する

"hogehoge" の形式

削除

awscli
aws application-autoscaling delete-scheduled-action \
    --service-namespace dynamodb \
    --scheduled-action-name TestAcction \
    --resource-id table/table_name \
    --scalable-dimension dynamodb:table:ReadCapacityUnits

参考

put-scheduled-action
ルールのスケジュール式

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
6