Application Auto Scaling のスケーリングの一時停止と再開 - Application Auto Scaling

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

Application Auto Scaling のスケーリングの一時停止と再開

このトピックでは、アプリケーションでスケーラブルターゲットのスケーリングアクティビティの 1 つ、または複数を一時停止し、その後再開する方法について説明します。一時停止/再開機能は、スケーリングポリシーとスケジュールされたアクションによってトリガーされたスケーリングアクティビティを一時的に停止するために使用されます。これは、例えば、変更を行っている間や設定の問題を調査しているときに、自動スケーリングに干渉されないようにする場合などに便利です。スケーリングポリシーとスケジュールされたアクションは保持し、準備が整ったら、スケーリングアクティビティを再開できます。

以下のサンプル CLI コマンドでは、config.json ファイル で JSON 形式のパラメータを渡します。これらのパラメータは、引用符を使用して JSON データ構造を囲むことによって、コマンドラインで渡すこともできます。詳細については、AWS Command Line Interface ユーザーガイドの「AWS CLIでの文字列への引用符の使用」を参照してください。

注記

Amazon ECS デプロイの進行中にスケールアウトプロセスを一時停止する手順については、次のドキュメントを参照してください。

Amazon Elastic Container Service デベロッパーガイドの「サービスの自動スケーリング

スケーリングアクティビティ

Application Auto Scaling では、以下のスケーリングアクティビティを一時停止状態にすることができます。

  • スケーリングポリシーによってトリガーされるすべてのスケールインアクティビティ。

  • スケーリングポリシーによってトリガーされるすべてのスケールアウトアクティビティ。

  • スケジュールされたアクションに関係するすべてのスケーリングアクティビティ。

以下の説明では、個々のスケーリングアクティビティが停止されると何が起こるかについて説明しています。それぞれ個別に停止および再開できます。スケーリングアクティビティを停止する理由によっては、複数のスケーリングアクティビティをまとめて停止する必要がある場合があります。

DynamicScalingInSuspended

  • Application Auto Scaling は、ターゲット追跡スケーリングポリシーまたはステップスケーリングポリシーがトリガーされたときに容量を削除しません。これは、スケーリングポリシー、またはそれらに関連する CloudWatch アラームを削除することなく、スケーリングポリシーに関連付けられたスケールインアクティビティを一時的に無効化することを可能にします。スケールインを再開するときは、Application Auto Scaling が違反状態のアラームしきい値があるポリシーを評価します。

DynamicScalingOutSuspended

  • Application Auto Scaling は、ターゲット追跡スケーリングポリシーまたはステップスケーリングポリシーがトリガーされたときに容量を追加しません。これは、スケーリングポリシー、またはそれらに関連する CloudWatch アラームを削除することなく、スケーリングポリシーに関連付けられたスケールアウトアクティビティを一時的に無効化することを可能にします。スケールアウトを再開するときは、Application Auto Scaling が違反状態のアラームしきい値があるポリシーを評価します。

ScheduledScalingSuspended

  • Application Auto Scaling は、一時停止期間中に実行がスケジュールされているスケーリングアクションを開始しません。スケジュールされたスケーリングを再開するとき、Application Auto Scaling は、実行時刻がまだ過ぎていないスケジュールされたアクションのみを評価します。

スケーリングアクティビティの一時停止と再開

Application Auto Scaling のスケーラブルターゲットに対するスケーリングアクティビティは、個別に、またはすべてを一時停止して再開することができます。

注記

簡略化のため、これらの例では、DynamoDB テーブルのスケーリングを一時停止して再開する方法を例示しています。別のスケーラブルターゲットを指定するには、--service-namespace でその名前空間、--scalable-dimension でそのスケーラブルディメンション、--resource-id でそのリソース ID を指定します。各サービスの詳細情報および例については、AWS のサービス Application Auto Scaling で使用できる のトピックを参照してください。

スケーリングアクティビティを停止するには

コマンドラインウィンドウを開き、--suspended-state オプションがある register-scalable-target コマンドを以下のように使用します。

Linux、macOS、または Unix

aws application-autoscaling register-scalable-target --service-namespace dynamodb \ --scalable-dimension dynamodb:table:ReadCapacityUnits --resource-id table/my-table \ --suspended-state file://config.json

Windows

aws application-autoscaling register-scalable-target --service-namespace dynamodb --scalable-dimension dynamodb:table:ReadCapacityUnits --resource-id table/my-table --suspended-state file://config.json

成功した場合、このコマンドはスケーラブルターゲットの ARN を返します。

{ "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123" }

スケーリングポリシーによってトリガーされたスケールインアクティビティのみを停止するには、config.json で次のように指定します。

{ "DynamicScalingInSuspended":true }

スケーリングポリシーによってトリガーされたスケールアウトアクティビティのみを停止するには、config.json で次のように指定します。

{ "DynamicScalingOutSuspended":true }

スケジュールされたアクションに関連するスケーリングアクティビティのみを停止するには、config.json で以下を指定します。

{ "ScheduledScalingSuspended":true }
すべてのスケーリングアクティビティを停止するには

--suspended-state オプションがある register-scalable-target コマンドを以下のように使用します。

Linux、macOS、または Unix

aws application-autoscaling register-scalable-target --service-namespace dynamodb \ --scalable-dimension dynamodb:table:ReadCapacityUnits --resource-id table/my-table \ --suspended-state file://config.json

Windows

aws application-autoscaling register-scalable-target --service-namespace dynamodb --scalable-dimension dynamodb:table:ReadCapacityUnits --resource-id table/my-table --suspended-state file://config.json

この例では、ファイル config.json に以下の JSON 形式パラメータが含まれていると仮定しています。

{ "DynamicScalingInSuspended":true, "DynamicScalingOutSuspended":true, "ScheduledScalingSuspended":true }

成功した場合、このコマンドはスケーラブルターゲットの ARN を返します。

{ "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123" }

一時停止されたスケーリングアクティビティを表示する

describe-scalable-targets コマンドを使用して、スケーラブルターゲットに対するスケーリングアクティビティのどれが一時停止状態になっているかを判断します。

Linux、macOS、または Unix

aws application-autoscaling describe-scalable-targets --service-namespace dynamodb \ --scalable-dimension dynamodb:table:ReadCapacityUnits --resource-id table/my-table

Windows

aws application-autoscaling describe-scalable-targets --service-namespace dynamodb --scalable-dimension dynamodb:table:ReadCapacityUnits --resource-id table/my-table

以下は出力例です。

{ "ScalableTargets": [ { "ServiceNamespace": "dynamodb", "ScalableDimension": "dynamodb:table:ReadCapacityUnits", "ResourceId": "table/my-table", "MinCapacity": 1, "MaxCapacity": 20, "SuspendedState": { "DynamicScalingOutSuspended": true, "DynamicScalingInSuspended": true, "ScheduledScalingSuspended": true }, "CreationTime": 1558125758.957, "RoleARN": "arn:aws:iam::123456789012:role/aws-service-role/dynamodb.application-autoscaling.amazonaws.com/AWSServiceRoleForApplicationAutoScaling_DynamoDBTable" } ] }

スケーリングアクティビティを再開する

スケーリングアクティビティを再開する準備が整ったら、register-scalable-target コマンドを使用してそれらを再開できます。

次のコマンド例では、指定されたスケーラブルなターゲットのすべてのスケーリングアクティビティを再開します。

Linux、macOS、または Unix

aws application-autoscaling register-scalable-target --service-namespace dynamodb \ --scalable-dimension dynamodb:table:ReadCapacityUnits --resource-id table/my-table \ --suspended-state file://config.json

Windows

aws application-autoscaling register-scalable-target --service-namespace dynamodb --scalable-dimension dynamodb:table:ReadCapacityUnits --resource-id table/my-table --suspended-state file://config.json

この例では、ファイル config.json に以下の JSON 形式パラメータが含まれていると仮定しています。

{ "DynamicScalingInSuspended":false, "DynamicScalingOutSuspended":false, "ScheduledScalingSuspended":false }

成功した場合、このコマンドはスケーラブルターゲットの ARN を返します。

{ "ScalableTargetARN": "arn:aws:application-autoscaling:region:account-id:scalable-target/1234abcd56ab78cd901ef1234567890ab123" }