Tech Hotoke Blog

IT観音とは私のことです。

AWS入門【 Cloudformation 】

f:id:TechHotoke:20211217070645p:plain

目的

AWS学習の備忘録。

備忘録のため、詳細な説明を省略している部分があります。

前提

ネットワークの基本的な知識があること。

ゴール

添付画像のテンプレートを作成すること f:id:TechHotoke:20211217071735p:plain

AWS CloudFormationとは

  • AWSリソース(EC2やRDS、S3等)をテンプレート化して自動で構築できる。
  • CloudFormation自体は利用無料(利用したインスタンス等のみ料金がかかる)

    メリット

  • 検証と本番で同じテンプレートを利用することにより、構成を同じにできる。
  • AWSの構成を可視化出来る。
  • バージョン管理も出来る。

作成

コンソールからCloudFormationを検索して選択します。 f:id:TechHotoke:20211217071042p:plain

スタック*この作成を選択し、

   *テンプレートで作成されるAWSリソースの一つのまとまり

f:id:TechHotoke:20211217071341p:plain 事前に作成した、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

f:id:TechHotoke:20211217071418p:plain 適当な名前をつけて、料金の安価なt2-microを選択します。 パラメータのスペックに応じて料金が変動するので注意が必要。 スタックオプションは特に設定せず、スタックの作成を行い、

f:id:TechHotoke:20211217071856p:plain ステータスが添付画像のようになったらOK

確認のため、EC2の物理IDリンクを押下し、EC2インスタンスが作成されていることを確認してください。 f:id:TechHotoke:20211217071949p:plain

f:id:TechHotoke:20211217072100p:plain

削除

削除しないと料金が発生しますので削除までちゃんと行なってください。。。!

CloudFormationから先ほど作成したスタックを選択し、削除ボタンを押下 f:id:TechHotoke:20211217072234p:plain こちらの画面に切り替わったことを確認し、 f:id:TechHotoke:20211217072412p:plain EC2のインスタンスのステータスが終了済となっていることを確認して削除完了です。

これで終了です。

お付き合いいただきありがとうございます。