📝

CloudFormation で EC2 インスタンスを作成する際にキャパシティーの予約の設定を none にできない

に公開

EC2 インスタンスに関するプロパティにはキャパシティ予約の設定がないため、CloudFormation からキャパシティ予約の設定を none にはできませんでした。
代替案としては起動テンプレートで設定する方法があります。

1. EC2 インスタンスを作成してみる

以下の最小構成のテンプレートで EC2 インスタンスを作成してみます。

AWSTemplateFormatVersion: "2010-09-09"
Resources:
  MyEC2Instance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: ami-0d4aa492f133a3068
      InstanceType: t2.micro

EC2 インスタンス起動後にキャパシティー予約の設定を確認すると、open になっていました。

2. 起動テンプレートを作成してみる

AWS::EC2::LaunchTemplate CapacityReservationSpecification - AWS CloudFormation
起動テンプレートではキャパシティ予約の設定が可能なので、以下のテンプレートで起動テンプレートを作成してみます。

AWSTemplateFormatVersion: "2010-09-09"

Resources:
  MyLaunchTemplate:
    Type: AWS::EC2::LaunchTemplate
    Properties:
      LaunchTemplateName: MyLaunchTemplate
      LaunchTemplateData:
        ImageId: ami-0d4aa492f133a3068
        InstanceType: t2.micro
        CapacityReservationSpecification:
          CapacityReservationPreference: none

起動テンプレートのキャパシティー予約の設定を確認すると、none になっていました。

3. 起動テンプレートから EC2 インスタンスを起動してみる

手順 2 で作成した起動テンプレートから EC2 インスタンスを起動したところ、キャパシティー予約の設定が none になっていました。

まとめ

今回は CloudFormation で EC2 インスタンスを作成する際にキャパシティーの予約の設定を none にできないという内容を紹介しました。
どなたかの参考になれば幸いです。

参考資料

Discussion