AWS CDK: HotSwap

김기현·2026년 2월 4일

AWS

목록 보기
42/44

HotSwap은 AWS CDK에서 개발 주기를 획기적으로 단축하기 위해 도입된 기능이다. 일반적인 배포 과정의 지루한 대기 시간을 줄여주는 개발자용 빠른 배포라고 할 수 있다.


1. HotSwap의 개념과 목적

일반 배포의 한계

일반적인 cdk deploy는 CloudFormation의 ChangeSet(변경 세트)을 생성하고 리소스를 하나씩 교체하는 정식 절차를 밟는다. 이 과정은 매우 안전하지만 단순히 람다 함수의 코드 몇 줄을 고쳤을 때조차 수 분의 시간이 소요된다는 단점이 있다.

HotSwap의 해결책

HotSwap은 CloudFormation의 정식 업데이트 프로세스를 건너뛴다. 대신 AWS 서비스의 직접 API를 호출하여 리소스를 즉시 업데이트한다.

개발 중에는 완벽한 상태 관리보다 빠른 피드백이 더 중요하다.


2. HotSwap의 동작 방식

cdk deploy --hotswap명령어를 실행하면 다음과 같은 일이 일어난다.

  1. 변화 감지: 로컬 코드와 자산(Assets)의 변화를 감지한다.
  2. API 직접 호출: 변경 사항이 HotSwap이 가능한 리소스라면 CloudFormation 스택을 업데이트하지 않고 AWS CDK를 사용하여 해당 리소스의 설정이나 코드를 즉시 바꾼다.
  3. 드리프트(Drift) 발생: 이 과정에서 CloudFormation이 알고 있는 상태와 실제 리소스의 상태가 달라지는 드리프트 현상이 의도적으로 발생한다.

3. HotSwap이 가능한 주요 리소스

모든 리소스가 HotSwap을 지원하는 것은 아니다. 주로 코드나 설정의 변화가 잦은 리소스들이 대상이다.

  • AWS Lambda: 함수의 소스 코드 및 설정 변경.
  • ECS 서비스: 작업 정의(Task Definition)의 컨테이너 이미지 변경.
  • Step Functions: 상태 머신(State Machine)의 정의 변경.
  • AppSync: 리졸버(Resolver) 및 스키마 변경.
  • CodeBuild: 프로젝트 빌드 설정 변경.

4. cdk watch

HotSwap은 보통 cdk watch 명령어와 함께 사용한다.

cdk watch

이 명렁어를 실행하면 CDK는 로컬의 파일을 계속 감시한다. Java 코드를 수정하고 저장하는 순간 CDK는 자동으로 컴파일 → 합성 → HotSwap 배포를 수행한다. 개발자는 터미널을 건드릴 필요 없이 코드만 수정하면 수초 내에 클라우드에 반영된 결과를 확인할 수 있다.


5. 주의사항

HotSwap을 사용할 때 반드시 주의해야 할 것이 있다.

  1. 개발 환경 전용: 운영 환경에서는 절대 사용하면 안 된다. CloudFormation의 상태 관리 체계를 벗어나기 때문에 인프라의 일관성이 깨진다.
  2. 드리프트 해결: HotSwap으로 작업을 마친 후에는 반드시 일반 cdk deploy를 한 번 실행하여 CloudFormation의 상태를 실제 리소스와 다시 일치시켜야 한다.
  3. 실패 시 자동 전환: 만약 리소스가 HotSwap을 지원하지 않는 종류라면 CDK는 자동으로 일반 배포 방식으로 전환하여 배포를 완료한다.

요약

  • HotSwap은 CloudFormation을 거치지 않고 AWS API를 직접 호출해 배포 속도를 높이는 기능이다.
  • `cdk deploy --hotswap또는cdk watch` 명령어로 사용한다.
  • 속도는 빠르지만, 운영 환경에서는 보안과 안정성을 위해 정식 배포 방식을 사용해야 한다.
profile
백엔드 개발자를 목표로 공부하는 대학생

0개의 댓글