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

AWS::AutoScaling::ScalingPolicy

スケーリングポリシーは、AWS::AutoScaling::ScalingPolicy リソースで Auto Scaling グループに追加します。スケーリングポリシーは、Auto Scaling グループを拡大/縮小するかどうか、また、どの程度拡大/縮小するかを指定します。スケーリングポリシーの詳細については、Auto Scaling 開発者ガイドの「ポリシーによるスケーリング」を参照してください。

スケーリングポリシーは、CloudWatch アラームと組み合わせて使用することができます。CloudWatch アラームは、ユーザーが指定したパラメーターを基に、ユーザーに代わって自動的にアクションを開始します。スケーリングポリシーは、アラームによって開始できるアクションの 1 つにすぎません。CloudWatch アラームによってトリガーされる Auto Scaling ポリシーの作成方法を紹介したスニペットについては、「CloudWatch アラームによってトリガーされる Auto Scaling ポリシー」を参照してください。アラームに関連付けられるスケーリングポリシーは 1 つのみです。

このタイプは更新をサポートしています。このリソースの更新の詳細については、「PutScalingPolicy」を参照してください。

構文

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

JSON

Copy
{ "Type" : "AWS::AutoScaling::ScalingPolicy", "Properties" : { "AdjustmentType" : String, "AutoScalingGroupName" : String, "Cooldown" : String, "EstimatedInstanceWarmup" : Integer, "MetricAggregationType" : String, "MinAdjustmentMagnitude" : Integer, "PolicyType" : String, "ScalingAdjustment" : Integer, "StepAdjustments" : [ StepAdjustments, ... ] "TargetTrackingConfiguration" : TargetTrackingConfiguration } }

プロパティ

AdjustmentType

ScalingAdjustment が現在のキャパシティーの絶対数であるかパーセンテージであるかを指定します。有効な値は、ChangeInCapacityExactCapacityPercentChangeInCapacity です。

Required: No

Type: String

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

AutoScalingGroupName

ポリシーのアタッチ先となる Auto Scaling グループの名前または Amazon リソースネーム (ARN)。

Required: Yes

Type: String

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

Cooldown

スケーリングアクティビティが完了してから、トリガー関連の他のスケーリングアクティビティを開始できるようになるまでの時間 (秒)。

StepScaling ポリシータイプを使用している場合、このプロパティを指定しないでください。

Required: No

Type: String

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

EstimatedInstanceWarmup

新たに起動されたインスタンスが CloudWatch にメトリクスを送信できるようになるまでの予測時間 (秒)。デフォルトでは、Auto Scaling は Cooldown プロパティで指定されたクールダウンを使用します。

SimpleScaling ポリシータイプを使用している場合、このプロパティを指定しないでください。

Required: No

Type: Integer

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

MetricAggregationType

CloudWatch メトリクスの集計タイプ。MinimumMaximum、または Average を指定できます。デフォルトでは、AWS CloudFormation は Average を指定します。

SimpleScaling ポリシータイプを使用している場合、このプロパティを指定しないでください。

Required: No

Type: String

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

MinAdjustmentMagnitude

PercentChangeInCapacity 調整タイプの場合、スケーリングするインスタンスの最小数。スケーリングポリシーは、このインスタンスの最小数により Auto Scaling グループの目的のキャパシティーを変更します。このプロパティにより、MinAdjustmentStep プロパティが置き換えられます。

Required: No

Type: Integer

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

PolicyType

Auto Scaling ポリシータイプ。SimpleScalingStepScaling、または TargetTrackingScaling を指定できます。デフォルトでは、AWS CloudFormation は SimpleScaling を指定します。詳細については、Auto Scaling ユーザーガイドの「スケーリングポリシータイプ」を参照してください。

Required: No

Type: String

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

ScalingAdjustment

インスタンス数の増分値。AdjustmentType プロパティは、AWS CloudFormation がこの数値を絶対数として解釈する(ExactCapacity 値が指定された場合)、指定の数値で容量を増加または減少させる (ChangeInCapacity 値が指定された場合)、あるいは既存の Auto Scaling グループサイズのパーセンテージとして増加または減少した容量を解釈するか (PercentChangeInCapacity 値が指定された場合)を決定します。 正の値の場合、現在のキャパシティーに追加され、負の値の場合、現在のキャパシティーから削除されます。正確な容量については、正の値を指定してください。

Required: Conditional。このプロパティは、ポリシータイプが SimpleScaling の場合に必要です。このプロパティは、他のポリシータイプではサポートされていません。

Type: Integer

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

StepAdjustments

超過アラームのサイズに基づいてスケールできるようになる調整セット。

Required: Conditional。このプロパティは、ポリシータイプが StepScaling の場合に必要です。このプロパティは、他のポリシータイプではサポートされていません。

Auto Scaling ScalingPolicy StepAdjustmentsType: リスト

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

TargetTrackingConfiguration

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

Required: Conditional。このプロパティは、ポリシータイプが TargetTrackingScaling の場合に必要です。このプロパティは、他のポリシータイプではサポートされていません。

Type: Auto Scaling ScalingPolicy TargetTrackingConfiguration

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

戻り値

Ref 関数の引数として AWS::AutoScaling::ScalingPolicy タイプを指定した場合、AWS CloudFormation からポリシーの Amazon リソースネーム (ARN) (arn:aws:autoscaling:us-east-2:123456789012:scalingPolicy:ab12c4d5-a1b2-a1b2-a1b2-ab12c4d56789:autoScalingGroupName/myStack-AutoScalingGroup-AB12C4D5E6:policyName/myStack-myScalingPolicy-AB12C4D5E6 など) が返されます。

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

シンプルなポリシータイプ

次の例は、トリガーされたときにインスタンス数が増えるシンプルなスケーリングポリシーです。

JSON

Copy
"SimpleScaling" : { "Type" : "AWS::AutoScaling::ScalingPolicy", "Properties" : { "AdjustmentType" : "ChangeInCapacity", "PolicyType" : "SimpleScaling", "Cooldown" : "60", "AutoScalingGroupName" : { "Ref" : "ASG" }, "ScalingAdjustment" : 1 } }

YAML

Copy
SimpleScaling: Type: "AWS::AutoScaling::ScalingPolicy" Properties: AdjustmentType: "ChangeInCapacity" PolicyType: "SimpleScaling" Cooldown: "60" AutoScalingGroupName: Ref: "ASG" ScalingAdjustment: 1

ステップポリシータイプ

次の例は、超過アラームのサイズに応じて、インスタンス数が 1 または 2 増えるステップスケーリングポリシーです。しきい値より 50 ユニット超少ない超過の場合、ポリシーによりインスタンス数が 1 増えます。しきい値より 50 ユニット以上多い超過の場合、このポリシーによりインスタンス数が 2 増えます。

JSON

Copy
"StepScaling" : { "Type" : "AWS::AutoScaling::ScalingPolicy", "Properties" : { "AdjustmentType" : "ChangeInCapacity", "AutoScalingGroupName" : { "Ref" : "ASG" }, "PolicyType" : "StepScaling", "MetricAggregationType" : "Average", "EstimatedInstanceWarmup" : "60", "StepAdjustments": [ { "MetricIntervalLowerBound": "0", "MetricIntervalUpperBound" : "50", "ScalingAdjustment": "1" }, { "MetricIntervalLowerBound": "50", "ScalingAdjustment": "2" } ] } }

YAML

Copy
StepScaling: Type: "AWS::AutoScaling::ScalingPolicy" Properties: AdjustmentType: "ChangeInCapacity" AutoScalingGroupName: Ref: "ASG" PolicyType: "StepScaling" MetricAggregationType: "Average" EstimatedInstanceWarmup: "60" StepAdjustments: - MetricIntervalLowerBound: "0" MetricIntervalUpperBound: "50" ScalingAdjustment: "1" - MetricIntervalLowerBound: "50" ScalingAdjustment: "2"

ターゲット追跡スケーリングポリシータイプ

以下の例は、ASGAverageCPUUtilization メトリクスに基づくターゲット追跡スケーリングポリシーです。

JSON

Copy
{ "AWSTemplateFormatVersion" : "2010-09-09", "Parameters" : { "AMI" : { "Type" : "String" }, "Subnets": { "Type" : "CommaDelimitedList" }, "AZs": { "Type" : "CommaDelimitedList" }, "PolicyTargetValue": { "Type" : "String" } }, "Resources" : { "LC" : { "Type" : "AWS::AutoScaling::LaunchConfiguration", "Properties" : { "ImageId" : { "Ref" : "AMI" }, "InstanceType" : "t2.large" } }, "POL" : { "Type" : "AWS::AutoScaling::ScalingPolicy", "Properties" : { "AutoScalingGroupName" : { "Ref" : "ASG" }, "PolicyType" : "TargetTrackingScaling", "TargetTrackingConfiguration": { "PredefinedMetricSpecification": { "PredefinedMetricType": "ASGAverageCPUUtilization" }, "TargetValue": {"Ref": "PolicyTargetValue"} } } }, "ASG" : { "Type" : "AWS::AutoScaling::AutoScalingGroup", "Properties" : { "MaxSize" : "1", "AvailabilityZones": { "Ref": "AZs" }, "VPCZoneIdentifier": { "Ref" : "Subnets" }, "MinSize" : "0", "DesiredCapacity" : "0", "LaunchConfigurationName" : { "Ref" : "LC" } } } } }

YAML

Copy
AWSTemplateFormatVersion: 2010-09-09 Parameters: AMI: Type: String Subnets: Type: CommaDelimitedList AZs: Type: CommaDelimitedList PolicyTargetValue: Type: String Resources: LC: Type: 'AWS::AutoScaling::LaunchConfiguration' Properties: ImageId: !Ref AMI InstanceType: t2.large POL: Type: 'AWS::AutoScaling::ScalingPolicy' Properties: AutoScalingGroupName: !Ref ASG PolicyType: TargetTrackingScaling TargetTrackingConfiguration: PredefinedMetricSpecification: PredefinedMetricType: ASGAverageCPUUtilization TargetValue: !Ref PolicyTargetValue ASG: Type: 'AWS::AutoScaling::AutoScalingGroup' Properties: MaxSize: '1' AvailabilityZones: !Ref AZs VPCZoneIdentifier: !Ref Subnets MinSize: '0' DesiredCapacity: '0' LaunchConfigurationName: !Ref LC

このページの内容: