はじめに
CloudFormation とは、AWSのEC2インスタンスなどの構成管理をしてくれるやつです。Ansibleみたいな感じ。yaml で構成を記述すると、そのとおりにEC2インスタンスをたてたり、VPCを構築してくれたりします。
ColudFormation自体は利用料はかかりません。今回は試しにVPCを作るところまでやってみたいと思います。CloudFormationもVPCも無料なので、今回のはすべて無料の範囲に収まります。ほんとは設定をどう管理するかとかもあるのですが、今回はとりあえず触ってみるだけです。
参考
以下の資料が参考になります。
用語
上記資料にも詳しく書いてありますが。ColudFormationで作成したEC2やRDSなどなどの集合のことを「スタック」と呼びます。
CloudFormationの設定を書いてみる。
今回はVPCを一つだけ作成してみます。以下のようにyamlを書きます。
AWSTemplateFormatVersion: '2010-09-09' Description: "Create VPC Test" Resources: TestVPC: Type: AWS::EC2::VPC Properties: CidrBlock: 10.0.0.0/16
AWSTemplateFormatVersion: '2010-09-09'
これはあまり気にしなくていいのですが、CloudFormationのversion 2010-09-09 の書き方で書きますよ、ということを宣言しています。今の所バージョンは 2010-09-09
しかありません。
次の Description
は、このCloudFormationファイルの説明です。「Setting for develop environment」とか、なんのためのファイルかわかるように記述していきましょう。日本語で書くとAWSコンソール上から見たときに文字化けするので英語が無難です。
最後の Resources
が重要で、ここ以下に構成を記述していきます。今回は TestVPC
という名前をつけた適当なVPCを作成しまして、IP帯は 10.0.0.0/16
だよということが書かれています。 Type: AWS::EC2::VPC
は VPCを作成してくださいね、という意味です。
CloudFormationを適用
早速このファイルをもとにVPCをつくてもらいましょう。CloudFormationのコンソールにアクセスし、「新しいスタックの作成」をクリックします。
今回はローカルのymlファイルをアップロードすることで実行しようと思うので、「テンプレートをAmazon S3にアップロード」を選択し、先程のyamlファイルをアップロードします。
スタックの名前ですが、適当にわかる名前をつけておきましょう。
「次へ」を押すと、タグだったりIAMロールだったりロールバックトリガーを選択する画面が出てきますが、特に何も入力せず「次へ」を押します。
最後に確認画面がでますので「作成」をクリックします。CREATE_IN_PROGRESS となっている間は作成中なのでしばらく待ちます。
しばらくすると CREATE_COMPLETE になります。
スタックの名前の部分をクリックすると、下の方にスクロールしたところに「リソース」というのがあり、このスタックがなんのリソースを持っているのかがわかります。
VPCのコンソールに行ってみると、確かにVPCが作成されているのがわかります。
作成したスタックの削除
さて、とりあえず試すことはできたので、スタックを削除してみたいと思います。スタックを削除すると、そのスタックに含まれるリソースが全て削除されます。
削除をクリックすると、しばらくは DELETE_IN_PROGRESS
となり、その後 DELETE_COMPLETE
になります。VPCのコンソールから確認してみると、確かに削除されていることがわかります。
まとめ
とりあえずCloudFormationの使い方や、CloudForamtionがどんなものかはわかったかと思います。次はEC2インスタンスを作ってみようと思います。