【AWS】CloudFormation で EC2 インスタンス(Amazon Linux2)を作成する手順【コマンドラインから実行】【Part.2】

CloudFormation を利用して E2 インスタンスを作成する手順について解説します。

最後にリソースを使い終わったらスタックを削除してきれいにします。

 

以前、CloudFormation を利用して VPC の作成をしました。

 

【AWS】CloudFormation の基本的な解説(VPCの作成手順)

 

以前解説した Part.1 は以下となります。

【AWS】CloudFormation で Amazon EC2 インスタンスを作成する手順【単純な作成】【Part.1】

 

Part.1とPart.2の違いはほぼないですが、2021年の今、再度コマンドラインから CloudFormation で EC2 インスタンスを構築してみます。

 

 

CloudFormation の設計

最初にどのような構成にするのか設計をします。

 

  • EC2 インスタンス ← 1台新規作成します。
  • EC2 インスタンスのプラットフォーム(OS) ← Amazon Linux2
  • EC2 インスタンスの AMI(Amazon マシン イメージ) ← ami-06b31a9cee8dfac33(Amazon Linux 2 AMI (HVM), SSD Volume Type) 
  • EC2 インスタンスタイプ ← m2.micro 
  • VPC ← デフォルトの VPC(172.31.0.0/16)上に構築します。
  • VPC CIDR ← 172.31.0.0/16
  • パブリック IP ← 付けます。
  • インターネットゲートウェイ ← デフォルト VPC に既に設定されています。
  • セキュリティグループ ← TCP/22 へのアクセス許可
  • ルートテーブル ← 既存のルートテーブルを利用します。

 

 

前提

以下はすでに設計されていて存在するものとします。

  • VPC
  • インターネットゲートウェイ
  • ルートテーブル

 

 

 

テンプレートの作成

最初にテンプレートを作成します。

今回は設計の通り EC2 インスタンスを1台だけ構築する単純な内容です。

 

以下のページを参考にテンプレートを作成します。

テンプレートの形式は YAML 形式とします。

YAML 形式を選択した理由はコメントを記載できるからです。

 

AWS::EC2::Instance

参考URL:https://docs.aws.amazon.com/ja_jp/AWSCloudFormation/latest/UserGuide/aws-properties-ec2-instance.html#aws-properties-ec2-instance-examples

 

EBS ブロックデバイスマッピングを持つ EC2 インスタンス

まずは以下の単純なテンプレートを実行します。

 

【Part.1で利用したテンプレートを基に作成】

Linux 上でファイル名「test.yml」で作成します。

[user01@LAPTOP-2N8G36AO-wsl cloudformation]$ vi test.yml

AWSTemplateFormatVersion: “2010-09-09” 
Description: “Template EC2 Create” 
Resources: 
  MyEC2Instance:   # Amazon Linux2 の構築 
    Type: AWS::EC2::Instance 
    Properties: 
      ImageId: “ami-09ebacdc178ae23b7”      # Amazon Linux 2 AMI (HVM), SSD Volume Type 
      InstanceType: “t2.micro”              # インスタンスタイプを指定します。
      KeyName: “DevOps-test-EC2-key”        # 既存のキーペアを指定します。 ファイル名(xxx.pem)ではありません。
      BlockDeviceMappings: 
        – DeviceName: “/dev/sdm” 
          Ebs: 
            VolumeType: “io1” 
            Iops: “200” 
            DeleteOnTermination: “false” 
            VolumeSize: “20” 
        – DeviceName: “/dev/sdk” 
          NoDevice: {}

 

 

aws cloudformation コマンドでテンプレートを実行する

テンプレートを作成したらコマンドでテンプレートを実行します。

 

■ファイルの場所

[user01@LAPTOP-2N8G36AO-wsl cloudformation]$ pwd
/home/user01/cloudformation
[user01@LAPTOP-2N8G36AO-wsl cloudformation]$ ls
test.yml ← YAML形式のテンプレートファイル
[user01@LAPTOP-2N8G36AO-wsl cloudformation]$

 

 

 

以下のコマンドを実行します。

コマンドは aws cloudformation deploy コマンドを実行します。

 

最初はチェンジセット(変更セット)オプションを付けて実行する

 

■最初にチェンジセット(変更セット)オプションを入れて実行する(まだ構築しない)

[user01@LAPTOP-2N8G36AO-wsl cloudformation]$ aws cloudformation deploy –template-file test.yml –stack-name test1 –no-execute-changeset 
 
Waiting for changeset to be created.. 
Changeset created successfully. Run the following command to review changes: 
aws cloudformation describe-change-set –change-set-name arn:aws:cloudformation:ap-northeast-1:xxxxxx:changeSet/awscli-cloudformation-package-deploy-1630217045/f2b12c88-0640-409a-8466-ddc43e4773e2 
[user01@LAPTOP-2N8G36AO-wsl cloudformation]$

 

–no-execute-changeset オプションを付けて実行します。

この –no-execute-changeset オプションを付けると事前に変更点が確認できます。

具体的な確認方法は以下の手順となります。

 

 

変更点の確認手順

変更点の確認は GUI から行います。

 

CloudFormationのダッシュボードに移動します。

【AWS】CloudFormation で EC2 インスタンス(Amazon Linux2)を作成する手順【コマンドラインから実行】【Part.2】

 

 

 

 

左側ペインより「スタック」を選択して対象のスタックをクリックします。

【AWS】CloudFormation で EC2 インスタンス(Amazon Linux2)を作成する手順【コマンドラインから実行】【Part.2】

 

 

 

 

 

 

「変更セット」タブをクリックします。

【AWS】CloudFormation で EC2 インスタンス(Amazon Linux2)を作成する手順【コマンドラインから実行】【Part.2】

 

 

 

 

 

変更セットをクリックします。

【AWS】CloudFormation で EC2 インスタンス(Amazon Linux2)を作成する手順【コマンドラインから実行】【Part.2】

 

 

 

 

 

下図のように EC2 インスタンスが追加されることが確認できます。

【AWS】CloudFormation で EC2 インスタンス(Amazon Linux2)を作成する手順【コマンドラインから実行】【Part.2】

 

 

 

 

 

 

 

aws cloudformation deploy コマンドを実行して環境を構築する

チェンジセット(変更セット)を確認して思いもよらない追加や削除がなく想定通りであることが確認出来たら環境を構築します。

 

■aws cloudformation deploy コマンドを実行して環境を構築する

[user01@LAPTOP-2N8G36AO-wsl cloudformation]$ aws cloudformation deploy –template-file test.yml –stack-name test1 
 
Waiting for changeset to be created.. 
Waiting for stack create/update to complete 
Successfully created/updated stack – test1 
[user01@LAPTOP-2N8G36AO-wsl cloudformation]$

 

 

 

 

CloudFormation のダッシュボードより確認する

CloudFormation のダッシュボードよりステータスを確認します。

【AWS】CloudFormation で EC2 インスタンス(Amazon Linux2)を作成する手順【コマンドラインから実行】【Part.2】

 

 

 

 

 

 

 

スタックを削除する

リソースを利用したらスタックを削除します。

スタックを削除するとスタックによって構築されたリソースも同時に削除されます。

スタックの削除もコマンドラインから実行します。

 

■スタックを削除する

[user01@LAPTOP-2N8G36AO-wsl cloudformation]$ aws cloudformation delete-stack –stack-name test1
[user01@LAPTOP-2N8G36AO-wsl cloudformation]$

 

 

 

 

 

よかったらシェアしてね!
  • URLをコピーしました!
  • URLをコピーしました!

この記事を書いた人

コメント

コメントする

AlphaOmega Captcha Medica  –  What Do You See?
     
 

このサイトはスパムを低減するために Akismet を使っています。コメントデータの処理方法の詳細はこちらをご覧ください