written by minpeter • source code

記事一覧へ

AWS - CloudFormation

AWSインフラをコードで宣言するCloudFormationについて学びましょう

ClaudeClaude Opus 4.5による翻訳

AI生成コンテンツは不正確または誤解を招く可能性があります。

理論CloudFormationとは?テンプレート作成手順削除手順実習スタック作成作成されたリソースの確認スタック削除削除されたリソースの確認

理論

CloudFormationとは?

AWSインフラをコードで宣言する方法です。 あらかじめコードで記述したAWSインフラリソースを作成または削除できます。 類似のサービスにはTerraformがあり、これらを総称してIaC(Infrastructure as Code)と呼びます。

テンプレート

作成するインフラリソースをコードで定義したファイルです。 JSON、YAML形式を使用できます。

作成手順

  1. テンプレートをCloudFormationにアップロード
  2. CloudFormationでスタック作成コマンドを実行
  3. AWSがテンプレートに記述された順序で自動的にリソースを作成

削除手順

  1. CloudFormationでスタック削除コマンドを実行
  2. AWSが自動的にインフラリソースを削除

実習

スタック作成

Parameters:
  KeyName:
    Description: Name of an existing EC2 KeyPair to enable SSH access to the instances. Linked to AWS Parameter
    Type: AWS::EC2::KeyPair::KeyName
    ConstraintDescription: must be the name of an existing EC2 KeyPair.
  LatestAmiId:
    Description: (DO NOT CHANGE)
    Type: "AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>"
    Default: "/aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2"
    AllowedValues:
      - /aws/service/ami-amazon-linux-latest/amzn2-ami-hvm-x86_64-gp2

Resources:
  MyInstance:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: !Ref LatestAmiId
      InstanceType: t2.micro
      KeyName: !Ref KeyName
      Tags:
        - Key: Name
          Value: WebServer
      SecurityGroups:
        - !Ref MySG
      UserData:
        Fn::Base64: !Sub |
          #!/bin/bash
          yum install httpd -y
          systemctl start httpd && systemctl enable httpd
          echo "<h1>Test Web Server</h1>" > /var/www/html/index.html

  MySG:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: Enable HTTP access via port 80 and SSH access via port 22
      SecurityGroupIngress:
        - IpProtocol: tcp
          FromPort: 80
          ToPort: 80
          CidrIp: 0.0.0.0/0
        - IpProtocol: tcp
          FromPort: 22
          ToPort: 22
          CidrIp: 0.0.0.0/0

上記のコードをtest_lab1.yaml形式で保存し、次のステップに進みます。

  1. CloudFormation Consoleにアクセスし、スタック作成をクリック
  2. 準備されたテンプレートを選択 -> テンプレートファイルをアップロード
  3. 任意のスタック名を指定(CF-TEST)
  4. KeyName:使用しているキーペアを選択

作成されたリソースの確認

  1. EC2 Consoleにアクセス
  2. インスタンス -> インスタンス
  3. WebServerインスタンスのIPを確認
  4. SSHおよびHTTP接続を確認

スタック削除

  1. CloudFormation Consoleにアクセス
  2. スタックタブ
  3. 作成したスタックを選択(CF-TEST)
  4. 削除をクリック

削除されたリソースの確認

  1. EC2 Consoleにアクセス
  2. インスタンス -> インスタンス
  3. WebServerインスタンスの状態を確認(Terminated)
公開:22. 06. 15.
•
更新:26. 03. 24.

前の記事 / 次の記事

← AWS - VPCAWS - サービス →