Bootstrap(부트스트랩)은 AWS CDK를 특정 AWS 게정과 리전에서 사용하기 위해 가정 먼저 수행해야 하는 사전 준비 과정이다. CDK 프로젝트를 배포하기 위한 기반 시설을 만드는 단계라고 이해하면 된다.
CDK는 코드(Java)를 CloudFormation 템플릿으로 변환하여 배포한다. 하지만 단순히 템플릿만 보내는 것이 아니라 람다 함수의 코드(Zip), Docker 이미지, 대규모 템플릿 파일 같은 자산(Assets)들을 함께 다뤄야한다.
이러한 자산들을 배포 중에 임시로 저장하고 관리할 장소가 AWS 계정 내에 미리 마련되어 있어야 하는데 이를 생성하는 과정이 부트스트래핑이다.
부트스트랩은 AWS 계정(Account)과 리전(Region)의 조합마다 한 번씩 수행해야 한다.
예를 들어 동일한 계정이라도 서울과 버지니아에 각각 배포하고 싶다면 두 리전 모두에 부트스트랩을 실행해야 한다.
부트스트랩을 실행하면 AWS 계정에 CDKToolkit이라는 이름의 CloudFormation 스택이 생성된다. 이 스택에는 다음과 같은 핵심 리소스들이 포함된다.
부트스트랩은 CDK CLI를 통해 실행된다.
# 기본 명령어: 현재 AWS 프로필에 설정된 계정과 리전에 부트스트랩을 수행한다.
cdk bootstrap
# 특정 환경 명시: 계정 번호와 리전을 직접 지정하여 수행할 수도 있다.
cdk bootstrap aws://123456789012/ap-northeast-2
한 번 부트스트랩이 완료된 환경은 이후 추가적인 배포 시 다시 실행할 필요가 없다.
다만 CDK 프레임워크의 버전이 크게 업데이트되어 부트스트랩 스택의 구조가 변경된 경우에는 다시 실행하여 업데이트해야 할 수도 있다.
현재의 CDK(v2 기준)는 'Modern Bootstrap' 방식을 사용한다. 이는 배포를 수행하는 역할(Deployment Role)과 자산을 업로드하는 역할(Publishing Role)을 엄격히 분리하여, 보안상 훨씬 안전한 구조를 가진다.
부트스트랩으로 생성된 S3 버킷에 데이터가 쌓이거나 KMS 키가 생성되어 있으면 소액의 AWS 비용이 발생할 수 있다.
사용하지 않는 환경이라면 CDKToolkit 스택을 삭제하여 리소스를 정리해야 한다.