블로그 릴레이 - CDK bootstrap 커스텀 해보기

블로그 릴레이 - CDK bootstrap 커스텀 해보기

안녕하세요 생산지원 그룹 리테일 어플리케이션부의 김승연입니다. 본 블로그는 당사의 한국어 블로그 릴레이의 2025년 28번째 블로그입니다. 이번 블로그의 주제는 「블로그 릴레이 - CDK 부트스트래핑 을 커스텀 해보기」 입니다
2025.08.17

안녕하세요 생산지원 그룹 리테일 어플리케이션부의 김승연입니다.

본 블로그는 당사의 한국어 블로그 릴레이의 2025년 28번째 블로그입니다.
이번 블로그의 주제는 「블로그 릴레이 - CDK bootstrap 커스텀 해보기」 입니다

CDK bootstrap 이란

https://docs.aws.amazon.com/ko_kr/cdk/v2/guide/bootstrapping.html#bootstrapping-what

부트스트래핑은 AWS CDK에서 사용하는 AWS 환경의 특정 AWS 리소스를 프로비저닝하여 환경을 준비합니다. 이러한 리소스를 일반적으로 부트스트랩 리소스라고 합니다.

https://docs.aws.amazon.com/ko_kr/cdk/v2/guide/ref-cli-cmd-bootstrap.html

CDK 부트스트랩 스택을 AWS 환경에 배포하여 CDK 배포CDKToolkit를 위한 AWS 환경을 준비합니다.
부트스트랩 스택은 AWS 환경에서 Amazon S3 버킷과 Amazon ECR 리포지토리를 프로비저닝하는 CloudFormation 스택입니다. AWS CDK CLI는 이러한 리소스를 사용하여 배포 중에 합성된 템플릿 및 관련 자산을 저장합니다.

의 설명과 같이 CDK Bootstrap은 CDK Deploy를 통한 배포 전 필요한 리소스를 생성하는 과정입니다.

대표적으로는 S3나 ECR 과 같은 서비스가 있습니다.

  • Amazon Simple Storage Service(Amazon S3) 버킷 - AWS Lambda 함수 코드 및 자산과 같은 CDK 프로젝트 파일을 저장하는 데 사용됩니다.
  • Amazon Elastic Container Registry(Amazon ECR) 리포지토리 -Docker 이미지를 저장하는 데 주로 사용됩니다.
  • AWS Identity and Access Management(IAM) 역할 - AWS CDK가 배포를 수행하는 데 필요한 권한을 부여하도록 구성됩니다

기본 cdk bootstrap을 통해 만들어진 Stack은 CDKToolkit 이라는 이름을 가지며 그에 따라 리소스명도 정해집니다.

CDK bootstrap 커스텀 하기

먼저 방법부터입니다만, 아래 지정을 통해 커스텀 하실 수 있습니다.

cdk bootstrap --toolkit-stack-name=CustomCDKToolkit --qualifier=[custom qualifier id]
import * as cdk from 'aws-cdk-lib';

const qualifier = app.node.tryGetContext('qualifier');

new MainStack(app, '...', {
  ...
  synthesizer: new cdk.DefaultStackSynthesizer({
    qualifier: qualifier,
  }),
  ...
});

사실 cdk bootstrap을 통해 만들어지는 Stack을 별도로 관리하거나 하기위해 커스텀 하는 경우는 잘 없다고 생각합니다만,
간단히 위의 명령어를 통해 기존에 기본 설정으로 만들어지는 CDKToolkit 이라는 Stack 명을 커스텀 하거나 qualifier 명이라는 Stack의 리소스에 적용되는 문자열 값을 커스텀 할 수 있습니다.

https://docs.aws.amazon.com/ko_kr/cdk/v2/guide/ref-cli-cmd-bootstrap.html

부트스트랩 스택마다 고유한 9자리 문자열 값입니다. 이 값은 부트스트랩 스택에 있는 리소스의 물리적 ID에 추가됩니다.
한정자를 제공하면 동일한 환경에서 여러 부트스트랩 스택을 프로비저닝할 때 리소스 이름 충돌을 방지할 수 있습니다.
한정자를 변경하면 CDK 앱이 스택 신디사이저에 변경된 값을 전달해야 합니다.

참고로 qualifier의 경우 최대 9자리의 문자열을 지정할 수 있습니다.

참고자료

https://docs.aws.amazon.com/ko_kr/cdk/v2/guide/bootstrapping.html#bootstrapping-what

https://docs.aws.amazon.com/ko_kr/cdk/v2/guide/ref-cli-cmd-bootstrap.html

https://docs.aws.amazon.com/ko_kr/cdk/v2/guide/ref-cli-cmd-bootstrap.html

문의 사항은 클래스메소드 코리아로!

클래스메소드 코리아에서는 다양한 세미나 및 이벤트를 진행하고 있습니다.
진행중인 이벤트는 아래 페이지를 참고해주세요.

https://classmethod.kr/board/library

AWS에 대한 상담 및 클래스 메소드 멤버스에 관한 문의사항은 아래 메일로 연락주시면 감사드립니다!
Info@classmethod.kr

この記事をシェアする

facebookのロゴhatenaのロゴtwitterのロゴ

© Classmethod, Inc. All rights reserved.