AWS CDK를 이용해 IaC 개발을 시작하기 전에 아래의 고려사항을 확인하여 진행하는 것이 좋습니다.
1. CDK 개발을 위한 프로그래밍 언어 선정
AWS CDK는 현재 아래의 5가지 주요 프로그래밍 언어를 지원합니다.
TypeScript | JavaScript | Python | Java | C# |
위 5가지 언어중에서 어떤걸 사용해도 무방하며, 프로젝트 관리자와 논의하여 사용할 언어를 선정하는게 좋습니다.
만약, 어느것을 사용해도 무방하다면 되도록 “TypeScript”를 사용하는 것이 가장 좋습니다.
왜냐하면, AWS CDK 자체는 TypeScript로 개발 후, AWS가 직접 개발하여 오픈소스로 공개한 JSii 라는 언어 변환 도구를 이용하여 다른 언어들로 변환 과정을 거쳤으며, 많은 AWS CDK 예제들이 TypeScript로 작성되어 있기 때문입니다.
만약, TypeScript 가 아닌 다른 언어를 사용하여 개발 도중 TypeScript로 만들어진 예제들을 확인하여 사용중인 언어로 적용하고자 한다면, AWS CDK 개발 문서에서 제공하는 아래 문서를 읽어보시고 적용하시면 좋습니다.
2. CDK 를 위한 CI/CD Pipeline 구성 필요 여부
CDK를 이용하여 구축된 AWS 자원들은 지속적으로 관리가 필요하게 됩니다.
이를 위해서는 자동화된 CDK 실행 Pipeline 환경이 필요하며 이를 “CDK Pipeline” 이라고 부릅니다.
CDK Pipeline 구성을 위해서는 단순 CDK 개발보다는 CDK Pipeline 환경을 구성하기 위한 노력과 시간이 더 소비되게 됩니다. 따라서, CDK 개발 기간에 대해서도 고민이 필요하니 반드시 Pipeline 구성 여부를 반드시 확인하여야 합니다.
또한, CDK Pipeline은 아래의 AWS 자원들을 사용하여 구축되므로 사전에 CDK Pipeline 구성 여부를 확인하여 관련 자원 생성에 대해 알고 있어야 합니다.
Source Provider |
|
Pipeline Engine | AWS CodePipeline, CDK Pipelines for GitHub Workflows |
Artifact Store (CDK 배포 파일 관리) |
Amazon S3 |
Artifact Data Encryption | AWS KMS |
CDK Build/Deploy | AWS CodeBuild |
3. CDK 개발 소스 저장소 선정
CDK 개발시 작성되는 소스 코드를 관리한 코드 저장소 선정이 필요합니다.
일반적으로는 Git 저장소를 지원하는 다양한 서비스들이면 충분하지만, 2번 항목에서 언급한 것처럼 CDK Pipeline 구성을 하려면, 아래 4가지 종류만 사용이 가능하니 2번 항목과 더불이 소스 코드 저장소 선정에 대해서도 미리 확인이 필요합니다.
- AWS CodeCommit
- GitHub (Cloud)
- GitHub Enterprise Server
- Bitbucket (Cloud)