cdk (1) - FAQ

요매·2023년 7월 31일

toy project

목록 보기
6/7

cdk FAQ

cdk란 대체 뭔가요?

AWS 클라우드 개발 키트(CDK)는 현대적 프로그래밍 언어를 사용하여 클라우드 인프라를 코드로 정의하고 AWS CloudFormation을 통해 배포하는 오픈 소스 소프트웨어 개발 프레임워크입니다.
라고 FAQ 에서 답변을 해주셨습니다.

cdk 를 통해서 무엇을 할 수 있나요?

AWS CDK 명령줄 인터페이스(CLI)를 사용하여 CDK 애플리케이션과 상호 작용할 수 있습니다. CDK CLI를 사용하면 CDK 앱에 정의된 스택을 나열하고, 스택을 CloudFormation 템플릿에 합성하고, 실행 중인 스택 인스턴스와 CDK 코드에 정의된 스택 간의 차이점을 확인하고, 원하는 퍼블릭 AWS 리전에 스택을 배포할 수 있습니다.
라고 FAQ 에서 답변을 해주셨습니다.

그냥 콘솔에서 하면 안되나요?

그냥 콘솔에서 해도 됩니다.
물론 테라폼으로 해도 됩니다.

근데 아직 그렇게 지원해줄 devops 가 없을 때, 개발자들끼리 뭔가 인프라의 변경의 이력관리가 필요할 때, cdk가 딱 좋은 것 같습니다.

장점

  • 이력관리가 가능해요. 누가 뭘 바꿨는지... git 등으로 이력관리를 할 수 있어요.
  • devops 가 없거나 조금 힘들 때 개발자가 aws 의 인프라를 관리/개발할 수 있어요.
  • console이 아닌 cli로 모든 컨트롤이 가능해요. <개발자의 로망>이죠.

단점

  • 아무래도 aws에 익숙해야 합니다. aws에 대해 하나도 모르는 주니어 개발자가 하기에는 어렵습니다.
  • 네트워크(적어도 subnet 개념은 머릿속에 있으셔야 해요), 보안그룹이 뭔지, alb/nlb가 뭔지, vpc가 뭔지, ecr, ecs 등등 어떻게 생성하고 사용하는지는 적어도 알고 있어야 사용하기 수월해요.
  • 아무래도 러닝커브가 있어요. 근데 한번 가파른 곡선을 넘어가면 그 다음부터는 쉽습니다.
  • 레퍼런스가 진짜 적습니다. 특히 국내 레퍼런스는 거의 전무하다고 보시면 됩니다.
  • 저는 typescript로 작성하는데, 모두가 동일한 언어에 대해 어느정도 level이 동일해야 한다고 생각합니다.
  • 콘솔로 한번 건드리고 해당 변경사항을 cdk script에 반영하지 않았다면, 언젠가 snowball이 되어 당신에게 지옥을 선사합니다.

cdk 해봐요

console에서 일반 ec2를 생성하려면 하는 순서 그대로 cdk 로 작성할 예정입니다.
vpc, lb, sg, ec2 생성 후 빠르게 keycloak 을 설치하는게 1차 목표,
그 후 lb, sg, td, ecr, ecs 후 github actions 를 통한 배포 시스템을 만드는게 2차 목표입니다.

다음 포스트부터 하나씩 해보도록 할게요. :)

profile
머리속에서 정리가 안돼...

0개의 댓글