-
[AWS] CloudFormationAWS 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 -> 스택 -> 원하는 스택 클릭 -> 삭제 버튼
'AWS' 카테고리의 다른 글
[AWS] 프라이빗 서브넷 VPC 구성 (0) 2023.01.10 [AWS] 퍼블릭 서브넷 VPC 구성 (VPC, 서브넷, 라우팅 테이블, 인터넷 게이트웨이, 보안그룹 등) (0) 2023.01.10 [AWS] 아파치(Apache)를 활용하여 웹 서버 구축 (0) 2023.01.10 [AWS] EC2 인스턴스에 SSH 연결 (0) 2023.01.10 [AWS] EC2 인스턴스 생성 (0) 2023.01.10