[aws] AWS CDK 실습(2) - 스택 업데이트

2022. 6. 5. 17:25✅ STUDY/AWS

안녕하세요 :)

오늘은 이전에 만든 CDK Stack의 값을 수정하거나 추가하여, Stack을 업데이트하도록 하겠습니다 🎈
이 글을 보기 전에 이전 글을 보고 실습을 먼저 진행해주세요 !

 

[aws] AWS CDK 실습(1) - 프로젝트 구조, CDK CLI, 작동 원리 포함

안녕하세요 :) 오늘은 AWS CDK 프로젝트 구조, CDK CLI, 작동 원리를 알아보고 CDK를 사용해 간단한 인프라를 배포해보겠습니다. AWS CDK란? AWS 클라우드 개발 키트(CDK)는 현대적 프로그래밍 언어를 사

minjii-ya.tistory.com


CDK 스택 업데이트

lib/cdk-workshop-stack.ts : CDK 애플리케이션의 메인 스택이 정의되는 곳입니다. 실제 배포할 리소스를 정의하고 관리하는 가장 중요한 파일입니다. ✨
-> workshop sample code에서는, 아래의 리소스를 생성하고 있습니다.

  • SQS 대기열(new sqs.Queue)
  • SNS 주제(new sns.Topic)
  • 큐를 구독하여 주제에 게시된 모든 메시지(topic.addSubscription)


코드를 보시면 queue를 만들 때 visibilityTimeout만 설정했기 때문에, queue의 이름은 랜덤으로 지정되어 생성되었습니다.



API 문서(https://docs.aws.amazon.com/cdk/api/v1/docs/@aws-cdk_aws-sqs.Queue.html)를 참고하여, queue에 이름을 지정해볼게요.


CDK 프로젝트 배포

이제 해당 변경된 sample code를 AWS에 배포해봅시다.

[차이(diff)]

지정된 스택을 배포된 스택 또는 로컬 CloudFormation 템플릿과 비교하여 차이가 있는 부분을 Terminal에 출력합니다.

cdk diff

실제, cdk.out의 템플릿 파일을 확인하면 이전과 다르게 QueueName이 추가 등록된 것을 확인할 수 있습니다.

 

[배포(deploy)]

배포 명령어를 통해 실제 AWS 계정에 배포해봅시다❗

cdk deploy

cdk deploy를 터미널에 입력하시고, 배포를 해줍니다.


결과 확인

AWS Console > CloudFormation에서 결과를 확인하실 수 있습니다.
파일에 정의되었던 CdkWorkshopStack의 수정 사항이 생겼기 때문에, UPDATE를 진행하고 UPDATE_COMPLETE 상태가 되었습니다.

Stack을 처음 배포하면 CREATE_COMPLETE 상태가 되지만, 코드를 변경해 수정 사항이 생기면 이후로는 UPDATE 상태가 된다는 것을 알 수 있습니다.



실제로 Events에서는 아래의 이벤트가 발생했습니다. (시간 순서대로 아래에서 위로 확인해야 함)
연결된 SNS Topic의 Subscription을 삭제 -> 기존 랜덤값의 이름을 가진 queue 삭제 -> mjkim-queue를 새로 생성했다는 것을 알 수 있네요! 


실제 queue이름이 제가 지정한 mjkim-queue로 바뀌었습니다 😀

 


AWS CDK를 실제로 실습해보면서 알아보았습니다.
AWS CDK를 통해 인프라를 개발하고 배포해보세요 🎈