1. CloudFormation 스택 생성
이번 실습은 AWS CloudFormation을 통해 스택을 생성하고 AWS 자원을 배포하는 실습입니다.
CloudFormation 템플릿 다운로드
•
아래 CloudFormation 템플릿 파일을 다운로드합니다.
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.
InstanceType:
Description: Enter t2.nano, t2.micro Default is t2.micro.
Type: String
Default: t2.micro
AllowedValues:
- t2.nano
- t2.micro
LatestAmiId:
Description: (DO NOT CHANGE)
Type: 'AWS::SSM::Parameter::Value<AWS::EC2::Image::Id>'
Default: '/aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64'
AllowedValues:
- /aws/service/ami-amazon-linux-latest/al2023-ami-kernel-default-x86_64
Resources:
MyInstance:
Type: AWS::EC2::Instance
Properties:
ImageId: !Ref LatestAmiId
InstanceType: !Ref InstanceType
KeyName: !Ref KeyName
Tags:
- Key: Name
Value: WebServer
SecurityGroups:
- !Ref MySG
UserData:
Fn::Base64:
!Sub |
#!/bin/bash
dnf install httpd -y
systemctl start httpd && systemctl enable httpd
echo "<h1>[인프런] AWS Networking - 실습 웹 서버</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
YAML
복사
# CH1_LAB3.yaml 파일 내용
CloudFormation 서비스에 스택 메뉴 진입
•
AWS 관리 콘솔 로그인
•
서비스 → CloudFormation 서비스
◦
스택 (메뉴 진입) → 스택 생성 (버튼 클릭)
CloudFormation 스택 생성 설정
1단계 - 스택 생성
•
템플릿 준비: 기존 템플릿 선택 (선택)
•
템플릿 소스: 템플릿 파일 업로드 (선택)
◦
파일 선택 → 템플릿 파일 선택 (CH1_LAB3.yaml) → 열기
•
다음 (버튼 클릭)
2단계 - 스택 세부 정보 지정
•
스택 이름: TestCF
•
InstanceType: t2.micro or t2.nano
•
KeyName: 각자 생성한 키 페어 선택
•
다음 (버튼 클릭)
3단계 - 스택 옵션 구성
•
기본 값 유지
•
다음 (버튼 클릭)
4단계 - 검토 및 작성
•
설정된 정보 확인
•
전송 (버튼 클릭)
CloudFormation 스택 확인
•
CREATE_IN_PROGRESS(스택 생성 중) → CREATE_COMPLETE(스택 생성 완료)
◦
약 1분 내외 시간 소요
스택 정보
•
스택 ID, 상태, 생성 시간 등을 확인
이벤트
•
타임스탬프에 따른 AWS 자원 생성 이벤트 정보
◦
테이블 보기 / 타임라인 보기(
)
리소스
•
스택을 통해 생성되는 자원 정보
출력
•
스택 생성 과정에서 추출한 값이나 정보
파라미터
•
스택 생성 시 입력한 값이나 정보
템플릿
•
스택 생성을 위한 템플릿 파일 내용
생성 자원 확인
EC2 인스턴스
•
스택 → 리소스 → MyInstance의 물리적 ID (클릭)
•
대상 EC2 인스턴스의 퍼블릭 IPv4 주소 (복사)
•
인터넷 브라우저 → 복사한 퍼블릭 IPv4 주소 (입력)
보안 그룹
•
스택 → 리소스 → MySG의 물리적 ID (클릭)
•
대상 보안 그룹 선택 → 인바운드 규칙 (확인)
2. CloudFormation 스택 삭제
생성된 자원을 일일이 삭제하는 것이 아닌 CloudFormation 스택을 삭제하면 순차적으로 자동 삭제됩니다.
CloudFormation 서비스에 스택 메뉴 진입
•
서비스 → CloudFormation 서비스 → 스택 (메뉴 진입)
CloudFormation 스택 삭제
•
대상 스택 선택 → 우측 상단 - 삭제 (버튼 클릭)
◦
약 1분 내외 시간 소요
EC2 → 인스턴스에 접근해서 자원이 삭제됐는지 확인합니다.
AWS CloudFormation에 대해 조금 더 깊이 알고 싶을 경우 개인 블로그에서 정리한 CloudFormation에 대한 전반적인 내용 및 실습 포스팅을 참고 용도로 보시길 바랍니다.
여기까지 1장 실습 - CloudFormation을 통한 EC2 인스턴스 배포를 마칩니다.
수고하셨습니다 :)