そろそろCloudFormation(HelloCloudFormation編)の記事で、EC2を1つ立ち上げるだけの簡単なCloudFormationを試しましたが、今回は、これをVPC上で立ち上げてみました。

テンプレートは下記のようになります。

{
  "AWSTemplateFormatVersion" : "2010-09-09",

  "Description" : "Create an Amazon EC2 instance running the SUZ-LAB CentOS AMI.",

  "Parameters" : {
    "KeyName" : {
      "Description" : "Name of an existing EC2 KeyPair to enable SSH access to the instance",
      "Type"        : "String"
    }
  },

  "Mappings" : {
    "RegionMap" : {
      "ap-northeast-1" : { "AMI" : "ami-de9126df" }
    }
  },

  "Resources" : {
    "Ec2Instance" : {
      "Type"       : "AWS::EC2::Instance",
      "Properties" : {
        "KeyName"          : { "Ref" : "KeyName" },
        "ImageId"          : { "Fn::FindInMap" : [ "RegionMap", { "Ref" : "AWS::Region" }, "AMI" ]},
        "InstanceType"     : "m1.small",
        "SubnetId"         : "subnet-9bd939f2",
        "PrivateIpAddress" : "10.0.0.100"
      }
    }
  },

  "Outputs" : {
    "InstanceId" : {
      "Description" : "InstanceId of the newly created EC2 instance",
      "Value"       : { "Ref" : "Ec2Instance" }
    }
  }
}

前回同様、下記に示す上記テンプレートのURLを使ってAWS Management Consoleから起動します。

https://s3-ap-northeast-1.amazonaws.com/www.suz-lab.com/formation/VpcCloudFormation.template

但し、サブネットやルーティング、Network ACLsなどの設定は、まだできないようなので、VPC(サブネット/ルーティング/Network ACLs)の設定は事前にしておく必要があるようです。

また、最近VPC上で利用できるようになったELBですが、こちらもまだ対応していないようです。
そこで、料金は発生しますがVPC上のELBも、予め作成しておく必要があるようです。
(また、インスタンスを繋げるのは手動になってしまうと思います。)

こちらの記事はなかの人(suz-lab)監修のもと掲載しています。
元記事は、こちら