1円でも得したいWebエンジニアの日常

クーポンだったりクレジットカードのポイントだったりを利用して1円でも得しつつ生活を便利にしていきたいWebエンジニアによるブログ。技術的な記事から商品レビューなど日常的なことまで。

AWSをはじめてみる2 - CloudFormationでのプロビジョニング・構成管理

f:id:yoshiki_utakata:20190404013604p:plain

はじめに

CloudFormation とは、AWSのEC2インスタンスなどの構成管理をしてくれるやつです。Ansibleみたいな感じ。yaml で構成を記述すると、そのとおりにEC2インスタンスをたてたり、VPCを構築してくれたりします。

ColudFormation自体は利用料はかかりません。今回は試しにVPCを作るところまでやってみたいと思います。CloudFormationもVPCも無料なので、今回のはすべて無料の範囲に収まります。ほんとは設定をどう管理するかとかもあるのですが、今回はとりあえず触ってみるだけです。

参考

以下の資料が参考になります。

dev.classmethod.jp

用語

上記資料にも詳しく書いてありますが。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::VPCVPCを作成してくださいね、という意味です。

CloudFormationを適用

早速このファイルをもとにVPCをつくてもらいましょう。CloudFormationのコンソールにアクセスし、「新しいスタックの作成」をクリックします。

f:id:yoshiki_utakata:20190404014652p:plain

今回はローカルのymlファイルをアップロードすることで実行しようと思うので、「テンプレートをAmazon S3にアップロード」を選択し、先程のyamlファイルをアップロードします。

f:id:yoshiki_utakata:20190404014803p:plain

スタックの名前ですが、適当にわかる名前をつけておきましょう。

f:id:yoshiki_utakata:20190404014918p:plain

「次へ」を押すと、タグだったりIAMロールだったりロールバックトリガーを選択する画面が出てきますが、特に何も入力せず「次へ」を押します。

最後に確認画面がでますので「作成」をクリックします。CREATE_IN_PROGRESS となっている間は作成中なのでしばらく待ちます。

f:id:yoshiki_utakata:20190404015025p:plain

しばらくすると CREATE_COMPLETE になります。

f:id:yoshiki_utakata:20190404015210p:plain

スタックの名前の部分をクリックすると、下の方にスクロールしたところに「リソース」というのがあり、このスタックがなんのリソースを持っているのかがわかります。

VPCのコンソールに行ってみると、確かにVPCが作成されているのがわかります。

作成したスタックの削除

さて、とりあえず試すことはできたので、スタックを削除してみたいと思います。スタックを削除すると、そのスタックに含まれるリソースが全て削除されます。

f:id:yoshiki_utakata:20190404015419p:plain

削除をクリックすると、しばらくは DELETE_IN_PROGRESS となり、その後 DELETE_COMPLETE になります。VPCのコンソールから確認してみると、確かに削除されていることがわかります。

まとめ

とりあえずCloudFormationの使い方や、CloudForamtionがどんなものかはわかったかと思います。次はEC2インスタンスを作ってみようと思います。