AWS CloudFormation에서는 클라우드 환경에서 AWS 및 타사 애플리케이션 리소스를 모델링하고 프로비저닝할 수 있도록 공용 언어를 제공

AWS CloudFormation에서는 클라우드 환경에서 AWS 및 타사 애플리케이션 리소스를 모델링하고 프로비저닝할 수 있도…

cloudhwang 0 672
AWS CloudFormation에서는 클라우드 환경에서 AWS 및 타사 애플리케이션 리소스를 모델링하고 프로비저닝할 수 있도록 공용 언어를 제공합니다. AWS CloudFormation을 사용하면 프로그래밍 언어 또는 간단한 텍스트 파일을 사용하여 자동화되고 안전한 방식으로 모든 지역과 계정에 걸쳐 애플리케이션에 필요한 모든 리소스를 모델링 및 프로비저닝할 수 있습니다. 이를 통해 AWS 및 타사 리소스의 단일 소스를 제공합니다.

AWS CloudFormation을 통해 개발자와 시스템 관리자는 관련 AWS 리소스 모음을 쉽게 생성 및 관리하면서, 이를 순서에 따라 예측 가능한 방식으로 프로비저닝하고 업데이트할 수 있습니다. AWS CloudFormation의 샘플 템플릿을 사용하거나 자체 템플릿을 생성하여 애플리케이션 실행에 필요한 AWS 리소스는 물론, 기타 관련 종속성 또는 런타임 파라미터를 설명할 수 있습니다. 사용자가 AWS 서비스를 프로비저닝하는 순서나 이러한 종속성을 적용하기 위한 세부 요소를 파악할 필요가 없습니다. CloudFormation이 대신 처리해줄 것입니다. AWS 리소스가 배포되고 나면 소프트웨어에 적용하는 것과 같은 방법으로 버전 관리를 AWS 인프라에 적용하여 해당 리소스를 제어 및 예측 가능한 방식으로 수정하고 업데이트할 수 있습니다.

 

- AWS 리소스의 설정을 JSON 형식 또는 YAML 형식으로 기재한 템플릿을 만들고 해당 템플릿에서 AWS 리소스를 자동으로 구축하는 서비스

 

- CloudFormation에는 스택과 템플릿으로 구성

  • 스택

    • CloudFormation 기능으로 자동 생성된 AWS 리소스의 집합을 나타냄

    • CloudFormation은 스택 단위로 리소스를 관리하기 위해 스택에 연관된 리소스를 한번에 구축하거나 한번에 제거할 수 있음

    • 리소스간에는 의존관계가 있는 경우가 많은데 예를 들어 VPC와 EC2 인스턴스에서 VPC가 없다면 인스턴스를 만들 수 없다. 이같은 의존 관계를 CloudFormation이 자동 구축 시에 판단하고 구축하는 순서에 모순이 없도록 결정

  • 템플릿

    • 스택 구성을 결정하는 설계자로서 CloudFormation의 핵심 요소

    • JSON이나 YAML 형식으로 기술

    • 템플릿은 AWS 리소스를 기술하는 장소, 실행조건을 기술하는 장소 등의 몇 개 섹션으로 구성

    • 템플릿 생성을 지원하는 내장함수가 존재하며 이 내장함수를 사용해 범용성 높은 템플릿 구성 가능

  • 변경 세트

    • 스택에서 실행 중인 리소스를 변경해야 하는 경우 스택을 업데이트

    • 리소스를 변경하기 전에 제안된 변경 사항이 요약된 변경 세트를 생성할 수 있음

    • 변경 세트를 사용하면 변경  사항을 구현하기 이전에 해당 변경이 실행중인 리소스에 미치는 영향을 확인할 수 있음

    • Ex. RDS DB 인스턴스의 이름을 변경한 경우 CloudFormation에서 새 DB를 생성하고 이전 DB를 삭제하므로 아직 백업하지 않은 경우 이전 DB 데이터를 잃게 됨

 

 

- AWS에 구축한 구성을 템플릿 하여 재사용하기 쉽게 해주는 서비스

- 예를 들어 구축한 VPC를 템플릿화 한다면 언제고 재사용이 가능하다.


Stack(템플릿)

- CloudFormation은 JSON 형식으로 작성된 템플릿 파일을 바탕으로 VPC, EC2인스턴스등을 생성 및 구축한다

 이렇게 생성된 것을 Stack이라고 한다


구조

1) AWSTemplateFormatVersion

- 템플릿의 버젼


2) Description

- 템플릿의 설명 , 사용자를 위한 것. 


3) Parameters

- 스택생성시 넘겨줄 파라미터

- 템플릿 내부에서 Ref 함수로 참조한다

- Outputs와 조합하여 템플릿과 템플릿 연결 가능


4) Mappings

- 해시 테이블 처럼 키, 값 싸으로 설정 가능

- 리전마다 사용할 AMI를 다르게 하는 경우등에 사용


5) Resources

- 생성할 자원들을 정의한다


6) Outputs

- 템플릿으로 생성한 것의 결과를 출력한다

- 예로 VPC, SecurityGroup, EC2인스턴스, ELB IP, 등을 출력할 때 사용

0 Comments