AWS

AWS CloudFormation

윤승 2025. 4. 8. 23:01
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