目的
AWS学習の備忘録。
備忘録のため、詳細な説明を省略している部分があります。
前提
ネットワークの基本的な知識があること。
ゴール
添付画像のテンプレートを作成すること
AWS CloudFormationとは
- AWSリソース(EC2やRDS、S3等)をテンプレート化して自動で構築できる。
- CloudFormation自体は利用無料(利用したインスタンス等のみ料金がかかる)
メリット
- 検証と本番で同じテンプレートを利用することにより、構成を同じにできる。
- AWSの構成を可視化出来る。
- バージョン管理も出来る。
作成
コンソールからCloudFormationを検索して選択します。
スタック*この作成を選択し、
*テンプレートで作成されるAWSリソースの一つのまとまり
事前に作成した、jsonファイル(テンプレート)をアップロードします。
sample-template.json
"Parameters" : { "InstanceType" : { "Description" : "WebServer EC2 instance type", "Type" : "String", "Default" : "t2.small", "AllowedValues" : [ "t1.micro", "t2.nano", "t2.micro", "t2.small", "t2.medium", "t2.large", "m1.small", "m1.medium", "m1.large", "m1.xlarge", "m2.xlarge", "m2.2xlarge", "m2.4xlarge", "m3.medium", "m3.large", "m3.xlarge", "m3.2xlarge", "m4.large", "m4.xlarge", "m4.2xlarge", "m4.4xlarge", "m4.10xlarge", "c1.medium", "c1.xlarge", "c3.large", "c3.xlarge", "c3.2xlarge", "c3.4xlarge", "c3.8xlarge", "c4.large", "c4.xlarge", "c4.2xlarge", "c4.4xlarge", "c4.8xlarge", "g2.2xlarge", "g2.8xlarge", "r3.large", "r3.xlarge", "r3.2xlarge", "r3.4xlarge", "r3.8xlarge", "i2.xlarge", "i2.2xlarge", "i2.4xlarge", "i2.8xlarge", "d2.xlarge", "d2.2xlarge", "d2.4xlarge", "d2.8xlarge", "hi1.4xlarge", "hs1.8xlarge", "cr1.8xlarge", "cc2.8xlarge", "cg1.4xlarge"] , "ConstraintDescription" : "must be a valid EC2 instance type." } }, "Mappings" : { "AWSInstanceType2Arch" : { "t1.micro" : { "Arch" : "HVM64" }, "t2.nano" : { "Arch" : "HVM64" }, "t2.micro" : { "Arch" : "HVM64" }, "t2.small" : { "Arch" : "HVM64" }, "t2.medium" : { "Arch" : "HVM64" }, "t2.large" : { "Arch" : "HVM64" }, "m1.small" : { "Arch" : "HVM64" }, "m1.medium" : { "Arch" : "HVM64" }, "m1.large" : { "Arch" : "HVM64" }, "m1.xlarge" : { "Arch" : "HVM64" }, "m2.xlarge" : { "Arch" : "HVM64" }, "m2.2xlarge" : { "Arch" : "HVM64" }, "m2.4xlarge" : { "Arch" : "HVM64" }, "m3.medium" : { "Arch" : "HVM64" }, "m3.large" : { "Arch" : "HVM64" }, "m3.xlarge" : { "Arch" : "HVM64" }, "m3.2xlarge" : { "Arch" : "HVM64" }, "m4.large" : { "Arch" : "HVM64" }, "m4.xlarge" : { "Arch" : "HVM64" }, "m4.2xlarge" : { "Arch" : "HVM64" }, "m4.4xlarge" : { "Arch" : "HVM64" }, "m4.10xlarge" : { "Arch" : "HVM64" }, "c1.medium" : { "Arch" : "HVM64" }, "c1.xlarge" : { "Arch" : "HVM64" }, "c3.large" : { "Arch" : "HVM64" }, "c3.xlarge" : { "Arch" : "HVM64" }, "c3.2xlarge" : { "Arch" : "HVM64" }, "c3.4xlarge" : { "Arch" : "HVM64" }, "sample_template.json" [dos] 201L, 10360B
JSONチェッカーとデザイナーで表示機能などを駆使してJSONファイルを頑張って作成します。 参考:JSONチェッカー lab.syncer.jp
適当な名前をつけて、料金の安価なt2-microを選択します。 パラメータのスペックに応じて料金が変動するので注意が必要。 スタックオプションは特に設定せず、スタックの作成を行い、
ステータスが添付画像のようになったらOK
確認のため、EC2の物理IDリンクを押下し、EC2インスタンスが作成されていることを確認してください。
削除
削除しないと料金が発生しますので削除までちゃんと行なってください。。。!
CloudFormationから先ほど作成したスタックを選択し、削除ボタンを押下 こちらの画面に切り替わったことを確認し、 EC2のインスタンスのステータスが終了済となっていることを確認して削除完了です。
これで終了です。
お付き合いいただきありがとうございます。