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

AWS::AutoScaling::LaunchConfiguration

Auto Scaling グループが Amazon EC2 インスタンスを設定するために使用できる Amazon EC2 Auto Scaling 起動設定を指定します。

重要

起動設定を更新すると、AWS CloudFormation によってそのリソースが削除され、更新後のプロパティと新しい名前を使用して新しい起動設定が作成されます。この更新アクションによって、Auto Scaling グループで実行中の Amazon EC2 インスタンスに変更が適用されることはありません。つまり、新しい起動設定を Auto Scaling グループに関連付けた後、すべての新しいインスタンスは更新後の設定を取得しますが、既存のインスタンスは起動された当初の設定のままで実行されます。これは、起動設定を使用する他の Auto Scaling グループと同じように機能します。

LaunchConfiguration リソースの更新時に既存のインスタンスを更新する場合は、Auto Scaling グループの UpdatePolicy 属性を指定する必要があります。AWS::AutoScaling::AutoScalingGroup ドキュメントの「」のセクションに、ローリング更新の更新ポリシーのサンプルがあります。

詳細については、Amazon EC2 Auto Scaling API リファレンスの「CreateLaunchConfiguration」、および Amazon EC2 Auto Scaling ユーザーガイドの「起動設定」を参照してください。

構文

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

JSON

{ "Type" : "AWS::AutoScaling::LaunchConfiguration", "Properties" : { "AssociatePublicIpAddress" : Boolean, "BlockDeviceMappings" : [ BlockDeviceMapping, ... ], "ClassicLinkVPCId" : String, "ClassicLinkVPCSecurityGroups" : [ String, ... ], "EbsOptimized" : Boolean, "IamInstanceProfile" : String, "ImageId" : String, "InstanceId" : String, "InstanceMonitoring" : Boolean, "InstanceType" : String, "KernelId" : String, "KeyName" : String, "LaunchConfigurationName" : String, "PlacementTenancy" : String, "RamDiskId" : String, "SecurityGroups" : [ String, ... ], "SpotPrice" : String, "UserData" : String } }

YAML

Type: AWS::AutoScaling::LaunchConfiguration Properties: AssociatePublicIpAddress: Boolean BlockDeviceMappings: - BlockDeviceMapping ClassicLinkVPCId: String ClassicLinkVPCSecurityGroups: - String EbsOptimized: Boolean IamInstanceProfile: String ImageId: String InstanceId: String InstanceMonitoring: Boolean InstanceType: String KernelId: String KeyName: String LaunchConfigurationName: String PlacementTenancy: String RamDiskId: String SecurityGroups: - String SpotPrice: String UserData: String

プロパティ

AssociatePublicIpAddress

Virtual Private Cloud (VPC) でインスタンスを起動するグループに使用されます。各インスタンスにパブリック IP アドレスを割り当てるかどうかを指定します。true を指定すると、Auto Scaling グループの各インスタンスは一意のパブリック IP アドレスを受け取ります。

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

デフォルト: インスタンスがデフォルトのサブネットで起動された場合、デフォルトではパブリック IP アドレスが割り当てられます。インスタンスがデフォルト以外のサブネットで起動された場合、デフォルトではパブリック IP アドレスが割り当てられません。

注記

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

必須: いいえ

タイプ: ブール値

Update requires: Replacement

BlockDeviceMappings

ブロックデバイスをインスタンスに公開する方法を指定します。仮想デバイスと EBS ボリュームを指定できます。

必須: いいえ

タイプ: BlockDeviceMapping のリスト

Update requires: Replacement

ClassicLinkVPCId

EC2-Classic インスタンスをリンクする ClassicLink が有効な VPC の ID。

詳細については、Amazon EC2 Linux インスタンス用ユーザーガイドの「ClassicLink」、および Amazon EC2 Auto Scaling ユーザーガイドの「VPC への EC2-Classic インスタンスのリンク」を参照してください。

このプロパティは、EC2-Classic インスタンスを起動している場合にのみ使用できます。

必須: いいえ

タイプ: 文字列

最小: 1

最大: 255

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

Update requires: Replacement

ClassicLinkVPCSecurityGroups

ClassicLinkVPCId プロパティに指定した VPC の 1 つ以上のセキュリティグループの ID。

ClassicLinkVPCId プロパティを指定する場合は、このプロパティを指定する必要があります。

必須: 条件付き

タイプ: 文字列のリスト

Update requires: Replacement

EbsOptimized

起動設定を EBS I/O 用に最適化する (true) か最適化しない (false) かを指定します。この最適化によって、Amazon EBS に特化したスループットが得られ、また、最適化された設定スタックによって EBS I/O パフォーマンスが最大限に引き出されます。デフォルトで EBS 最適化が行われないインスタンスタイプの EBS 最適化を有効にすると、追加料金が発生します。詳細については、Amazon EC2 Linux インスタンス用ユーザーガイドの「EBS – 最適化インスタンス」を参照してください。

デフォルト値は false です。

必須: いいえ

タイプ: ブール値

Update requires: Replacement

IamInstanceProfile

名前か、インスタンスの IAM ロールに関連付けられているインスタンスプロファイルの Amazon リソースネーム (ARN) を指定します。インスタンスプロファイルには、IAM ロールが含まれています。

詳細については、Amazon EC2 Auto Scaling ユーザーガイドの「Amazon EC2 インスタンスで実行されるアプリケーションに対する IAM ロール」を参照してください。

必須: いいえ

タイプ: 文字列

最小: 1

最大: 1600

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

Update requires: Replacement

ImageId

登録時に割り当てられた Amazon Machine Image (AMI) の一意の ID が指定されます。詳細については、Amazon EC2 Linux インスタンス用ユーザーガイドの「AMI の検索」を参照してください。

必須: はい

タイプ: 文字列

最小: 1

最大: 255

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

Update requires: Replacement

InstanceId

起動設定の作成に使用する Amazon EC2 インスタンスの ID。起動設定が既存の Amazon EC2 インスタンスから設定を使用する場合には、このプロパティを使用します。

インスタンスを使用して起動設定を作成した場合には、プロパティはすべて、そのインスタンスから取得されます。ただし、BlockDeviceMappingAssociatePublicIpAddress は除きます。インスタンスから取得したプロパティは、起動設定で指定することによってオーバーライドできます。

必須: いいえ

タイプ: 文字列

Update requires: Replacement

InstanceMonitoring

このグループのインスタンスを詳細モニタリングで起動するか (true)、基本モニタリングで起動するか (false) を制御します。デフォルト値は true (有効) です。

重要

詳細モニタリングを有効にすると、Amazon CloudWatch によって各分ごとにメトリクスが生成され、アカウントに料金が発生します。詳細モニタリングを無効にすると、CloudWatch は 5 分ごとにメトリクスを生成します。詳細については、Amazon EC2 Auto Scaling ユーザーガイドの「Auto Scaling インスタンスのモニタリングの設定」を参照してください。

必須: いいえ

タイプ: ブール値

Update requires: Replacement

InstanceType

EC2 インスタンスのインスタンスタイプが指定されます。利用可能なインスタンスタイプの詳細については、Amazon EC2 Linux インスタンス用ユーザーガイドの「利用可能なインスタンスタイプ」を参照してください。

必須: はい

タイプ: 文字列

最小: 1

最大: 255

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

Update requires: Replacement

KernelId

EC2 AMI に関連付けられているカーネルの ID を指定します。

注記

カーネルと RAM ディスクではなく PV-GRUB を使用することをお勧めします。詳細については、Amazon EC2 Linux インスタンス用ユーザーガイドの「ユーザー提供カーネル」を参照してください。

必須: いいえ

タイプ: 文字列

最小: 1

最大: 255

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

Update requires: Replacement

KeyName

EC2 のキーペアの名前を指定します。

重要

キーペアを指定しない場合は、ユーザーが別の方法でログインすることを許可するように設定された AMI を選択した場合を除き、インスタンスに接続することはできません。キーペアの作成については、Amazon EC2 Linux インスタンス用ユーザーガイドの「Amazon EC2 のキーペア」を参照してください。

必須: いいえ

タイプ: 文字列

最小: 1

最大: 255

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

Update requires: Replacement

LaunchConfigurationName

起動設定の名前。この名前はリージョンごと、アカウントごとに一意である必要があります。

必須: いいえ

タイプ: 文字列

最小: 1

最大: 255

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

Update requires: Replacement

PlacementTenancy

インスタンスのテナンシー (default または dedicated)。テナンシーが dedicated のインスタンスは、独立したシングルテナントハードウェアで実行され、VPC でのみ起動できます。ハードウェア専有インスタンスを共有テナンシー VPC (インスタンスのプレイスメントテナンシー属性をデフォルトに設定した VPC) で起動するには、このプロパティの値を dedicated に設定する必要があります。

このプロパティを指定する場合は、AutoScalingGroup リソースの VPCZoneIdentifier プロパティで 1 つ以上のサブネットを指定する必要があります。

詳細については、Amazon EC2 Auto Scaling ユーザーガイドの「インスタンスのプレイスメントテナンシー」を参照してください。

必須: いいえ

タイプ: 文字列

最小: 1

最大: 64

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

Update requires: Replacement

RamDiskId

選択する RAM ディスクの ID。

注記

カーネルと RAM ディスクではなく PV-GRUB を使用することをお勧めします。詳細については、Amazon EC2 Linux インスタンス用ユーザーガイドの「ユーザー提供カーネル」を参照してください。

必須: いいえ

タイプ: 文字列

最小: 1

最大: 255

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

Update requires: Replacement

SecurityGroups

Auto Scaling グループのインスタンスに割り当てるセキュリティグループが含まれるリスト。リストには、既存のセキュリティグループの ID、またはテンプレートで作成した SecurityGroup リソースのリファレンスを含めることができますが、両方を含めることはできません。

詳細については、Amazon Virtual Private Cloud ユーザーガイドの「VPC のセキュリティグループ」を参照してください。

必須: いいえ

タイプ: 文字列のリスト

Update requires: Replacement

SpotPrice

リクエストを満たすために起動されたスポットインスタンスに対して支払われる最大時間料金。指定した料金が現在のスポット市場料金を超えると、スポットインスタンスが起動します。詳細については、Amazon EC2 Auto Scaling ユーザーガイドの「Auto Scaling グループのスポットインスタンスの起動」を参照してください。

スポット料金が設定されている場合、Auto Scaling グループの DesiredCapacity の設定に関係なく、スポット料金が満たされたときにのみ Auto Scaling グループが起動します。

注記

新しい起動設定を作成することによってスポット料金を変更すると、実行中のインスタンスは、それらに対して設定されているスポット料金が現在のスポット市場料金を上回っている限り、継続して実行されます。

必須: いいえ

タイプ: 文字列

最小: 1

最大: 255

Update requires: Replacement

UserData

起動した EC2 インスタンスが利用できるユーザーデータ。

詳細については、Amazon EC2 Linux インスタンス用ユーザーガイドの「インスタンスメタデータとユーザーデータ」を参照してください。

必須: いいえ

タイプ: 文字列

最大: 21847

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

Update requires: Replacement

戻り値

Ref

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

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

以下の例では、Auto Scaling グループが Amazon EC2 インスタンスを設定するために使用できる起動設定を作成します。

ブロックデバイスマッピングに関する起動設定

この例は、2 つのデバイスをリストする BlockDeviceMappings プロパティを使用した起動設定を示しています。50 ギガバイトの EBS ルートボリュームが /dev/sda1 にマップされ、100 ギガバイトの EBS ボリュームが /dev/sdm にマップされます。/dev/sdm ボリュームは、リージョンに基づいてデフォルトの EBS ボリュームタイプを使用し、接続されているインスタンスの終了時に削除されません。

JSON

{ "myLaunchConfig":{ "Type":"AWS::AutoScaling::LaunchConfiguration", "Properties":{ "KeyName":{ "Ref":"KeyName" }, "ImageId":{ "Fn::FindInMap":[ "AWSRegionArch2AMI", { "Ref":"AWS::Region" }, { "Fn::FindInMap":[ "AWSInstanceType2Arch", { "Ref":"InstanceType" }, "Arch" ] } ] }, "UserData":{ "Fn::Base64":{ "Ref":"WebServerPort" } }, "SecurityGroups":[ { "Ref":"InstanceSecurityGroup" } ], "InstanceType":{ "Ref":"InstanceType" }, "BlockDeviceMappings":[ { "DeviceName":"/dev/sda1", "Ebs":{ "VolumeSize":"50", "VolumeType":"io1", "Iops":200 } }, { "DeviceName":"/dev/sdm", "Ebs":{ "VolumeSize":"100", "DeleteOnTermination":"false" } } ] } } }

YAML

myLaunchConfig: Type: AWS::AutoScaling::LaunchConfiguration Properties: KeyName: Ref: "KeyName" ImageId: Fn::FindInMap: - "AWSRegionArch2AMI" - Ref: "AWS::Region" - Fn::FindInMap: - "AWSInstanceType2Arch" - Ref: "InstanceType" - "Arch" UserData: Fn::Base64: Ref: "WebServerPort" SecurityGroups: - Ref: "InstanceSecurityGroup" InstanceType: Ref: "InstanceType" BlockDeviceMappings: - DeviceName: "/dev/sda1" Ebs: VolumeSize: "50" VolumeType: "io1" Iops: 200 - DeviceName: "/dev/sdm" Ebs: VolumeSize: "100" DeleteOnTermination: "false"

スポット料金に関する起動設定

この例は、Auto Scaling グループ内のスポットインスタンスを起動する起動設定を示しています。この起動設定は、現在のスポット市場料金がテンプレート仕様の料金 (0.05) より低い場合にのみアクティブになります。

JSON

{ "myLaunchConfig":{ "Type":"AWS::AutoScaling::LaunchConfiguration", "Properties":{ "KeyName":{ "Ref":"KeyName" }, "ImageId":{ "Fn::FindInMap":[ "AWSRegionArch2AMI", { "Ref":"AWS::Region" }, { "Fn::FindInMap":[ "AWSInstanceType2Arch", { "Ref":"InstanceType" }, "Arch" ] } ] }, "SecurityGroups":[ { "Ref":"InstanceSecurityGroup" } ], "SpotPrice":"0.05", "InstanceType":{ "Ref":"InstanceType" } } } }

YAML

myLaunchConfig: Type: AWS::AutoScaling::LaunchConfiguration Properties: KeyName: Ref: "KeyName" ImageId: Fn::FindInMap: - "AWSRegionArch2AMI" - Ref: "AWS::Region" - Fn::FindInMap: - "AWSInstanceType2Arch" - Ref: "InstanceType" - "Arch" SecurityGroups: - Ref: "InstanceSecurityGroup" SpotPrice: "0.05" InstanceType: Ref: "InstanceType"

IAM インスタンスプロファイルに関する起動設定

この例は、IamInstanceProfile プロパティを使用する起動設定を示しています。AWS::AutoScaling::LaunchConfiguration の設定のみを示しています。ここで RootInstanceProfile として参照されている InstanceProfile オブジェクトの定義とそのリファレンスを含む完全なテンプレートの例については、「auto_scaling_with_instance_profile.template」を参照してください。

JSON

{ "myLaunchConfig":{ "Type":"AWS::AutoScaling::LaunchConfiguration", "Properties":{ "ImageId":{ "Fn::FindInMap":[ "AWSRegionArch2AMI", { "Ref":"AWS::Region" }, { "Fn::FindInMap":[ "AWSInstanceType2Arch", { "Ref":"InstanceType" }, "Arch" ] } ] }, "InstanceType":{ "Ref":"InstanceType" }, "IamInstanceProfile":{ "Ref":"RootInstanceProfile" } } } }

YAML

myLaunchConfig: Type: AWS::AutoScaling::LaunchConfiguration Properties: ImageId: Fn::FindInMap: - "AWSRegionArch2AMI" - Ref: "AWS::Region" - Fn::FindInMap: - "AWSInstanceType2Arch" - Ref: "InstanceType" - "Arch" InstanceType: Ref: "InstanceType" IamInstanceProfile: Ref: "RootInstanceProfile"

プロビジョンド IOPS EBS ボリュームを使用する起動設定

この例は、プロビジョニングされた IOPS EBS 最適化ボリュームを使用してインスタンスを起動するように EbsOptmized プロパティを設定する起動設定を示しています。これにより、EBS-Backed インスタンスのパフォーマンスを向上させることができます。

注記

デフォルトで EBS 最適化が行われないインスタンスの場合は、EBS 最適化を有効にして、Amazon Elastic Compute Cloud ユーザーガイドのドキュメント「Amazon EBS – 最適化インスタンス」で説明されているレベルのパフォーマンスを達成する必要があります。現行世代のインスタンスタイプの場合、EBS 最適化はデフォルトで有効になっており、追加料金は発生しません。デフォルトで EBS 最適化が行われない前世代のインスタンスタイプの EBS 最適化を有効にすると、追加料金が発生します。

このような起動設定を使用する場合、m1.large インスタンスには、AMI で指定したプロビジョンド IOPS 設定を使用して最適化された EBS ルートボリュームが含まれます。起動設定で IOPS 設定を指定することはできないため、目的の IOPS 数を指定するブロックデバイスマッピングで AMI を設定する必要があります。以下は、この EBS 最適化インスタンス設定のキー属性です。

  • インスタンスタイプ m1.large 以上。EBS 最適化には、これが必須です。この最適化は、特定のインスタンスタイプとサイズでのみ使用できます。

  • ボリュームタイプ io1 の EBS-Backed AMI、およびボリュームにプロビジョンする IOPS の数。

  • EBS ボリュームのサイズは、必要な IOPS に沿った値とする必要があります。IOPS とギビバイト (GiB) のストレージの比率は 50:1 です。

プロビジョンド IOPS ボリュームを使用した IOPS のパフォーマンスの詳細については、Amazon Elastic Compute Cloud ユーザーガイドの「プロビジョンド IOPS SSD (io1) ボリューム」を参照してください。

パフォーマンスに関するその他のヒントについては、Amazon Elastic Compute Cloud ユーザーガイドの「Linux インスタンスの Amazon EBS ボリュームのパフォーマンス」を参照してください。

JSON

{ "myLaunchConfig":{ "Type":"AWS::AutoScaling::LaunchConfiguration", "Properties":{ "KeyName":{ "Ref":"KeyName" }, "ImageId":"ami-7430ba44", "UserData":{ "Fn::Base64":{ "Ref":"WebServerPort" } }, "SecurityGroups":[ { "Ref":"InstanceSecurityGroup" } ], "InstanceType":"m1.large", "EbsOptimized":"true" } } }

YAML

myLaunchConfig: Type: AWS::AutoScaling::LaunchConfiguration Properties: KeyName: Ref: "KeyName" ImageId: "ami-7430ba44" UserData: Fn::Base64: Ref: "WebServerPort" SecurityGroups: - Ref: "InstanceSecurityGroup" InstanceType: "m1.large" EbsOptimized: "true"

このページの内容: