2011年12月19日月曜日

そろそろCloudFormation(HelloCloudFormation編)

スズキです。

CloudFormationの用途に、一時的に利用する開発環境や検証環境、バックアップ環境の
起動/停止を一気にまとめて行うというものがあると思います。
(というか、それしか思い浮かばないのですが...)

ということで、そろそろ、そのような要件が出てきたので、
ちゃんと一から試すことにしました。(つまりHelloCloudFormationです)

下記は一番簡単な、AMIからEC2を起動するHelloCloudFormationテンプレートです。
(シンプルなテンプレートなので意味合いは直感的にわかると思います)

{
  "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" ]}
      }
    }
  },

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

ということで、上記のテンプレートを実際にAWS Management Consoleから利用してみます。

まずは、上記のテンプレートを下記のようにS3に配置します。
https://s3-ap-northeast-1.amazonaws.com/www.suz-lab.com/formation/HelloCloudFormation.template

次に、下記のように"Provide a Template URL"を選択し、テンプレートのURLを入力します。


そして、パラメータを入力します。ここで入力するパラメータは上記のテンプレートで
"Parameters"で定義されたもので、任意に指定することができます。


最後に、情報の確認して問題なければ、構築を開始します。


起動後、"Outputs"タグを確認すると、下記のようにテンプレートの"Outputs"で定義した情報が
出力されていることがわかります。


次は、VPC!
--------
http://www.suz-lab.com

0 コメント: