メニュー
AWS CloudFormation
ユーザーガイド (API Version 2010-05-15)

AWS::ApplicationAutoScaling::ScalingPolicy

AWS::ApplicationAutoScaling::ScalingPolicyリソースは、アプリケーションリソースを調整するために アプリケーションの Auto Scaling が使用する アプリケーションの Auto Scaling スケーリングポリシーを定義します。

構文

AWS CloudFormation テンプレートでこのエンティティを宣言するには、次の構文を使用します。

JSON

Copy
{ "Type" : "AWS::ApplicationAutoScaling::ScalingPolicy", "Properties" : { "PolicyName" : String, "PolicyType" : String, "ResourceId" : String, "ScalableDimension" : String, "ScalingTargetId" : String, "ServiceNamespace" : String, "StepScalingPolicyConfiguration" : StepScalingPolicyConfiguration, "TargetTrackingScalingPolicyConfiguration" : TargetTrackingScalingPolicyConfiguration } }

プロパティ

PolicyName

スケーリングポリシーの名前。

Required: Yes

Type: String

更新に伴う要件: 置換

PolicyType

アプリケーションの Auto Scaling ポリシータイプ。

注記

DynamoDB の場合、TargetTrackingScaling のみがサポートされます。他のサービスの場合、StepScaling のみがサポートされます。

Required: Yes

Type: String

更新に伴う要件: 中断はありません。

ResourceId

このスケーリングポリシーが適用されるスケーラブルなターゲットの一意のターゲットリソース識別子。詳細については、Application Auto Scaling API リファレンスPutScalingPolicy アクションの ResourceId パラメーターを参照してください。

Required: Conditional。ScalingTargetId プロパティまたは ResourceIdScalableDimension、そして ServiceNamespace プロパティのいずれかを指定する必要があります。ResourceIdScalableDimension、そして ServiceNamespace プロパティを指定した場合、ScalingTargetId プロパティを指定しないでください。

Type: String

更新に伴う要件: 置換

ScalableDimension

このスケーリングポリシーを適用するためのスケーラブルなターゲットのスケーラブルなディメンションです。スケーラブルなディメンションは、Amazon ECS サービスの希望するタスクカウントの ecs:service:DesiredCount などのサービス名前空間、リソースタイプ、スケーリングなプロパティを含みます。

Required: Conditional。ScalingTargetId プロパティまたは ResourceIdScalableDimension、そして ServiceNamespace プロパティのいずれかを指定する必要があります。ResourceIdScalableDimension、そして ServiceNamespace プロパティを指定した場合、ScalingTargetId プロパティを指定しないでください。

Type: String

更新に伴う要件: 置換

ServiceNamespace

このスケーリングポリシーを適用するスケーラブルなターゲットの AWS サービス名前空間。サービス名前空間サービスのリストについては、AWS General ReferenceAWS サービス名前空間を参照してください。

Required: Conditional。ScalingTargetId プロパティまたは ResourceIdScalableDimension、そして ServiceNamespace プロパティのいずれかを指定する必要があります。ResourceIdScalableDimension、そして ServiceNamespace プロパティを指定した場合、ScalingTargetId プロパティを指定しないでください。

Type: String

更新に伴う要件: 置換

ScalingTargetId

アプリケーションの Auto Scaling スケーラブルなターゲットの AWS CloudFormation によって生成された ID。IDの詳細については、AWS::ApplicationAutoScaling::ScalableTarget リソースの戻り値セクションを参照してください。

Required: Conditional。ScalingTargetId プロパティまたは ResourceIdScalableDimension、そして ServiceNamespace プロパティのいずれかを指定する必要があります。このプロパティを指定した場合、ResourceIdScalableDimension、および ServiceNamespace プロパティを指定しないでください。

Type: String

更新に伴う要件: 置換

StepScalingPolicyConfiguration

アプリケーションの Auto Scaling がリソースの規模を拡大縮小するときに設定するステップポリシー。

Required: No

Type: アプリケーションの Auto Scaling ScalingPolicy StepScalingPolicyConfiguration

更新に伴う要件: 中断はありません。

TargetTrackingScalingPolicyConfiguration

ターゲットの追跡スケーリングポリシーの設定。

このパラメータは、新しいポリシーを作成する場合に必要で、ポリシータイプは TargetTrackingScaling です。

Required: No

Type: アプリケーションの Auto Scaling ScalingPolicy TargetTrackingScalingPolicyConfiguration

更新に伴う要件: 中断はありません。

戻り値

参照番号

このリソースの論理 ID を Ref 組み込み関数に渡すと、Ref は アプリケーションの Auto Scaling スケーリングポリシー Amazon リソースネーム (ARN) (arn:aws:autoscaling:us-east-2:123456789012:scalingPolicy:12ab3c4d-56789-0ef1-2345-6ghi7jk8lm90:resource/ecs/service/ecsStack-MyECSCluster-AB12CDE3F4GH/ecsStack-MyECSService-AB12CDE3F4GH:policyName/MyStepPolicy など) を返します。

Ref 関数の使用方法の詳細については、「Ref」を参照してください。

ステップポリシー設定がある アプリケーションの Auto Scaling スケーリングポリシー

次の例ではステップ ポリシー設定がある アプリケーションの Auto Scaling スケーリングポリシーを作成します。関連アラームがトリガーされると、ポリシーは 60 秒のクールダウン期間で、スケーラブルなターゲットの希望数を 200% 増やします。

JSON

Copy
"scalingPolicy" : { "Type" : "AWS::ApplicationAutoScaling::ScalingPolicy", "Properties" : { "PolicyName" : "AStepPolicy", "PolicyType" : "StepScaling", "ScalingTargetId" : {"Ref": "scalableTarget"}, "StepScalingPolicyConfiguration" : { "AdjustmentType" : "PercentChangeInCapacity", "Cooldown" : 60, "MetricAggregationType" : "Average", "StepAdjustments" : [{ "MetricIntervalLowerBound" : 0, "ScalingAdjustment" : 200 }] } } }

YAML

Copy
scalingPolicy: Type: 'AWS::ApplicationAutoScaling::ScalingPolicy' Properties: PolicyName: AStepPolicy PolicyType: StepScaling ScalingTargetId: Ref: scalableTarget StepScalingPolicyConfiguration: AdjustmentType: PercentChangeInCapacity Cooldown: 60 MetricAggregationType: Average StepAdjustments: - MetricIntervalLowerBound: 0 ScalingAdjustment: 200

Amazon DynamoDB テーブルがある アプリケーションの Auto Scaling スケーリングポリシー

この例では、AWS::DynamoDB::Table リソースに アプリケーションの Auto Scaling をセットアップします。このテンプレートでは、テーブル向けに WriteCapacityUnits スループットをスケールアップする TargetTrackingScaling スケーリングポリシーを定義します。

JSON

Copy
{ "Resources": { "DDBTable": { "Type": "AWS::DynamoDB::Table", "Properties": { "AttributeDefinitions": [ { "AttributeName": "ArtistId", "AttributeType": "S" }, { "AttributeName": "Concert", "AttributeType": "S" }, { "AttributeName": "TicketSales", "AttributeType": "S" } ], "KeySchema": [ { "AttributeName": "ArtistId", "KeyType": "HASH" }, { "AttributeName": "Concert", "KeyType": "RANGE" } ], "GlobalSecondaryIndexes": [ { "IndexName": "GSI", "KeySchema": [ { "AttributeName": "TicketSales", "KeyType": "HASH" } ], "Projection": { "ProjectionType": "KEYS_ONLY" }, "ProvisionedThroughput": { "ReadCapacityUnits": 5, "WriteCapacityUnits": 5 } } ], "ProvisionedThroughput": { "ReadCapacityUnits": 5, "WriteCapacityUnits": 5 } } }, "WriteCapacityScalableTarget": { "Type": "AWS::ApplicationAutoScaling::ScalableTarget", "Properties": { "MaxCapacity": 15, "MinCapacity": 5, "ResourceId": { "Fn::Join": [ "/", [ "table", { "Ref": "DDBTable" } ] ] }, "RoleARN": { "Fn::GetAtt": ["ScalingRole", "Arn"] }, "ScalableDimension": "dynamodb:table:WriteCapacityUnits", "ServiceNamespace": "dynamodb" } }, "ScalingRole": { "Type": "AWS::IAM::Role", "Properties": { "AssumeRolePolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Principal": { "Service": [ "application-autoscaling.amazonaws.com" ] }, "Action": [ "sts:AssumeRole" ] } ] }, "Path": "/", "Policies": [ { "PolicyName": "root", "PolicyDocument": { "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "dynamodb:DescribeTable", "dynamodb:UpdateTable", "cloudwatch:PutMetricAlarm", "cloudwatch:DescribeAlarms", "cloudwatch:GetMetricStatistics", "cloudwatch:SetAlarmState", "cloudwatch:DeleteAlarms" ], "Resource": "*" } ] } } ] } }, "WriteScalingPolicy": { "Type": "AWS::ApplicationAutoScaling::ScalingPolicy", "Properties": { "PolicyName": "WriteAutoScalingPolicy", "PolicyType": "TargetTrackingScaling", "ScalingTargetId": { "Ref": "WriteCapacityScalableTarget" }, "TargetTrackingScalingPolicyConfiguration": { "TargetValue": 50.0, "ScaleInCooldown": 60, "ScaleOutCooldown": 60, "PredefinedMetricSpecification": { "PredefinedMetricType": "DynamoDBWriteCapacityUtilization" } } } } } }

YAML

Copy
Resources: DDBTable: Type: "AWS::DynamoDB::Table" Properties: AttributeDefinitions: - AttributeName: "ArtistId" AttributeType: "S" - AttributeName: "Concert" AttributeType: "S" - AttributeName: "TicketSales" AttributeType: "S" KeySchema: - AttributeName: "ArtistId" KeyType: "HASH" - AttributeName: "Concert" KeyType: "RANGE" GlobalSecondaryIndexes: - IndexName: "GSI" KeySchema: - AttributeName: "TicketSales" KeyType: "HASH" Projection: ProjectionType: "KEYS_ONLY" ProvisionedThroughput: ReadCapacityUnits: 5 WriteCapacityUnits: 5 ProvisionedThroughput: ReadCapacityUnits: 5 WriteCapacityUnits: 5 WriteCapacityScalableTarget: Type: "AWS::ApplicationAutoScaling::ScalableTarget" Properties: MaxCapacity: 15 MinCapacity: 5 ResourceId: !Join - / - - table - !Ref DDBTable RoleARN: !GetAtt ScalingRole.Arn ScalableDimension: dynamodb:table:WriteCapacityUnits ServiceNamespace: dynamodb ScalingRole: Type: "AWS::IAM::Role" Properties: AssumeRolePolicyDocument: Version: "2012-10-17" Statement: - Effect: "Allow" Principal: Service: - application-autoscaling.amazonaws.com Action: - "sts:AssumeRole" Path: "/" Policies: - PolicyName: "root" PolicyDocument: Version: "2012-10-17" Statement: - Effect: "Allow" Action: - "dynamodb:DescribeTable" - "dynamodb:UpdateTable" - "cloudwatch:PutMetricAlarm" - "cloudwatch:DescribeAlarms" - "cloudwatch:GetMetricStatistics" - "cloudwatch:SetAlarmState" - "cloudwatch:DeleteAlarms" Resource: "*" WriteScalingPolicy: Type: "AWS::ApplicationAutoScaling::ScalingPolicy" Properties: PolicyName: WriteAutoScalingPolicy PolicyType: TargetTrackingScaling ScalingTargetId: !Ref WriteCapacityScalableTarget TargetTrackingScalingPolicyConfiguration: TargetValue: 50.0 ScaleInCooldown: 60 ScaleOutCooldown: 60 PredefinedMetricSpecification: PredefinedMetricType: DynamoDBWriteCapacityUtilization

このページの内容: