클라우드/따라하면서 배우는 AWS 네트워크 입문

실습 1-2-cloudfomation 스택 생성 및 삭제

book_lover 2024. 6. 30. 17:51

AWS 인프라에 대해 "코드"로 개략적인 선언을 하는 방법, 간단히 말해서 자신이 생성할 AWS 인프라 자원을 코드로 정의하여 "자동"으로 정의된 자원을 생성하거나 삭제할 수 있다. 일반적으로 이러한 개념일 IaC라 한다.

탬플릿

생성할 aws 인프라 자원을 코드로 정의한 파일을 의미. json, yaml 형식의 코드로 작성 가능

스택 생성

템플릿을 cLOUDfORMATION에 업로드하여 스택을 생성할 수 있다. 스택을 생성하면 템플릿에 정의된 aws 인프라 자원에 대해 순서대로 자동 생성

스택 삭제

스택을 삭제하면 스택 생성에 의해 생성된 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

https://velog.io/@ssu_hyun/%EB%94%B0%EB%9D%BC%ED%95%98%EB%A9%B0-%EB%B0%B0%EC%9A%B0%EB%8A%94-AWS-%EB%84%A4%ED%8A%B8%EC%9B%8C%ED%81%AC-%EC%9E%85%EB%AC%B8-01.-AWS-%EC%9D%B8%ED%94%84%EB%9D%BC

 

[따라하며 배우는 AWS 네트워크 입문] 01. AWS 인프라

1) AMI 선택 ➡ Amazon Linux 2 AMI2) 인스턴스 유형 ➡ t2.micro3) 인스턴스 세부 정보 ➡ 네트워크/서브넷: 기본값, 퍼블릭 IP 자동 할당: 활성화, 나머지는 기본값4) 스토리지 추가 ➡ 기본 값5) 태그 추가

velog.io