Skip to main content

22. 서버 구성을 자동화하는 CloudFormation

About 2 minAWScrashcoursepyrasisawsamazon-web-services

22. 서버 구성을 자동화하는 CloudFormation 관련

목차

아마존 웹 서비스를 다루는 기술

22. 서버 구성을 자동화하는 CloudFormation

아마존 웹 서비스를 다루는 기술

CloudFormation은 미리 만든 템플릿을 이용하여 AWS 리소스 생성과 배포를 자동화합니다. CloudFormation은 실제로 서비스를 제공하는 AWS 리소스가 아니라서 사용 요금이 없습니다. 만약 EC2 인스턴스 1,000개를 생성하고 웹 서버를 설치한 뒤 소스 코드를 복사하여 웹 서비스를 시작해야 한다면 어떻게 해야 할까요? AMI 이미지를 만들어놓고 EC2 인스턴스를 생성하면 됩니다. 하지만, 소스 코드가 바뀔 때마다 AMI 이미지를 만들어야 합니다. 그리고 EC2 인스턴스뿐만 아니라 EBS 볼륨과 S3 버킷, RDS 인스턴스, ELB 로드 밸런서를 함께 생성해야 한다면 AMI로는 불가능합니다.

서비스에 필요한 EC2 인스턴스, EBS 볼륨, S3 버킷, RDS 인스턴스를 미리 구성한대로 자동 생성하는 기능이 CloudFormation입니다. CloudFormation에서 지원하는 AWS 리소스는 다음과 같습니다.

Auto ScalingRDSCloudFront
RedshiftCloudWatchRoute 53
DynamoDBS3EC2
SimpleDBElastiCacheSNS
Elastic BeanstalkSQSElastic Load Balancing
VPCIAM

사용자가 구성한 시스템 구조를 CloudFormation 템플릿으로 만들면 복잡하고 반복적인 작업을 간단하게 처리할 수 있습니다. 템플릿 파일은 JSONJavaScript Object Notation 형식의 텍스트 파일입니다. AWS에서 제공하는 미리 만들어진 템플릿을 사용할 수도 있습니다.

CloudFormation 템플릿 구성
CloudFormation 템플릿 구성

CloudFormation 템플릿은 AWS 리소스 생성 및 설정뿐만 아니라 EC2 인스턴스에 소프트웨어를 설치하고 설정할 수 있습니다. 소프트웨어 설치 자동화에 Chef, Puppet, cloud-init을 지원합니다(Chef와 Puppt은 cfn-init을 통해 실행됩니다).

CloudFormation 소프트웨어 설치 자동화
CloudFormation 소프트웨어 설치 자동화

CloudFormation 템플릿으로 생성한 AWS 리소스 조합을 CloudFormation 스택Stack이라고 합니다. 이 스택을 삭제하면 관련된 AWS 리소스도 모두 삭제됩니다.

CloudFormation 작업 흐름
CloudFormation 작업 흐름
22장 - 1. CloudFormation 템플릿 기본 구조

아마존 웹 서비스를 다루는 기술
22장 - 2. EC2 인스턴스를 생성하는 CloudFormation 템플릿

아마존 웹 서비스를 다루는 기술
22장 - 3. EC2 인스턴스를 생성하고 웹 서버를 설치, 실행하는 CloudFormation 템플릿

아마존 웹 서비스를 다루는 기술
22장 - 4. EC2 인스턴스를 생성하고 Security Group을 설정하는 템플릿

아마존 웹 서비스를 다루는 기술
22장 - 5. CloudFormation 템플릿으로 CloudFormation 스택 생성하기

아마존 웹 서비스를 다루는 기술

이찬희 (MarkiiimarK)
Never Stop Learning.