[AWS] Cloud Formation
2024. 4. 9. 13:56ㆍIT
정의
- 스택을 생성할 때마다 AWS cloud formation에서 템플릿에 설명된 리소스를 프로비저닝과 구성을 담당
- AWS 리소스를 수동으로 생성하거나 구성할 필요가 없고 어떤것이 무엇에 의존하는지 파악할 필요가 없다.
- JSON, YAML을 이용하여 작성
특징
- 장점
- 인프라 관리 간소화
- 템플릿을 사용하여 AWS cloud formation 스택을 생성할 경우 Auto Scaling 그룹, 로드 밸런서 및 데이터베이스를 자동으로 프로비저닝
- 신속하게 인프라 복제
- 템플릿을 재사용하여 리소스를 일관되고 반복적으로 설정 가능
- 리소스를 한 번만 설명하고 여러 리전에서 동일한 리소스를 반복적으로 프로비저닝
- 인프라 변경 사항을 쉽게 제어 및 추적
- 프로비저닝되는 리소스와 해당 설정이 AWS cloud formation 템플릿에 상세히 기술됨
- 템플릿은 텍스트 파일이므로 템플릿에서 차이점을 추적하여 인프라 변경 사항을 추적할 수 있다.
- 예를 들어 버전 제어 시스템을 템플릿과 함께 사용하여 변경된 내용, 변경한 사람, 변경 시간등을 정확히 알 수 있다.
- 인프라 관리 간소화
구성 요소
- 템플릿을 생성하여 AWS 리소스와 해당 속성에 대해 설명
- 스택을 생성할 때마다 AWS CloudFormation에서 템플릿에 설명된 리소스를 프로비저닝
- Template → Cloud Formation → Stack
- Template
- Json, Yaml 형식의 파일, Parameter 정의, Resource 생성, 실제 구성 액션
- Cloud Formation
- 프레임 워크, Stack 생성, Stack 업데이트, 에러감지 및 롤백
- Stack
- 구성된 AWS 서비스, 포괄적인 AWS 서비스 지원
- Template
Template
- 스택 리소스 프로비저닝 및 구성을 위해 필요한 파일
- Json, Yaml의 텍스트 파일로 AWS 리소스 구축을 위한 블루포인트로 사용
Stack
- 하나의 단위로 관리할 수 있는 AWS 리소스 모음
- 스택의 생성, 업데이트, 삭제를 통해 리소스 모음의 생성, 업데이트, 삭제
- 스택의 모든 리소스는 cloudformation템플릿을 통해 정의
- 스택을 삭제하면 관련 리소스가 모두 삭제
CloudFormation
- stack을 생성하고 stack에 대한 변경사항을 확인 및 업데이트
- stack 생성 및 변경 중 에러 감지를 통한 롤백 지원
작동 순서
- Yaml 또는 Json 포맷으로 원하는 인프라에 대한 정보를 Cloud Formation 템플릿으로 작성
- CloudFormation 템플릿을 로컬에 저장하거나 S3 Bucket에 저장
- 템플릿 파일의 위치를 지정하여 CloudFormation 스택을 생성
- 템플릿에 지정된 stackd을 통해 AWS 리소스에 대한 프로비저닝 및 구성 작업을 진행
- 모든 리소스가 생성된 후 AWS Cloud Formation에서는 스택이 생성되었음을 보고
- 스택 생성에 성공하면 생성한 리소스 사용 가능
- 스택 생성에 실패하면 생성한 리소스를 모두 삭제하고 변경 사항을 Roll Back 시킨다.
템플릿 구조
- AWSTemplateFormatVersion: “version date”
[포맷 버전, 템플릿이 따르는 AWS CloudFormation 템플릿 버전이다., “2010-09-09”] - Description:
- String
[템플릿을 설명하는 텍스트 문자열, 이 섹션은 항상 템플릿 포맷 버전 색션 다음에 이루어져야한다.]
- String
- Metadata:
- template metadata
[템플릿에 대한 추가정보를 제공하는 객체이다.]\
- template metadata
- Parameters:
- set of parameters
[스택을 생성하거나 업데이트할 때 실행 시간에 템플릿에 전달하는 값이다, 템플릿의 Resources 및 Outputs 섹션에서 파라미터를 참조할 수 있다.]
- set of parameters
- Reousrces:
- set of reources
[필수, 인스턴스 또는 s3버킷같은 스택 리소스 및 해당 속성을 지정한다., 템플릿의 Resources 및 output 섹션에서 리소스를 참조할 수 있다.]
- set of reources
Parameters
- 파라미터를 통해 스택을 생성하거나 업데이트할 때마다 템플릿에 사용자 지정 값을 입력할 수 있다.
- 정의, 참조(Ref 내장 함수를 사용하여 파라미터를 참조할 수 있고, AWS Cloud Formation은 스택 프로비저닝에 이 파라미터를 사용한다.)가 가능하다.
- Type
- 파라미터(Data Type)의 데이터 유형이다, 필수 항목,
- String, Number, List, CommaDelimitedList, AWS 특정 파라미터 유형, SSM 파라미터 유형
LIst: 쉼표로 구분되는 정수 또는 부동 소수점 어레이이다.
CommaDelimitedLIst: 쉼표로 구분된 리터럴 문자열 어레이이다.

'IT' 카테고리의 다른 글
[지식] AWS Data Streaming(Glue,Kinesis,Kafka, Airflow,RabbitMQ) (0) | 2024.04.09 |
---|---|
[AWS] 저장소 비교 분석(Redshift,ElastiCache) (0) | 2024.04.09 |
[AWS] Aurora (0) | 2024.04.09 |
DevOps CICD 비교 (0) | 2024.04.09 |
[교육] IRT, DKT, LLM, RAG 모델, Caliper 설명 (0) | 2024.04.09 |