- 인프라배포를 자동으로 해주기 때문에 보다 안정적인 방법이라고 할 수 있다.
AWS CloudFormation을 사용하여 네트워킹 계층 배포 |
AWS CloudFormation을 사용하여 네트워킹 계층을 참조하는 애플리케이션 계층 배포 |
AWS CloudFormation을 사용하여 스택의 리소스 업데이트 |
AWS CloudFormation Designer를 사용하여 템플릿 살펴보기 |
삭제정책이 있는 AWS CloudFormation 스택 삭제 |
네크워킹 계층 배포
1. lab-networkd.yaml을 다운로드한다
- AWS CloudFormation 템플릿은 json, yaml로 작성할 수 있다.
2. CloudFormation을 클릭 후 Create stack을 클릭 후 with new resources(standard)를 클릭한다.
3.1 템플릿 지정
Temlplate Source : Upload a template file을 선택 후 choose file에서 방금 다운받은 ymal파일을 업로드한다.
3.2 스택 세부정보 지정
stack name : lab-network
next
3.3 스택 옵션 구성
key : application
value : inventory
next
3.4 검토
Create stack을 클릭한다.
- CloudFormation에서 이제 템플릿을 사용하여리소스의 스택을 생성한다.
4. Stack info 탭을 클릭한 후 Status가 초록불이 나올 때 까지 기다린다.
5. 정상적으로 생성이 됐다면 Resource탭을 클릭하여 리소스 목록들을 확인한다.
6. Event 탭을 클릭한 후 목록을 본다.
7. Output 탭을 클릭한 후 목록을 본다.
- CloudFormation 스택에서 지정된 리소스 ID 및 리소스 링크와 같은 출력 정보를 제공한다.
- 출력되는 정보
애플리케이션 계층 배포
- 네트워크 계층은 배포가 완료되었으므로 EC2 instance와 보안 그룹이 포함된 애플리케이션 계층을 배포한다.
1. Lab-application.yaml파일을 다운로드한다.
2. 왼쪽 탐색창에 Stack을 클릭 후 Create stcak을 클릭한 다음 with new resources(standard)을 클릭한다
3.1 템플릿 지정
- Temlplate Source : Upload a template file을 선택 후 choose file에서 방금 다운받은 ymal파일을 업로드한다.
3.2 스택 세부정보 지정
stack name : lab-application
NetworkStackName : lab-network
next
3.3 스택 옵션 구성
key : application
value : inventory
next
3.4 검토 후 Create를 누른다.
4. Stack info 탭을 클릭한 후 Status가 초록불이 나올 때 까지 기다린다.
5. Output 탭을 클릭한 후 표시된 URL을 복사하여 브라우저로 들어가본다.
lab-application의 일부
WebServerSecurityGroup:
Type: AWS::EC2::SecurityGroup
Properties:
GroupDescription: Enable HTTP ingress
VpcId:
Fn::ImportValue:
!Sub ${NetworkStackName}-VPCID
- 마지막줄은 스택 생성 시 NetworkStackName(lab-network를 나타낸다.
- lab-network-VPC ID값을 가져와 보안 그룹을 정의하는 VPC ID필드에 값을 삽입하여 VPC Security Group을 생성한다.
스택 업데이트
- 배포되어있던 스택을 업데이트할 수 있으며 변경되는 리소스만 수정 또는 대체한다.
- 이번에는 보안 그룹만 수정하는 작업이다.
1. EC2를 클릭하고 Security Groups를 클릭한다.
2. 생성되어있는 Web Server Security Group을 선택 후 inbound rules 탭을 클릭한다.
- 현재 HTTP트래픽만 허용하는 규칙만 적용되어있음
3. 확인 후 Cloud Formation을 클릭한다.
4. 새롭게 업데이트할 Lab-application2.yaml 템플릿을 다운로드한다.
-Lab-application2.yaml
- IpProtocol: tcp
FromPort: 22
ToPort: 22
CidrIp: 0.0.0.0/0
5. lab-application 스택이름을 클릭한 다음 update를 누른다.
- replace current template을 선택 한다
- Upload a template file을 선택한다.
- choose file에서 방금 다운받은 Lab-application2.yaml을 선택한다.
6. next를 3회 클릭 후 review가 나오는 것을 확인한다.
- changes에 변경사항을 확인한다.
7. Stack info 탭을 클릭한 후 Status가 초록불이 나올 때 까지 기다린다.
8. EC2로 돌아가 Security Group에 변경한 것들이 잘 적용되었는지 확인한다.
AWS CloudFormation Designer를 사용하여 템플릿 살펴보기
-AWS CloudFormation Designer는 템플릿을 작성, 확인, 수정하기위한 그래픽 도구이며 다이어그램을 통해 편집이 가능하다.
1. Cloud Formation을 클릭 후 왼쪽 Designer를 클릭한다.
스택 삭제
- 리소스가 더이상 필요하지 않다면 리소스를 삭제할 수 있다.
- 리소스에 대한 삭제 정책을 지정할 수 있으며 삭제 시 경우에 따라 보존 또는 백업이 가능하다.
- lab-application.yaml에 EBS 디스크 볼륨이 삭제되기전 스냅샷을 생성하도록 구성하였기에 삭제시에 스냅샷이 자동으로 만들어진다.
DiskVolume:
Type: AWS::EC2::Volume
Properties:
Size: 100
AvailabilityZone: !GetAtt WebServerInstance.AvailabilityZone
Tags:
- Key: Name
Value: Web Data
DeletionPolicy: Snapshot
1. stack에 들어가 lab-application을 삭제한다.
- Application 스택을 삭제되었지만 네트워크 스택은 그대로 유지되는 것을 확인할 수 있으며 이를 통해 여러가지 여러 팀이 자체 스택을 강화할 수 있는 아이디어를 강화한다.
2. EC2에 들어가 EBS의 볼륨의 스냅샷이 생성되어있는지 확인하자
3. EC2클릭 후 왼쪽 탐색창에 Snapshot을 클릭한다.
4. 몇분 지난 후 Started 시간이 표시된 스냅샷이 보일 것이다
'AWS 실습' 카테고리의 다른 글
6. AWS 관리형 서비스로 Serverless 아키텍처 구현 (0) | 2021.12.17 |
---|---|
4. 고가용성 환경 생성 (0) | 2021.12.16 |
3. 가상 사설 클라우드 생성(VPC), Peering Connection (0) | 2021.12.15 |
2. AWS에서 웹 애플리케이션 배포 (0) | 2021.12.15 |
1. AmazonS3 버킷 생성 (0) | 2021.12.14 |