AWS 클라우드 개발 키트(CDK)는 현대적 프로그래밍 언어를 사용하여 클라우드 인프라를 코드로 정의하고 AWS CloudFormation을 통해 배포하는 오픈 소스 소프트웨어 개발 프레임워크입니다.
AWS CDK 명령줄 인터페이스(CLI)를 사용하여 CDK 애플리케이션과 상호 작용할 수 있습니다. CDK CLI를 사용하면 CDK 앱에 정의된 스택을 나열하고, 스택을 CloudFormation 템플릿에 합성하고, 실행 중인 스택 인스턴스와 CDK 코드에 정의된 스택 간의 차이점을 확인하고, 원하는 퍼블릭 AWS 리전에 스택을 배포할 수 있습니다.
AWS CDK 프레임워크를 사용하여 CloudFormation 템플릿을 생성하기 위해 실행되는 AWS CDK 프로젝트를 작성합니다. AWS CDK 프로젝트는 AWS CDK 명령줄이나 지속적 전달 시스템에서 실행될 수 있습니다.
AWS CDK를 시작하는 가장 좋은 방법은 AWS CDK 개발자 안내서의 시작하기 섹션을 살펴보는 것입니다. 몇 분 이내에 첫 번째 AWS CDK 애플리케이션을 정의하고 배포할 수 있습니다. 보다 자세한 안내 자습서는 https://CDKworkshop.com을 참조하십시오.
예. 다양한 프로그래밍 언어로 된 여러 AWS CDK 예제를 https://github.com/aws-samples/aws-cdk-examples에서 확인할 수 있습니다. AWS 개발자 안내서에는 https://docs.aws.amazon.com/cdk/latest/guide/examples.html의 예도 포함되어 있습니다.
AWS는 TypeScript로 AWS Construct Library의 비즈니스 로직을 구축하고, 지원되는 각 프로그래밍 언어에 대한 매핑을 제공합니다. 이렇게 하면 AWS CDK 구성의 동작이 언어마다 일관되게 수행되므로 모든 언어에서 사용할 수 있는 포괄적인 구성 패키지 세트를 제공할 수 있습니다. AWS CDK 프로젝트에 작성하는 코드는 모두 원하는 프로그래밍 언어로 기본 제공되며, JavaScript 런타임은 프로그래밍 환경에 대한 구현 세부 사항입니다. https://github.com/aws/jsii에서 jsii 프로젝트를 참조할 수 있습니다.
AWS CDK 코드는 오픈 소스이며 https://github.com/awslabs/aws-cdk에서 GitHub을 통해 사용할 수 있습니다.
앱을 AWS CDK v2로 마이그레이션하려면 먼저 cdk.json에서 기능 플래그를 업데이트하세요. 그런 다음 프로그래밍 언어에 필요한 대로 앱의 종속성을 업데이트하고 가져옵니다. https://docs.aws.amazon.com/cdk/latest/guide/work-with-cdk-v2.html에서 자세히 알아볼 수 있습니다.
AWS에서는 AWS CDK를 공개적으로 개발하고 있으며 코드 기반에 기여하고자 하는 모든 분을 환영합니다. 자세한 내용은 https://github.com/awslabs/aws-cdk/blob/master/CONTRIBUTING.md에서 확인할 수 있습니다.
AWS CDK는 JavaScript, TypeScript, Python, Java 및 C#에서 정식 버전으로, Go에서 개발자 평가판으로 지원됩니다. 앞으로 다른 언어에 대한 AWS CDK 바인딩을 계획하고 있으므로, GitHub에서 원하는 언어에 투표하세요.
AWS CDK는 모든 퍼블릭 리전에서 AWS 리소스를 정의하고 배포하는 데 사용할 수 있습니다. AWS CDK는 CloudFormation 서비스를 활용하므로 AWS 리전별 특정 리소스의 가용성에 대한 세부 정보는 리전별 제품 및 서비스를 참조하세요.
AWS CDK는 CloudFormation 서비스를 활용하므로 AWS CDK 애플리케이션은 CloudFormation 서비스에 의해 부과되는 것과 동일한 제한을 받습니다.
AWS Solutions Constructs는 AWS CDK의 오픈 소스 라이브러리 확장입니다. AWS Solutions Constructs는 AWS Well-Architected Framework에서 수립한 모범 사례를 사용하여 구축된 검증된 다중 서비스 아키텍처 패턴 모음을 제공합니다. AWS Solutions Constructs를 사용하려면 AWS CDK를 전제 조건으로 설치해야 합니다. AWS CDK 환경에 AWS Solutions Constructs를 추가하는 방법에 대한 지침은 개발 가이드를 참조하세요.
AWS CDK 구성은 AWS Construct Library를 통해 제공되며 재사용을 위해 패키징된 클라우드 인프라 로직의 추상화를 나타냅니다. 구성은 로컬에서 정의하거나 조직 간 공유를 위해 npm, Maven, NuGet 또는 PyPI와 같은 패키지 관리자에 게시할 수 있습니다.
AWS에서는 풍부한 상위 레벨 구문으로 다양한 일반적인 AWS 서비스 및 기능을 지원하며, 새로운 리소스(사용할 수 있게 된 직후)를 비롯하여 하위 레벨 CloudFormation 리소스를 모두 지원합니다. AWS에서는 CloudFormation 사양이 변경될 때마다 리소스 레벨 API를 자동 생성하여 AWS Construct Library를 최신 상태로 유지합니다. 이렇게 자동 생성되는 API 외에도 수작업으로 더 높은 수준의 추상화 기능을 제공하므로 각 서비스에서 더욱더 쉽게 작업할 수 있습니다. 아직 모든 AWS 서비스에 대해 이러한 상위 수준의 편리한 추상화 기능을 갖추고 있진 않지만, 현대적 클라우드 애플리케이션에서 가장 많이 사용되는 서비스를 중심으로 새로운 기능을 계속해서 추가하고 있습니다. 자세한 내용은 AWS Construct Library API 참조를 참조하십시오.
AWS에서는 새로운 CloudFormation 기능이 게시된 직후에 이를 AWS CDK에 추가하여 AWS Construct Library와 CloudFormation 리소스 사양의 동기화를 유지합니다.
AWS CDK Construct Library는 다른 라이브러리와 동일합니다. 사용하는 프로그래밍 언어의 패키지 관리자를 통해 소비되며 이러한 라이브러리를 최신 상태로 유지하는 작업은 일반적인 워크플로에 포함되어 있습니다. 모든 패키지는 시맨틱 버전 관리를 지원하므로 새로운 인프라 모델로 마이그레이션할 시기를 의식적으로 선택할 수 있습니다.
AWS CDK는 현대적 프로그래밍 언어의 모든 기능을 활용하여 AWS 인프라를 코드로 정의하는 개발자 중심의 도구 키트로 고려할 수 있습니다. AWS CDK 애플리케이션이 실행되면 완전히 구성된 CloudFormation JSON/YAML 템플릿으로 컴파일된 다음 프로비저닝을 위해 CloudFormation 서비스에 제출됩니다. AWS CDK는 CloudFormation을 활용하므로 안전한 배포, 자동 롤백, 드리프트 감지 등 CloudFormation이 제공하는 모든 이점을 계속 누릴 수 있습니다.
AWS Serverless Application Model 및 AWS CDK는 모두 AWS 인프라를 코드로 추상화하므로 클라우드 인프라를 더 쉽게 정의할 수 있습니다. AWS SAM은 서버리스 사용 사례와 아키텍처에 초점을 맞추고 있으며 인프라를 간결한 선언형 JSON/YAML 템플릿으로 정의할 수 있습니다. AWS CDK는 모든 AWS 서비스에 걸쳐 광범위한 지원을 제공하며 클라우드 인프라를 TypeScript, Python, C# 및 Java와 같은 현대적 프로그래밍 언어로 정의할 수 있습니다. AWS SAM 및 AWS CDK 모두 CloudFormation을 인프라 스택의 프로비저닝 엔진으로 활용합니다. 간결한 선언형 템플릿으로 서버리스 인프라를 정의하는 것을 선호한다면 SAM이 더 적합합니다. AWS 인프라를 익숙한 프로그래밍 언어로 정의하려는 경우에는 AWS CDK를 사용하는 것이 좋습니다. 두 경우 모두 CloudFormation을 통해 반복 가능하고 안전한 인프라 배포를 활용할 수 있습니다.
예. 로컬에서 AWS CDK 애플리케이션을 CloudFormation 템플릿으로 합성한 다음 생성된 AWS Lambda 핸들러 ID를 SAM CLI에서 참조하면 됩니다. 자세한 내용은 CDK 개발자 가이드의 SAM CLI 섹션을 참조하십시오.
AWS CDK는 Apache 라이선스 버전 2.0에 따라 배포됩니다. 자세한 내용은 LICENSE 및 NOTICE 페이지를 참조하시기 바랍니다.
AWS CDK에는 추가 비용이 없습니다. 수동으로 생성했을 때와 마찬가지로 AWS CDK를 사용해 생성한 AWS 리소스(예: Amazon EC2 인스턴스, Elastic Load Balancing 로드 밸런서)에 대해서만 요금을 지불하면 됩니다. 종량제로 요금이 청구되며 최소 요금 및 선수금은 없습니다.