본문 바로가기
Amazon Web Serivce 자격증 쉽게 공부하기/AWS Solutions Architect Associate 핵심

SAA-C03 핵심 #23, Cloudformation

by 네트워크 엔지니어 환영 2024. 1. 10.
반응형

Cloudformation이란?

  • 인프라 관리 간소화를 목적으로 하는 서비스
  • AWS의 리소스를 일일이 설정하지 않고 해당 서비스의 프로비져닝과 설정을 미리 구성하여 반복작업을 줄이도록 도와줌
  • EC2, Auto Scaling Group부터 ELB, RDS, S3 등을 사전에 구성하여 한 번의 클릭으로 다수의 서비스를 빠르게 생성할 수 있음
  • 생성된 리소스 모음은 다른 계정 혹은 다른 리전에 옮겨 사용 가능함 

 

Stack

  • 하나의 단위로 관리할 수 있는 AWS 리소스들의 모음
  • 스택을 생성, 업데이트 또는 삭제하여 리소스 모음을 생성, 업데이트, 삭제를 할 수 있음
  • 스택에서 실행중인 리소스를 변경해야 하는 경우 스택을 업데이트할 수 있는데 이 업데이트된 세트를 '변경 세트'라 함
  • 스택을 삭제하는 경우 삭제할 스택을 지정하면 해당 스택과 스택 내 모든 리소스를 삭제함
  • AWS에서 리소스를 삭제할 수 없는 경우 스택이 삭제되지 않음
  • 스택의 리소스 중 하나라도 성공적으로 생성되지 않은 경우 성공적으로 생성한 모든 리소스를 모두 삭제함(이를 Automatic rollback on error라 함)

 

Template

  • 스택을 구성하는 AWS 리소스를 JSON 혹은 YAML 형식으로 선언한 텍스트 파일 
  • 템플릿은 로컬 혹은 S3에 저장되며, 템플릿을 불러올 때 S3 bucket을 지정할 수 있음
  • 템플릿을 'Designer'를 통해 생성할 수도 있으며 S3 bucket에 저장된 것을 불러와 생성할 수 있음
  • 템플릿의 여러 가지 요소
    • Parameters : 선택 섹션, 스택 생성 및 업데이트시 템플릿에 전달하는 값, 사용자가 선택하는 여러 요소들(EC2 유형 - t2.micro 등)
    • Conditions : 선택 섹션,  조건문, 리소스가 생성되는 조건을 만들어 조건 충족시에만 리소스를 만들 수 있도록 하는 요소
    • Resources : 필수 섹션, Cloudformation에 포함될 리소스
    • Metadata : 선택 섹션,  템플릿에 대한 세부 정보를 제공하는 임의의 JSON, YAML 객체
    • Mappings : 선택 섹션,  프로그래밍 언어로 따지면 'Switch' 조건문에 해당하며 '키'에 해당하는 값 세트를 생성하고 해당하는 키가 있으면 값 세트에 맞춰 리소스를 생성함

 

Cloudformation 헬퍼 스크립트

  • 리소스 메타데이터를 검색 및 해석, 패키지 설치, 파일 생성, 서비스를 시작하는 데 사용되는 스크립트
  • 아래 4가지 스크립트가 존재함
    • cfn-init
    • cfn-signal
    • cfn-get-metadata
    • cfn-hup
  • cfn-signal : EC2 인스턴스가 성공적으로 생성 또는 업데이트되었는지 여부를 나타내도록 CloudFormation에 신호를 보내는 스크립트
    • CreationPolicy 속성을 함께 사용하여 EC2 인스턴스 생성 프로세스가 완료되면 신호를 보낼 수 있음

 

Cloudformation의 과금 특징

  • Cloudformation 서비스 자체는 무료이지만, Cloudformation을 통해 생성되는 모든 리소스는 유료임
  • 생성된 리소스는 독립적인 요소로서 과금이 부여됨

 

댓글