CloudFormation이란?
CloudFormation은 AWS 리소스를 코드로 정의하고 자동으로 관리할 수 있게 도와주는 서비스.
사용자는 JSON 또는 YAML 형식의 템플릿 파일만 작성하면, AWS가 그 파일을 읽고 필요한 리소스를 자동으로 생성하거나 수정해준다.
모든 리소스는 선언적 방식으로 정의됨.
대부분의 AWS 서비스 리소스를 지원함.
리소스 생성 순서, 의존성 관리, 에러 발생 시 롤백까지 자동으로 처리해줌.
CloudFormation의 주요 기능 및 장점
인프라 코드화:
- 수동으로 리소스를 만들 필요가 없음.
- 코드 리뷰를 통해 변경 사항을 검토하여 안정적인 배포 가능.
비용 절감:
- 리소스에 태그를 자동으로 부여하여 비용 추정 가능.
- 자동 삭제 및 재생성으로 특정 시간 동안 리소스를 중지하여 비용 절감 가능.
생산성 향상:
- 리소스를 빠르게 삭제하고 다시 생성할 수 있음.
- 인프라를 템플릿화하여 재사용 및 복원성 제공.
도식 제공:
- 템플릿을 기반으로 구성 요소 간의 관계를 도식화하여 시각적으로 이해 가능.
선언적 프로그래밍:
- 리소스 간의 의존 관계를 수동으로 설정할 필요 없이, CloudFormation이 자동으로 처리.
기존 템플릿 활용:
- 웹에 공개된 템플릿이나 공식 문서의 템플릿을 사용 가능.
- 사용자 정의 리소스를 통해 지원되지 않는 리소스도 관리 가능.
CloudFormation이 중요한 이유
- 인프라를 수동으로 관리하면 사람이 실수할 가능성이 크고, 환경마다 구성이 달라질 수도 있다.
- CloudFormation을 쓰면 인프라를 하나의 코드로 정의하고, 그 코드를 기반으로 동일한 환경을 어디서든 재현할 수 있다.
- 코드 기반이므로 협업, 자동화, 롤백, 재현성 모든 면에서 강력한 도구
🛠️ CloudFormation 구성 요소
구성 | 요소 설명 |
스택(Stack) | 하나 이상의 AWS 리소스를 묶어 관리하는 단위. 템플릿으로 정의됨. |
템플릿(Template) | JSON 또는 YAML로 작성된 파일. 어떤 리소스를 어떻게 만들지 정의함. |
파라미터(Parameter) | 템플릿 실행 시 동적으로 값을 입력받을 수 있음. 환경별 차이를 유연하게 처리. |
출력값(Outputs) | 생성된 리소스의 ID, URL 등 외부에서 참조할 수 있도록 출력 가능. |
매핑(Mappings) | 리전에 따라 다른 값을 사용하고 싶을 때 정의하는 조건부 매핑. |
조건(Conditions) | 특정 조건에 따라 리소스 생성 여부를 제어함. (예: 프로덕션에서만 생성 등) |
'AWS' 카테고리의 다른 글
AWS - RDS? (0) | 2025.05.08 |
---|---|
AWS - Elastic Beanstalk (1) | 2025.05.07 |
AWS - Lightsail (0) | 2025.04.03 |
AWS - Lambda (0) | 2025.04.02 |
AWS - ECS (Elastic Container Service) (0) | 2025.04.01 |