AWS CloudFormation
ユーザーガイド (API バージョン 2010-05-15)

AWS::AutoScaling::AutoScalingGroup

Amazon EC2 Auto Scaling グループを作成します。

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

構文

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

JSON

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

プロパティ

AutoScalingGroupName

Auto Scaling グループの名前。

最小長は 1 です。最大長は 255 です。次のパターンに従っている必要があります。[\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*

Required: No

Type: 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 が成功基準として使用されません。ただし、スポット価格が一致すると、Amazon EC2 Auto Scaling はグループのターゲット容量として DesiredCapacity を使用します。

Required: No

Type: String

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

HealthCheckGracePeriod

新しい EC2 インスタンスがサービス状態になってから、Amazon 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.InstanceIdLaunchConfigurationNameLaunchTemplate、または MixedInstancesPolicy のうち、1 つを指定する必要があります。

Type: String

更新に伴う要件: 置換

LaunchConfigurationName

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

注記

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

Required: Conditional.InstanceIdLaunchConfigurationNameLaunchTemplate、または MixedInstancesPolicy のうち、1 つを指定する必要があります。

Type: String

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

重要

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

LaunchTemplate

インスタンスの起動に使用する起動テンプレート。

Required: Conditional.InstanceIdLaunchConfigurationNameLaunchTemplate、または MixedInstancesPolicy のうち、1 つを指定する必要があります。

タイプ: LaunchTemplateSpecification

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

重要

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

LifecycleHookSpecificationList

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

Required: No

タイプ: LifecycleHookSpecification のリスト

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

LoadBalancerNames

この Auto Scaling グループに関連付けられている クラシックロードバランサー のリスト。Application Load Balancer または Network Load Balancer を指定するには、代わりに TargetGroupARNs を使用します。

Required: No

Type: List of String values

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

MaxSize

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

Required: Yes

Type: String

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

MetricsCollection

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

Required: No

タイプ: Amazon EC2 Auto Scaling AutoScalingGroup MetricsCollection のリスト

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

MinSize

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

Required: Yes

Type: String

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

MixedInstancesPolicy

インスタンスの起動に使用する混合インスタンスポリシー。

Required: Conditional.InstanceIdLaunchConfigurationNameLaunchTemplate、または MixedInstancesPolicy のうち、1 つを指定する必要があります。

タイプ: MixedInstancesPolicy

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

NotificationConfigurations

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

Required: No

タイプ: Amazon EC2 Auto Scaling AutoScalingGroup NotificationConfiguration のリスト

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

PlacementGroup

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

Required: No

Type: String

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

ServiceLinkedRoleARN

Auto Scaling グループがユーザーの代わりに他の AWS のサービスを呼び出すために使用する、サービスにリンクされたロールの Amazon リソースネーム (ARN)。デフォルトでは、Auto Scaling は AWSServiceRoleForAutoScaling というサービスにリンクされたロールを使用します。このロールは存在しない場合に作成します。

長さの制限: 最小長は 1 です。最大長は 1600 です。

パターン: [\u0020-\uD7FF\uE000-\uFFFD\uD800\uDC00-\uDBFF\uDFFF\r\n\t]*

Required: No

Type: String

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

Tags

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

Required: No

タイプ: Amazon EC2 Auto Scaling AutoScalingGroup TagProperty のリスト

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

TargetGroupARNs

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

Required: No

Type: List of String values

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

TerminationPolicies

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

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

Required: No

Type: List of String values

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

VPCZoneIdentifier

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

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

詳細については、Amazon EC2 Auto Scaling ユーザーガイド の「VPC での Auto Scaling インスタンスの起動」を参照してください。

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

Type: List of String values

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

注記

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

戻り値

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

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

{ "Ref": "MyASGroup" }

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

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

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

JSON

"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

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 つの属性が含まれます。

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

JSON

"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

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"

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