AWS CDK의 라이프사이클은 개발자가 작성한 프로그래밍 언어 코드가 최종적으로 AWS 클라우드 리소스로 프로비저닝되기 전까지의 전 과정을 의미한다. 이 과정은 크게 Construct(구성), Sysnthesis(합성), Deployment(배포)의 단계로 나뉜다.
CDK는 단순히 코드를 실행하는 것이 아니라 여러 단계를 거쳐 의존성을 확인하고 템플릿을 생성한다.
cdk synth이 단계는 프로그래밍 언어 세계에서 선언적 명세서(CloudFormation)의 세계로 넘어가는 연결점이다.
main 메서드 내 app.synth()호출 시점.cdk.out 폴더에 template.json 파일이 생성된다.Lambda 소스 코드나 Docker 이미지와 같은 로컬 파일들을 배포 가능한 형태로 가공한다.
cdk deploy실제로 AWS 계정에 변화를 일으키는 단계이다.
Java 코드 관점에서 라이프사이클이 어떻게 동작하는지 직관적으로 파악할 수 있다.
public class MyApp {
public static void main(final String[] args) {
// 1. Construction 단계 시작
App app = new App();
new MyStack(app, "MyStack", StackProps.builder().build());
// 2. Synthesis 단계 트리거
// 이 코드가 실행되면서 cdk.out 폴더에 CloudFormation 템플릿이 물리적으로 생성된다.
app.synth();
}
}
개발자가 터미널에서 cdk deploy 를 입력하면 내부적으로 다음 과정이 순차적으로 발생한다.
app.synth() 를 수행한다.cdk.out 내부의 템플릿을 AWS로 전송한다.| 명령어 | 라이프사이클 단계 | 설명 |
|---|---|---|
cdk synth | Synthesis | 코드를 CloudFormation 템플릿으로 변환하고 결과를 확인한다. |
cdk diff | Synthesis & Compare | 현재 배포된 리소스와 로컬 코드의 차이점을 분석하여 보여준다. |
cdk deploy | Deployment | 실제 AWS 계정에 리소스를 배포한다. |
cdk destroy | Cleanup | 배포된 스택과 리소스를 AWS에서 삭제한다. |