LoginSignup
1
1

More than 3 years have passed since last update.

【AWS CloudFormation】EC2のユーザーデータでWebサーバーをインストールする

Posted at

はじめに

EC2の構築作業を省力化のため、CloudFormationにおいてEC2のユーザーデータ(EC2起動時に実行されるシェルスクリプト)を使って、Webサーバーをインストールする方法を学習した。その方法を備忘録として残したい。

手順

CloudFormation>スタック>スタックの作成で、ステップ1では下記のように設定する。
yamlのテンプレートは以下を指定する。
設定し終えたら、次へ進む。

スクリーンショット 2020-09-25 16.44.52.png

テンプレート↓
ImageId: ami-〇〇については、〇〇の部分をEC2でAMI IDにあるものに直して入力する。


---
Parameters:
  SSHKey:
    Type: AWS::EC2::KeyPair::KeyName
    Description: Name of an existing EC2 key pair for SSH access to the EC2 instance

Resources:
  MyInstance:
    Type: AWS::EC2::Instance
    Properties:
      AvailabilityZone: ap-northeast-1a
      ImageId: ami-〇〇
      InstanceType: t2.micro
      KeyName: !Ref SSHKey
      SecurityGroups:
        - !Ref SSHSecurityGroup
      # ユーザーデータからWebサーバーをインストールする
      UserData: 
        Fn::Base64: |
          #!/bin/bash -xe
          yum update -y
          yum install -y httpd
          systemctl start httpd
          systemctl enable httpd
          echo "Hello World from user data" > /var/www/html/index.html

  # EC2セキュリティグループ
  SSHSecurityGroup:
    Type: AWS::EC2::SecurityGroup
    Properties:
      GroupDescription: SSH and HTTP
      SecurityGroupIngress:
      - CidrIp: 0.0.0.0/0
        FromPort: 22
        IpProtocol: tcp
        ToPort: 22
      - CidrIp: 0.0.0.0/0
        FromPort: 80
        IpProtocol: tcp
        ToPort: 80

ステップ2でスタックの名前とSSHKeyを指定する。今回は「user-data-example」とした。SSHKeyではすでに作成されたSSHKeyを適宜指定する。
次へ進む。
スクリーンショット 2020-09-25 16.45.37.png

ステップ3では特に何も入力せず、デフォルトのままで次へ進む。
スクリーンショット 2020-09-26 14.36.01.png
スクリーンショット 2020-09-25 16.46.09.png
ステップ4で内容に誤りがない確認し、スタックの作成を押す。
スクリーンショット 2020-09-25 16.47.23.png
スクリーンショット 2020-09-25 16.47.30.png
該当スタックが正しく作成されているか、ステータスで確認する。
スクリーンショット 2020-09-26 14.38.22.png
EC2>インスタンスに行き、作成されたインスタンスの詳細を確認する。
問題がなければパブリックIPv4アドレスをURLに入力すると、「Hello World from user data」が画面に表示される。
スクリーンショット 2020-09-26 14.41.17.png

参考
Ultimate AWS Certified SysOps Administrator Associate 2020
https://dev.classmethod.jp/articles/using-variables-in-ec2-user-data-in-cloudformation/

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1