AWS: CloudFormation

김기현·2026년 2월 5일

AWS

목록 보기
44/44

AWS CloudFormation은 AWS 리소스를 모델링하고 설정하여 인프라 관리에 드는 시간을 줄이고 AWS에서 실행되는 애플리케이션에 더 많이 집중할 수 있게 해주는 서비스이다.

설계도 하나도 AWS의 모든 자원을 자동으로 만들고 관리하는 서비스라고 이해하면 편하다. CDK는 결국 이 CloudFormation이라는 서비스를 더 간편하게 사용하기 위한 것이다.


1. 핵심 개념: 템플릿과 스택

CloudFormation을 이해하려면 두 가지 용어를 기억해야 한다.

  • 템플릿(Template): 리소스를 어떻게 만들지 적어놓은 설계도이다. JSON이나 YAML 형식을 사용한다.
  • 스택(Stack): 설계도대로 만들어진 실제 리소스들의 묶음이다. 하나의 스택을 삭제하면 그 안에 포함된 모든 리소스가 한 번에 삭제된다.

2. CloudFormation의 동작 원리

개발자가 텍스트 파일을 던지면 CloudFormation은 다음과 같은 과정을 거친다.

  1. 설계도(Template) 분석: S3 버킷 하나와 EC2 인스턴스 하나 필요.
  2. 의존성 계산: 버킷을 먼저 만들어야 인스턴스가 그 이름을 참조할 수 있다.
  3. API 호출: 개발자 대신 AWS 서비스들에 요청해 리소스를 생성한다.
  4. 결과 보고: 스택 생성 완료 (CREATE_COMPLETE)

3. CloudFormation을 쓰는 이유

  • 자동화 속도: 수백 개의 리소스를 콘솔에서 클릭할 필요 없이 코드 실행 한 번으로 끝낸다.
  • 복제 가능성: 개발 환경 설계도만 있으면 운영 환경도 똑같이 복제할 수 있다.
  • 상태 관리: 내가 직접 리소스를 지우지 않아도 CloudFormation이 무엇이 생성되고 무엇이 바뀌었는지 끝까지 추적한다.
  • 안전한 업데이트: 변경 사항을 미리 확인하는 Change Set 기능과 실패 시 자동으로 되돌리는 Rollback 기능을 제공한다.

4. CDK vs CloudFormation

구분CloudFormationAWS CDK
형태선언적 (JSON/YAML)명령적 (Java, Python 등 프로그래밍 언어)
추상화낮음 (모든 세부 설정을 직접 적어야 함)높음 (Construct를 통해 수백 줄의 코드를 한 줄로 요약)
가독성파일이 길어질수록 읽기 힘듦객체 지향적으로 코드를 깔끔하게 관리 가능
비유조립식 가구의 상세 설명서가구를 주문하는 키오스크

5. 변경 세트 (Change Sets)

배포 전 cdk diff를 통해 확인했던 내용은 실제로 CloudFormation의 변경 세트 기능이다.

변경 세트란 템플릿을 수정했을 때 실제 운영 중인 인프라에 어떤 변화가 생길지(예: 리소스 삭제, 수정, 추가) 배포 전에 요약해서 보여주는 보고서이다.


요약

AWS CloudFormation은 AWS의 가장 근본적인 인프라 관리 엔진이다. CDK를 쓴다는 것은 이 엔진을 직접 다루는 대신, 코드라는 도구로 엔진을 제어하는 것과 같다.

하지만 문제가 생겼을 때(롤백 등)는 결국 CloudFormation 콘솔에 들어가서 로그를 확인해야 하므로 이 엔진의 원리를 아는 것이 매우 중요하다.

profile
백엔드 개발자를 목표로 공부하는 대학생

0개의 댓글