CloudFormationとは?CloudFormationでEC2インスタンスを作成してみた

2021.10.28

こんにちは、イムチェジョンです。
CloudFormationは簡単にAWSリソースを作成できる便利なサービスです。多くのリソースを作成する時に活用できるのでいろんなリソースを作成してみようと思います。
まず、今回のブログではCloudFormationを利用してEC2インスタンスを作成してみました。

アジェンダ

  1. CloudFormationとは?
  2. テンプレートファイル作成 (YAML)
  3. テンプレートアップロード、スタック生成
  4. まとめ

1. CloudFormationとは?

  • Amazon Web Services(AWS)リソースを自動に生成してくれるサービス
  • リソース管理時間を短縮し、AWSで実行されるアプリケーションにより集中することが可能
  • テンプレート
    • JSON または YAML 形式のテキストファイル
    • リソースを生成するためには作成したテンプレートを提出してスタックを生成
  • スタック
    • スタックという一つの単位で関連リソースを管理
    • スタックのすべてのリソースはスタックのCloudFormationテンプレートとして定義
  • 変更セット
    • リソースを変更する場合はスタックをアップデート
    • リソースを変更する前に提案された変更点が要約された変更セットを作成

2. テンプレートファイル作成 (YAML)

次には、CloudFormationでEC2インスタンスを作成するために、テンプレートファイルをYAMLファイルで作成してみましょう。

CloudFormationでEC2インスタンスを作る時にPropertiesの中に書けるオプションを確認できます。

まずは、簡単なEC2インスタンスを作成するテンプレートファイルを作成してみました。
下のテンプレートファイルには以下の内容が含まれています。

Resources:
    MyEC2Instance:
        Type: AWS::EC2::Instance
        Properties:
            ImageId: ami-0e4a9ad2eb120e054
            InstanceType: t2.micro
  • MyEC2Instanceという新しいリソースを作成する
  • MyEC2InstanceのリソースのタイプはAWS::EC2::Instance(EC2インタンス)にする
  • MyEC2InstanceのAMIはami-0e4a9ad2eb120e054にする
  • MyEC2Instanceのインスタンスタイプはt2.microにする

3. スタック生成

実際にどんな感じでスタックを作るのかやってみましょう。

3-1. スタック生成

CloudFormationページで[スタックの作成]をクリックします。

スタックの作成に移動すると、4つのステップがあります。
まず、ステップ1ではテンプレートを指定します。
ブログでは上でEC2インスタンを作る簡単なテンプレートファイルを作成しましたので、これを使います。
テンプレートの準備 : テンプレートの準備完了を選択
テンプレートソース : テンプレートファイルのアップロードを選択

テンプレートとしてアップロードするファイルを選択します。

ステップ2では詳細情報を入力します。
ブログではスタックの名前をec2-stackに設定します。

ステップ3ではオプションの設定をしますが、今回のブログでは何も設定ないままスタックを作成するので、このままステップ4に行きます。

最後にステップ4は自分が入力した内容を確認、検討します。

スタックが作成されました。

3-2. スタック生成の確認

[イベント]をクリックしてみると、スタックが作られる時にどんなイベントがあったかを確認できます。
一番下のスタックの生成から始め、以下の順番になります

  1. スタックの生成を開始
  2. EC2インスタンス作成を開始
  3. EC2インスタンス作成完了
  4. スタックの生成完了

[リソース]ではスタックで作成したリソースを確認できます。
今回はMyEC2InstanceというEC2インタンスがあります。

MyEC2Instanceの物理 IDをクリックすると、実際にEC2インスタンスのページに移動します。

インスタンスのタグを確認してみると、CloudFormationスタックで作られたことも確認できます。

[テンプレート]ではスタックを作成する時に使ったテンプレートの内容を確認できます。

3-2. スタックの削除

最後にスタック削除してみましょう。
上で作成したスタックのページで削除をクリックします。

全てのリソースが削除されるのを確認してから削除のボタンをクリックします。

そうすると、削除のイベントが実行されてスタックとEC2インスタンスを削除します。

リソースを確認してみても削除されてます。

実際にEC2インスタンスもシャットダウンされるのを確認できます。

4. まとめ

今回のブログではCloudFormationを使い、EC2インスタンスを作成してみました。

しかし、EC2インスタンスだけ作ると、上の写真のようにセキュリティグループはdefaultになって作成されます。
なので、次のブログではEC2インスタンスとセキュリティグループを作成、設定することをまとめてみたいと思います。