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

AWS::EC2::Instance

AWS::EC2::Instance リソースは EC2 インスタンスを作成します。

インスタンスに Elastic IP アドレスがアタッチされた場合、AWS CloudFormation はそのインスタンスを更新した後、Elastic IP アドレスを再度アタッチします。スタックの更新の詳細については、「AWS CloudFormation スタックの更新」を参照してください。

構文

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

JSON

Copy
{ "Type" : "AWS::EC2::Instance", "Properties" : { "Affinity" : String, "AvailabilityZone" : String, "BlockDeviceMappings" : [ EC2 Block Device Mapping, ... ], "DisableApiTermination" : Boolean, "EbsOptimized" : Boolean, "HostId" : String, "IamInstanceProfile" : String, "ImageId" : String, "InstanceInitiatedShutdownBehavior" : String, "InstanceType" : String, "Ipv6AddressCount" : Integer, "Ipv6Addresses" : [ IPv6 Address Type, ... ], "KernelId" : String, "KeyName" : String, "Monitoring" : Boolean, "NetworkInterfaces" : [ EC2 Network Interface, ... ], "PlacementGroupName" : String, "PrivateIpAddress" : String, "RamdiskId" : String, "SecurityGroupIds" : [ String, ... ], "SecurityGroups" : [ String, ... ], "SourceDestCheck" : Boolean, "SsmAssociations" : [ SSMAssociation, ... ], "SubnetId" : String, "Tags" : [ Resource Tag, ... ], "Tenancy" : String, "UserData" : String, "Volumes" : [ EC2 MountPoint, ... ], "AdditionalInfo" : String } }

YAML

Copy
Type: "AWS::EC2::Instance" Properties: Affinity: String AvailabilityZone: String BlockDeviceMappings: - EC2 Block Device Mapping DisableApiTermination: Boolean EbsOptimized: Boolean HostId: String IamInstanceProfile: String ImageId: String InstanceInitiatedShutdownBehavior: String InstanceType: String Ipv6AddressCount: Integer Ipv6Addresses: - IPv6 Address Type KernelId: String KeyName: String Monitoring: Boolean NetworkInterfaces: - EC2 Network Interface PlacementGroupName: String PrivateIpAddress: String RamdiskId: String SecurityGroupIds: - 文字列 SecurityGroups: - 文字列 SourceDestCheck: Boolean SsmAssociations: - SSMAssociation SubnetId: String Tags: - Resource Tag Tenancy: String UserData: String Volumes: - EC2 MountPoint AdditionalInfo: String

プロパティ

Affinity

Amazon Elastic Compute Cloud (Amazon EC2) が常にインスタンスを専用ホストに関連付けるかどうかを示します。Amazon EC2 が、常に起動時と同じホストでインスタンスを再起動 (停止した場合) するように設定する場合、host を指定します。Amazon EC2 がインスタンスを任意のホストで再起動するが、最後に実行されたインスタンスでの起動を試みる場合 (ベストエフォートベース)、default を指定します。

Required: No

Type: String

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

AvailabilityZone

インスタンスが配置されるアベイラビリティーゾーンの名前を指定します。

AWS のリージョンとアベイラビリティーゾーンの詳細については、Amazon EC2 ユーザーガイドの「リージョンとアベイラビリティーゾーン」を参照してください。

Required: No. 指定しない場合、リージョンの負荷分散基準に基づいて、アベイラビリティーゾーンが自動的に選択されます。

Type: String

更新に伴う要件: 置換

BlockDeviceMappings

一連の Amazon Elastic Block Store ブロックデバイスマッピングか、エフェメラルインスタンスストアブロックデバイスマッピング、またはその両方を定義します。詳細については、Linux インスタンス用 Amazon EC2 ユーザーガイドの「Amazon Elastic Block Store インスタンスストア」または「Amazon EC2 インスタンスストア」を参照してください。

Required: No

Type: Amazon EC2 ブロックデバイスマッピングプロパティ のリスト。

更新に伴う要件: 置換. 1 つ以上のブロックデバイスに対し、DeleteOnTermination プロパティのみを変更した場合、更新には No interruption が必要となります。

DisableApiTermination

API を介してインスタンスを終了できるかどうかを指定します。

Required: No

Type: Boolean

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

EbsOptimized

インスタンスが Amazon Elastic Block Store I/O 用に最適化されているかどうかを指定します。この最適化によって、Amazon EBS に特化したスループットが得られ、また、最適された設定スタックによって EBS の I/O パフォーマンスが最大限に引き出されます。

Amazon EBS 最適化インスタンスとして起動できるインスタンスタイプの詳細については、Amazon Elastic Compute Cloud User Guideの「Amazon EBS-最適化インスタンス」を参照してください。Amazon EBS 最適化インスタンスの使用時は追加料金が発生します。

Required: No. デフォルトでは、AWS CloudFormation は false を指定します。

Type: Boolean

更新に伴う要件:

  • Amazon EBS-backed インスタンスの 更新に伴う要件: 一時的な中断。

  • instance store-backed インスタンスの 更新に伴う要件: 置換

HostId

Affinity プロパティに host を指定した場合、インスタンスが関連付けられた専用ホストの ID。ID を指定しない場合、Amazon EC2 はアカウント内の互換性のある使用可能な任意の専用ホストでインスタンスを起動します。このタイプの起動は、ターゲットを絞らない起動と呼ばれます。ターゲットを絞らない起動の場合、インスタンスを正常に移動するには、互換性のある使用可能な専用ホストが必要です。

Required: No

Type: String

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

IamInstanceProfile

AWS::IAM::InstanceProfile リソースへのリファレンスまたはインスタンスプロファイルの物理 ID。

IAM ロールの詳細については、『AWS Identity and Access Management ユーザーガイド』の「ロールを使用する」を参照してください。

Required: No

Type: String

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

ImageId

登録時に割り当てられた Amazon Machine Image (AMI) の一意の ID が指定されます。

Required: Yes

Type: String

更新に伴う要件: 置換

InstanceInitiatedShutdownBehavior

インスタンスのオペレーティングシステムのシャットダウンコマンドからインスタンスをシャットダウンしたときに、インスタンスが停止または強制終了するかどうかを示します。stop または terminate を指定できます。詳細については、Amazon EC2 API Referenceの「RunInstances」コマンドを参照してください。

Required: No

Type: String

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

InstanceType

インスタンスタイプ (t2.micro など)。デフォルトのタイプは "m3.medium" です。インスタンスタイプの一覧については、「インスタンスファミリーとタイプ」を参照してください。

Required: No

Type: String

更新に伴う要件:

  • Amazon EBS-backed インスタンスの 更新に伴う要件: 一時的な中断。

  • instance store-backed インスタンスの 更新に伴う要件: 置換

Ipv6AddressCount

インスタンスのプライマリネットワークインターフェイスに関連付ける IPv6 アドレスの数。Amazon EC2 はサブネットの範囲から自動的に IPv6 アドレスを選択します。固有 IPv6 アドレスを指定するには、Ipv6Addresses のプロパティを使用し、このプロパティは指定しないでください。

インスタンスタイプが IPv6 アドレスをサポートする制限については、Amazon EC2 API ReferenceRunInstances アクションを参照してください。

Required: No

Type: Integer

更新に伴う要件: 置換

Ipv6Addresses

インスタンスのプライマリネットワークインターフェイスに関連付けるためのサブネットの IPv6 CIDR ブロック範囲からの 1 つ以上の IPv6 アドレス。IPv6 アドレスの数を指定するには、Ipv6AddressCountのプロパティを使用し、このプロパティは指定しないでください。

インスタンスタイプが IPv6 アドレスをサポートする制限の情報については、Amazon EC2 API ReferenceRunInstances アクションを参照してください。

Required: No

EC2 NetworkInterface Ipv6AddressesType: リスト

更新に伴う要件: 置換

KernelId

カーネル ID。

Required: No

Type: String

更新に伴う要件:

  • Amazon EBS-backed インスタンスの 更新に伴う要件: 一時的な中断。

  • instance store-backed インスタンスの 更新に伴う要件: 置換

KeyName

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

Required: No

Type: String

更新に伴う要件: 置換

Monitoring

インスタンスに対して詳細モニタリングを有効にするかどうかを指定します。

Required: No

Type: Boolean

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

NetworkInterfaces

このインスタンスに関連付けるネットワークインターフェイスを表す埋め込みオブジェクトのリスト。

注記

ネットワークインターフェイスを示すためにこのプロパティを使用する場合、新しいインターフェースを貼り付ける前に初期のインターフェースを終了し、正しく機能するためにそのインスタンスの更新ができるようにしてください。

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

Required: No

Type: EC2 NetworkInterface 埋め込みプロパティタイプ のリスト

更新に伴う要件: 置換

PlacementGroupName

起動したインスタンスの配置先となる既存のプレイスメントグループの名前 (クラスターインスタンスの場合)。

Required: No

Type: String

更新に伴う要件: 置換

PrivateIpAddress

このインスタンスのプライベート IP アドレス。

重要

置き換えが要求される更新をインスタンスに対して行った場合は、新しいプライベート IP アドレスを割り当てる必要があります。置き換え時は、新しいインスタンスが AWS CloudFormation によって作成されます。ただし、スタックが正常に更新されるまで古いインスタンスは削除されません。スタックの更新に失敗した場合、以前正常に動作していたときの状態にスタックをロールバックするために、AWS CloudFormation は古いインスタンスを使用します。古いインスタンスと新しいインスタンスに同じプライベート IP アドレスを割り当てることはできません。

(オプション) Amazon VPC を使用している場合、サブネットの範囲内の特定の IP アドレス (10.0.0.25 など) を、このパラメーターを使用してインスタンスに割り当てることができます。デフォルトでは、Amazon VPC はインスタンスのサブネットから IP アドレスを選択します。

Required: No

Type: String

更新に伴う要件: 置換

RamdiskId

選択する RAM ディスクの ID。一部のカーネルでは起動時に別途ドライバが必要となります。RAM ディスクを指定する必要があるかどうかについては、カーネルの要件を確認してください。カーネル要件を確認するには、AWS リソースセンターでカーネル ID を検索します。

Required: No

Type: String

更新に伴う要件:

  • Amazon EBS-backed インスタンスの 更新に伴う要件: 一時的な中断。

  • instance store-backed インスタンスの 更新に伴う要件: 置換

SecurityGroupIds

Amazon EC2 インスタンスに割り当てる VPC セキュリティグループのセキュリティグループ ID を含んだリスト。NetworkInterfaces プロパティを指定した場合、このプロパティは指定しないでください。

必須: 条件による。VPC セキュリティグループでは必須です。

Type: List of strings

更新に伴う要件:

  • 更新に伴う要件: 中断はありません。 (インスタンスが VPC に存在する場合)。

  • 更新に伴う要件: 置換 (インスタンスが VPC に存在しない場合)。

SecurityGroups

Amazon EC2 セキュリティグループでのみ有効です。Amazon EC2 インスタンスに割り当てる Amazon EC2 セキュリティグループを含んだリスト。このリストには、既存の Amazon EC2 セキュリティグループの名前のほか、テンプレートで作成した AWS::EC2::SecurityGroup リソースのリファレンスを含めることもできます。

Required: No

Type: List of strings

更新に伴う要件: 置換

SourceDestCheck

インスタンスの送信元/送信先チェックを有効にするかどうかを制御します。また、VPC 内のインスタンスでネットワークアドレス変換 (NAT) を実行するかどうかも決定します。

"true" は送信元/送信先チェックが有効であることを意味し、"false" は無効であることを意味します。インスタンスが NAT を実行するためには、この値が "false" になっている必要があります。詳細については、Amazon Virtual Private Cloud ユーザーガイドの「NAT インスタンス」を参照してください。

Required: No

Type: Boolean

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

SsmAssociations

このインスタンスに関連付ける Amazon EC2 Systems Manager (SSM) ドキュメントとパラメーター値。このプロパティを使用するには、インスタンスの IAM ロールを特定する必要があります。詳細については、Windows インスタンスの Amazon EC2 ユーザーガイドの「EC2 インスタンスでリモートにコマンドを実行するための前提条件」を参照してください。

注記

現在のところ、インスタンスには 1 個のドキュメントのみ関連付けることができます。

Required: No

Type: Amazon EC2 Instance SsmAssociations のリスト。

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

SubnetId

Amazon VPC を使用している場合、インスタンスの起動先となるサブネットの ID がこのプロパティによって指定されます。NetworkInterfaces プロパティを指定した場合、このプロパティは指定しないでください。

Required: No

Type: String

更新に伴う要件: 置換

Tags

このインスタンスに対する任意のタグのセット (キーと値のペア)。

Required: No

Type: AWS CloudFormation Resource Tags

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

Tenancy

起動するインスタンスのテナンシー (defaultdedicatedhost など)。dedicated または host のテナンシー値を指定した場合、VPC でインスタンスを起動する必要があります。詳細については、Dedicated InstancesAmazon VPC ユーザーガイド を参照してください。

Required: No

Type: String

更新に伴う要件:

  • このプロパティが dedicated に設定されていた場合に host に変更した (またはその逆) 場合は、更新に伴う要件: 中断はありません。

  • 他のすべての変更の場合は、更新に伴う要件: 置換

UserData

インスタンスで利用可能な Base64 エンコードされた MIME ユーザーデータ。

Required: No

Type: String

更新に伴う要件:

  • Amazon EBS-backed インスタンスの 更新に伴う要件: 一時的な中断。

    注記

    EBS-backed インスタンスでは、UserData はインスタンスを一旦停止して再開します。ただし、Amazon EC2 は更新された UserData を自動的に実行しません。インスタンスの設定を更新するには、cfn-hup ヘルパースクリプトを使用します。

  • instance store-backed インスタンスの 更新に伴う要件: 置換

Volumes

インスタンスにアタッチする Amazon EBS ボリューム。

注記

ボリュームをデタッチする前に、デバイスに存在するすべてのファイルシステムをオペレーティングシステム内でアンマウントしてください。ファイルシステムをアンマウントしないと、デタッチ中、ボリュームがビジー状態になる可能性があります。

Required: No

: EC2 MountPoints のリスト。

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

AdditionalInfo

リザーブド。

Required: No

Type: String

更新に伴う要件:

  • Amazon EBS-backed インスタンスの 更新に伴う要件: 一時的な中断。

  • instance store-backed インスタンスの 更新に伴う要件: 置換

戻り値

参照番号

AWS::EC2::Instance オブジェクトの論理 ID を組み込み Ref 関数に渡すと、オブジェクトの InstanceId が返されます。例: i-636be302

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

Fn::GetAtt

Fn::GetAtt は、このタイプの指定された属性の値を返します。以下には、利用可能な属性とサンプル戻り値のリストが示されます。

AvailabilityZone

指定したインスタンスを起動するアベイラビリティーゾーン。例: us-east-1b

特定のリージョンに該当するすべてのアベイラビリティーゾーンのリストを取得するには、Fn::GetAZs 組み込み関数を使用します。

PrivateDnsName

指定するインスタンスのプライベート DNS 名。例: ip-10-24-34-0.ec2.internal

PublicDnsName

指定するインスタンスのパブリック DNS 名。例: ec2-107-20-50-45.compute-1.amazonaws.com

PrivateIp

指定するインスタンスのプライベート IP アドレス。例: 10.24.34.0

PublicIp

指定するインスタンスのパブリック IP アドレス。例: 192.0.2.0

Fn::GetAtt の使用の詳細については、「Fn::GetAtt」を参照してください。

EBS ブロックデバイスマッピングを持つ EC2 インスタンス

JSON

Copy
{ "AWSTemplateFormatVersion" : "2010-09-09", "Description" : "Ec2 block device mapping", "Resources" : { "MyEC2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "ImageId" : "ami-79fd7eee", "KeyName" : "testkey", "BlockDeviceMappings" : [ { "DeviceName" : "/dev/sdm", "Ebs" : { "VolumeType" : "io1", "Iops" : "200", "DeleteOnTermination" : "false", "VolumeSize" : "20" } }, { "DeviceName" : "/dev/sdk", "NoDevice" : {} } ] } } } }

YAML

Copy
AWSTemplateFormatVersion: "2010-09-09" Description: "Ec2 block device mapping" Resources: MyEC2Instance: Type: "AWS::EC2::Instance" Properties: ImageId: "ami-79fd7eee" KeyName: "testkey" BlockDeviceMappings: - DeviceName: "/dev/sdm" Ebs: VolumeType: "io1" Iops: "200" DeleteOnTermination: "false" VolumeSize: "20" - DeviceName: "/dev/sdk" NoDevice: {}

パブリック IP アドレスの自動割り当て

パブリック IP アドレスをネットワークインターフェイスと関連付けることができるのは、新しい (既存のものではない) ネットワークインターフェイスであり、デバイスインデックスが 0 の場合のみです。

JSON

Copy
"Ec2Instance" : { "Type" : "AWS::EC2::Instance", "Properties" : { "ImageId" : { "Fn::FindInMap" : [ "RegionMap", { "Ref" : "AWS::Region" }, "AMI" ]}, "KeyName" : { "Ref" : "KeyName" }, "NetworkInterfaces": [ { "AssociatePublicIpAddress": "true", "DeviceIndex": "0", "GroupSet": [{ "Ref" : "myVPCEC2SecurityGroup" }], "SubnetId": { "Ref" : "PublicSubnet" } } ] } }

YAML

Copy
Ec2Instance: Type: "AWS::EC2::Instance" Properties: ImageId: Fn::FindInMap: - "RegionMap" - Ref: "AWS::Region" - "AMI" KeyName: Ref: "KeyName" NetworkInterfaces: - AssociatePublicIpAddress: "true" DeviceIndex: "0" GroupSet: - Ref: "myVPCEC2SecurityGroup" SubnetId: Ref: "PublicSubnet"

その他の例

AWS::EC2::Instance を使用して Virtual Private Cloud (VPC) を作成する方法について紹介したテンプレートをダウンロードできます。

IAM インスタンスプロファイルを持つ AWS::EC2::Instance の詳細については、EC2 インスタンスの作成とインスタンスプロファイルの関連付けの例を参照してください。

Amazon EC2 テンプレートサンプルの詳細については、「Amazon EC2 テンプレートスニペット」を参照してください。

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