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

AWS::AutoScaling::AutoScalingGroup

AWS::AutoScaling::AutoScalingGroup タイプは Auto Scaling グループ を作成します。

UpdatePolicy 属性を Auto Scaling グループに追加して、Auto Scaling グループの起動設定またはサブネットグループメンバーシップを変更した場合のローリング更新の実行方法を制御できます。

構文

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

JSON

Copy
{ "Type" : "AWS::AutoScaling::AutoScalingGroup", "Properties" : { "AvailabilityZones" : [ String, ... ], "Cooldown" : String, "DesiredCapacity" : String, "HealthCheckGracePeriod" : Integer, "HealthCheckType" : String, "InstanceId" : String, "LaunchConfigurationName" : String, "LifecycleHookSpecificationList" : [ LifecycleHookSpecification, ... ], "LoadBalancerNames" : [ String, ... ], "MaxSize" : String, "MetricsCollection" : [ MetricsCollection, ... ], "MinSize" : String, "NotificationConfigurations" : [ NotificationConfiguration, ... ], "PlacementGroup" : String, "Tags" : [ TagProperty, ... ], "TargetGroupARNs" : [ String, ... ], "TerminationPolicies" : [ String, ... ], "VPCZoneIdentifier" : [ String, ... ] } }

プロパティ

AvailabilityZones

グループのアベイラビリティーゾーンのリストが含まれます.

Required: Conditional。VPCZoneIdentifier プロパティを指定しない場合は、このプロパティを指定する必要があります。

Type: List of String values

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

Cooldown

規模の拡大や縮小の完了後、次の規模の拡大や縮小が開始できるようになるまでの秒数。

Required: No

Type: String

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

DesiredCapacity

Auto Scaling グループに対して希望する容量を指定します。

この Auto Scaling グループの AWS::AutoScaling::LaunchConfigurationSpotPrice が設定されていないと、Auto Scaling は DesiredCapacity に基づいてインスタンスのオンラインへの読み込みを開始します。CloudFormation は、必要な容量に達するまで、Auto Scaling グループを成功とマーク (ステータスを CREATE_COMPLETE に設定) しません。

SpotPrice設定されている場合には、スポット価格が一致する場合のみインスタンスが開始されるため、DesiredCapacity が成功基準として使用されません。ただし、スポット価格が一致すると、Auto Scaling はグループのターゲット容量として DesiredCapacity を使用します。

Required: No

Type: String

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

HealthCheckGracePeriod

新しい EC2 インスタンスがサービス状態になってから、Auto Scaling がヘルスチェックを開始するまでの秒数。

Required: No

Type: Integer

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

HealthCheckType

ヘルスステータスを取得するサービス (Amazon EC2 または Elastic Load Balancing)。有効な値は EC2 または ELB です。

Required: No

Type: String

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

InstanceId

Auto Scaling グループの作成に使用する Amazon EC2 インスタンスの ID。起動設定の代わりに既存の Amazon EC2 インスタンスを使用する Auto Scaling グループを作成する場合は、このプロパティを使用します。

Amazon EC2 インスタンスを使用して Auto Scaling グループを作成すると、最初に新しい起動設定が作成されて、Auto Scaling グループに関連付けられます。新しい起動設定では、BlockDeviceMapping および AssociatePublicIpAddress を除くすべてのプロパティがインスタンスから取得されます。

Required: Conditional。LaunchConfigurationName プロパティを指定しない場合は、このプロパティを指定する必要があります。

Type: String

更新に伴う要件: 置換

LaunchConfigurationName

関連する AWS::AutoScaling::LaunchConfiguration リソースの名前を指定します。

注記

このリソースにパブリック IP アドレスが割り当てられており、同じテンプレートに定義されている VPC が関連付けられている場合は、DependsOn 属性を使用して VPC ゲートウェイのアタッチメントへの依存関係を宣言する必要があります。詳細については、「DependsOn 属性」を参照してください。

必須: 条件による。InstanceId プロパティを指定しない場合は、このプロパティを指定する必要があります。

Type: String

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

重要

LaunchConfigurationName を更新しても、既存の Amazon EC2 インスタンスが最初の起動時の設定で引き続き実行されます。既存のインスタンスを更新するには、この Auto Scaling グループに対する更新ポリシー属性を指定します。詳細については、「UpdatePolicy」を参照してください。

LifecycleHookSpecificationList

グループのライフサイクルフックは、Auto Scaling がインスタンスを起動または終了するときに実行するアクションを指定します。 詳細については、Auto Scaling ユーザーガイドAuto Scaling ライフサイクルフックを参照してください。

Required: No

: Auto Scaling AutoScalingGroup LifecycleHookSpecification のリスト

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

LoadBalancerNames

この Auto Scaling グループに関連付けられているクラシックロードバランサーの一覧。 アプリケーションロードバランサー を指定するには、TargetGroupARNs を使用します。

Required: No

Type: List of String values

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

MaxSize

Auto Scaling グループの最大サイズ。

Required: Yes

Type: String

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

MetricsCollection

Auto Scaling グループのグループメトリクスのモニタリングを有効にします。

Required: No

: Auto Scaling AutoScalingGroup MetricsCollection のリスト

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

MinSize

Auto Scaling グループの最小サイズ。

Required: Yes

Type: String

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

NotificationConfigurations

指定されたイベントが発生したときに通知を送信する Auto Scaling グループを設定する、埋め込みプロパティ。

Required: No

: Auto Scaling AutoScalingGroup NotificationConfiguration のリスト

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

PlacementGroup

インスタンスを起動する既存のクラスタープレイスメントグループの名前。プレイスメントグループは、単一のアベイラビリティーゾーン内のインスタンスを論理的にグループ化したものです。複数のアベイラビリティーゾーンとプレイスメントグループを指定することはできません。

Required: No

Type: String

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

Tags

このリソースにアタッチする Auto Scaling タグ。 Auto Scaling タグの詳細については、Auto Scaling ユーザーガイドAuto Scaling グループと Amazon EC2 インスタンスのタグ付けを参照してください。

Required: No

: Auto Scaling AutoScalingGroup TagProperty のリスト

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

TargetGroupARNs

Auto Scaling グループに関連付けられるターゲットグループの Amazon Resource Names (ARN) の一覧。

Required: No

Type: List of String values

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

TerminationPolicies

終了するインスタンスを選択するためのポリシー、またはポリシーのリスト。ポリシーはリストに指定した順序で実行されます。

Auto Scaling グループに対する終了ポリシーの設定に関する詳細については、Auto Scaling ユーザーガイドの「Auto Scaling グループのインスタンス終了ポリシー」を参照してください。

Required: No

Type: List of String values

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

VPCZoneIdentifier

Amazon Virtual Private Cloud (Amazon VPC) のサブネット識別子のリスト。

AvailabilityZones を指定する場合、このプロパティに指定するサブネットは、これらのアベイラビリティーゾーンにある必要があります。

詳細については、Auto Scaling ユーザーガイドの「VPC 内での EC2 ハードウェア専用インスタンスの使用」を参照してください。

Required: Conditional。AvailabilityZones プロパティを指定しない場合は、このプロパティを指定する必要があります。

Type: List of String values

更新に伴う要件: 一時的な中断。

注記

VPCZoneIdentifier を更新すると、インスタンスは置き換えられますが、Auto Scaling グループは置き換えられません。

戻り値

このリソースの論理 ID が Ref 組み込み関数に提供されると、Ref によりリソース名が返されます。

次のサンプルでは、Ref 関数は MyASGroup Auto Scaling グループの名前 (mystack-myasgroup-NT5EUXTNTXXD など) を返します。

Copy
{ "Ref": "MyASGroup" }

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

他の Auto Scalingの例については、「Auto Scaling テンプレートスニペット」を参照してください。

Elastic Load Balancing のロードバランサー、起動設定、およびメトリクスコレクションを使用する Auto Scaling グループ。

JSON

Copy
"WebServerGroup" : { "Type" : "AWS::AutoScaling::AutoScalingGroup", "Properties" : { "AvailabilityZones" : { "Fn::GetAZs" : "" }, "LaunchConfigurationName" : { "Ref" : "LaunchConfig" }, "MinSize" : "2", "MaxSize" : "2", "LoadBalancerNames" : [ { "Ref" : "ElasticLoadBalancer" } ], "MetricsCollection": [ { "Granularity": "1Minute", "Metrics": [ "GroupMinSize", "GroupMaxSize" ] } ] } }

YAML

Copy
WebServerGroup: Type: "AWS::AutoScaling::AutoScalingGroup" Properties: AvailabilityZones: Fn::GetAZs: "" LaunchConfigurationName: Ref: "LaunchConfig" MinSize: "2" MaxSize: "2" LoadBalancerNames: - Ref: "ElasticLoadBalancer" MetricsCollection: - Granularity: "1Minute" Metrics: - "GroupMinSize" - "GroupMaxSize"

Auto Scaling グループのバッチ更新インスタンス

以下の例では、UpdatePolicy 属性を含めて更新を設定する方法を示します。属性には、AutoScalingRollingUpdate 埋め込みオブジェクトと、更新ポリシー設定を指定する 3 つの属性が含まれます。

Copy
"ASG1" : { "UpdatePolicy" : { "AutoScalingRollingUpdate" : { "MinInstancesInService" : "1", "MaxBatchSize" : "1", "PauseTime" : "PT12M5S" } }, "Type" : "AWS::AutoScaling::AutoScalingGroup", "Properties" : { "AvailabilityZones" : { "Fn::GetAZs" : { "Ref" : "AWS::Region" } }, "LaunchConfigurationName" : { "Ref" : "ASLC" }, "MaxSize" : "3", "MinSize" : "1" } }

Auto Scaling グループが新しいインスタンスからのシグナルを待機する

以下の例で、Auto Scaling グループは新しい Amazon EC2 インスタンスがシグナルを送ってくるのを待ってから、次のバッチの更新に進みます。UpdatePolicy 属性で、WaitOnResourceSignals フラグが true に設定されます。各インスタンスが Auto Scaling グループにシグナルを送信するために cfn-signal ヘルパースクリプトを使用できます。

JSON

Copy
"ASG1" : { "UpdatePolicy" : { "AutoScalingRollingUpdate" : { "MinInstancesInService" : "1", "MaxBatchSize" : "1", "PauseTime" : "PT12M5S", "WaitOnResourceSignals" : "true" } }, "Type" : "AWS::AutoScaling::AutoScalingGroup", "Properties" : { "AvailabilityZones" : { "Fn::GetAZs" : { "Ref" : "AWS::Region" } }, "LaunchConfigurationName" : { "Ref" : "ASLC" }, "MaxSize" : "3", "MinSize" : "1" } }

YAML

Copy
ASG1: UpdatePolicy: AutoScalingRollingUpdate: MinInstancesInService: "1" MaxBatchSize: "1" PauseTime: "PT12M5S" WaitOnResourceSignals: "true" Type: "AWS::AutoScaling::AutoScalingGroup" Properties: AvailabilityZones: Fn::GetAZs: Ref: "AWS::Region" LaunchConfigurationName: Ref: "ASLC" MaxSize: "3" MinSize: "1"

以下の資料も参照してください。