ABOUT ME

-

Today
-
Yesterday
-
Total
-
  • [AWS] CloudFormation
    AWS 2023. 1. 10. 17:19

     

    CloudFormation은, 인프라코드로 처리하여 AWS 및 서드 파티 리소스를 모델링, 프로비저닝 및 관리할 수 있다.

     

    이를 사용하기 위해, 우선 템플릿 파일을 생성해보자

     

    1. 템플릿 파일 생성

    visual studio code를 설치한 후, 열어준다.

     

    왼쪽 5번째 사각 버튼을 클릭한 후, CloudFormation을 설치해준다.

     

    새 파일을 만들어준다. 필자는 1_lab2.yml이라는 파일을 생성하였다.

    파일을 생성할 때, 주의할 점은 뒤에 확장명yml 혹은 yaml으로 끝나야 한다는 점이다.

     

    Parameters:
      KeyName:
        Description: Name do an esisting RC2 KeyPair to enable SSH access to the instances. Linked to AWS Parameters
        Type: AWS::EC2::KeyPair::KeyName
        ConstraintDescription: must be the name of an existing EC2 KeyPair.
    
    Resources:
      MyInstance: # EC2 인스턴스 이름
        Type: AWS::EC2::Instance # EC2 인스턴스 
        Properties:
          ImageId: 본인 ami ID
          InstanceType: t2.micro # 인스턴스 유형
          KeyName: !Ref KeyName # 키 페어 참조
          Tags: # 태그
            - Key: Name
              Value: WebServer
          SecurityGroups: # EC2에 연결될 보안그룹 지정
            - !Ref MySG # MySG라는 보안그룹 참조
          UserData:
            Fn::Base64:
              !Sub |
               #!/bin/bash
               yum install httpd -y # apache 설치
               systemctl start httpd # apache 실행 
               echo "<h1>Test Web Server</h1>" > /var/www/html/index.html # Test Web Server이라는 문구를, /var/www/html/index.html 파일 안에 넣기
    
      MySG: # 보안그룹 이름
        Type: AWS::EC2::SecurityGroup # 보안그룹
        Properties:
          GroupDescription: Enable HTTP access via port 80 and SSH access via port 22 # 설명 (http 포트 80번, SSH 포트 22번을 열겠다.)
          SecurityGroupIngress:
          - IpProtocol: tcp # 80번 포트
            FromPort: 80
            ToPort: 80
            CidrIp: 0.0.0.0/0
          - IpProtocol: tcp # 22번 포트
            FromPort: 22
            ToPort: 22
            CidrIp: 0.0.0.0/0

     

    코드를 입력해준 뒤, 저장해준다.

     


    2. 스택 올리기

     

    1단계에서 만든 템플릿 파일을 이용하여, 스택을 올린다.

     

    CloudFormation -> 스택 -> 스택생성 클릭

    준비된 템플릿 -> 템플릿 파일 업로드 클릭

     

    1단계에서 만든 템플릿 파일을 업로드한다.

    이후 다음 클릭

    스택 이름 : 원하는 스택 이름으로 지정

    KeyName : 본인의 키 페어로 지정

    태그 또한 원하는 대로 달아준다.

    이후 스택 생성

    완료

    실패 뜨면 삭제한 뒤,

    오류 확인하고, 오류 수정 뒤 다시 스택 올리면 된다.


    3. 확인

     

    스택이 정상적으로 올라왔다면

    생성된 EC2 인스턴스를 확인한다.

     

    Xshell 새 세션에

    EC2 인스턴스 퍼블릭 IP 입력

     

    사용자 이름 : ec2-user

    방법 : Public Key

    설정 - 사용자 키 - RSA 키 불러온 후 연결

     

     sudo su - : root로 전환

    vim /var/www/html/index.html : /var/www/html/index.html 파일 열어서, 템플릿 파일에 입력한 대로 코드가 있는지 확인

    systemctl restart httpd : httpd 재시작 

    systemctl status httpd : httpd 상태 확인 

     

     

    인스턴스의 퍼블릭 IP로 접속

    정상적으로 웹 접속이 잘 되면 성공


    4. 삭제

     

    CloudFormation -> 스택 -> 원하는 스택 클릭 -> 삭제 버튼

Designed by Tistory.