v AWS CDK 2 개발자 안내서입니다. 이전 CDK v1은 2022년 6월 1일에 유지 관리에 들어갔으며 2023년 6월 1일에 지원을 종료했습니다.
기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.
AWS CDK이란 무엇인가요?
AWS Cloud Development Kit (AWS CDK)는 코드에서 클라우드 인프라를 정의하고 AWS CloudFormation을 통해 프로비저닝하기 위한 오픈 소스 소프트웨어 개발 프레임워크입니다.
AWS CDK는 두 가지 기본 부분으로 구성됩니다.
-
AWS CDK Construct 라이브러리 - 인프라를 빠르게 개발하기 위해 사용, 수정 및 통합할 수 있는 미리 작성된 모듈식 및 재사용 가능한 코드의 컬렉션입니다. AWS CDK Construct 라이브러리의 목표는 AWS에서 애플리케이션을 빌드할 때 AWS 서비스를 정의하고 통합하는 데 필요한 복잡성을 줄이는 것입니다.
-
AWS CDK Command Line Interface(AWS CDK CLI) – CDK 앱과 상호 작용하기 위한 명령줄 도구입니다. CDK CLI를 사용하여 AWS CDK 프로젝트를 생성, 관리 및 배포합니다. CDK CLI는 CDK Toolkit라고도 합니다.
AWS CDK는 TypeScript, JavaScript, Python, Java, C#/.Net 및 Go를 지원합니다. 이러한 지원되는 프로그래밍 언어를 사용하여 구문이라고 하는 재사용 가능한 클라우드 구성 요소를 정의할 수 있습니다. 이를 스택과 앱으로 함께 구성합니다. 그런 다음 AWS CloudFormation에 CDK 애플리케이션을 배포하여 리소스를 프로비저닝하거나 업데이트합니다.
![AWS CDK app structure with stacks, constructs, and deployment to CloudFormation.](images/AppStacks.png)
AWS CDK의 이점
AWS CDK를 사용하여 프로그래밍 언어의 우수한 표현력을 활용하여 클라우드에서 신뢰할 수 있고 확장 가능하며 비용 효과적인 애플리케이션을 개발하세요. 이 접근 방식은 다음과 같은 많은 이점을 제공합니다.
- 코드형 인프라(IaC) 개발 및 관리
-
코드형 인프라를 연습하여 프로그래밍, 설명 및 선언 방식으로 인프라를 생성, 배포 및 유지 관리합니다. IaC를 사용하면 개발자가 코드를 처리하는 것과 동일한 방식으로 인프라를 처리합니다. 이를 통해 인프라 관리에 대한 확장 가능하고 구조화된 접근 방식을 얻을 수 있습니다. IaC에 대해 자세히 알아보려면 AWS 백서의 DevOps 소개에서 코드형 인프라를 참조하세요.
AWS CDK를 사용하면 인프라, 애플리케이션 코드 및 구성을 모두 한 곳에 배치하여 모든 이정표에서 완전한 클라우드 배포 가능 시스템을 확보할 수 있습니다. 코드 검토, 유닛 테스트 및 소스 제어와 같은 소프트웨어 엔지니어링 모범 사례를 사용하여 인프라를 더욱 견고하게 만듭니다.
- 범용 프로그래밍 언어를 사용하여 클라우드 인프라 정의
-
AWS CDK를 사용하면 프로그래밍 언어 Go. TypeScript, JavaScript, Python, Java, C#/.Net을 사용하여 클라우드 인프라를 정의할 수 있습니다. 선호하는 언어를 선택하고 매개변수, 조건부, 루프, 구성 및 상속과 같은 프로그래밍 요소를 사용하여 인프라의 원하는 결과를 정의하세요.
동일한 프로그래밍 언어를 사용하여 인프라와 애플리케이션 로직을 정의합니다.
구문 강조 표시 및 지능형 코드 완료와 같이 선호하는 IDE(통합 개발 환경)에서 인프라를 개발할 때의 이점을 누릴 수 있습니다.
- AWS CloudFormation를 통해 인프라 배포
-
AWS CDK는 AWS CloudFormation과 통합되어 AWS에서 인프라를 배포하고 프로비저닝합니다. AWS CloudFormation은 AWS에서 서비스를 프로비저닝하기 위한 리소스 및 속성 구성에 대한 광범위한 지원을 제공하는 관리형 AWS 서비스입니다. AWS CloudFormation를 사용하면 오류 발생 시 롤백과 함께 예측 가능하고 반복적으로 인프라 배포를 수행할 수 있습니다. 이미 AWS CloudFormation에 익숙한 경우 AWS CDK를 시작할 때 새 IaC 관리 서비스를 배울 필요가 없습니다.
- 구문으로 빠르게 애플리케이션 개발 시작하기
-
구문이라고 하는 재사용 가능한 구문을 사용하고 공유하여 더 빠르게 개발하세요. 개별 AWS CloudFormation 리소스와 해당 속성을 정의하려면 하위 수준 구문을 사용합니다. 상위 수준 구문을 사용하면 AWS 리소스에 대한 합리적이고 안전한 기본값을 사용하여 애플리케이션의 더 큰 구성 요소를 빠르게 정의하고, 더 적은 코드로 더 많은 인프라를 정의할 수 있습니다.
고유한 사용 사례에 맞게 사용자 지정된 자체 구문을 생성하고 조직 전체 또는 일반 대중과 공유하세요.
AWS CDK의 예
다음은 AWS CDK Constructs 라이브러리를 사용하여 AWS Fargate 시작 유형으로 Amazon Elastic Container Service(Amazon ECS) 서비스를 생성하는 예입니다. 이 예에 대한 자세한 내용은 예: AWS CDK를 사용하여 AWS Fargate 서비스 생성 섹션을 참조하세요.
이 클래스는 500줄이 넘는 AWS CloudFormation 템플릿
AWS CDK 기능
AWS CDK GitHub 리포지토리
공식 AWS CDK GitHub 리포지토리는 aws-cdk
AWS CDK는 오픈 소스이므로 팀은 더 나은 도구로 만드는 데 기여하도록 권장합니다. 자세한 내용은 Contributing to the AWS Cloud Development Kit (AWS CDK)
AWS CDK API 참조
AWS CDK Construct 라이브러리는 CDK 애플리케이션을 정의하고 애플리케이션에 CDK 구문을 추가하는 API를 제공합니다. 자세한 내용은 AWS CDK API 참조를 참조하세요.
Construct Programming Model
CPM(Construct Programming Model)은 AWS CDK의 개념을 추가 도메인으로 확장합니다. CPM을 사용하는 다른 도구는 다음과 같습니다.
-
CDK for Terraform
(CDKtf) -
CDK for Kubernetes
(CDK8s) -
Projen
- 프로젝트 구성 빌드용
Construct Hub
Construct Hub
다음 단계
AWS CDK 사용을 시작하려면 AWS CDK 시작하기 섹션을 참조하세요.
자세히 알아보기
AWS CDK에 대해 계속 알아보려면 다음을 참조하세요.
-
AWS CDK 핵심 개념 알아보기 - AWS CDK에 대한 중요한 개념 및 용어입니다.
-
AWS CDK Workshop
- AWS CDK를 배우고 사용하기 위한 실습 워크숍입니다. -
AWS CDK Patterns
- AWS 전문가가 AWS CDK를 위해 빌드한 AWS 서버리스 아키텍처 패턴의 오픈 소스 컬렉션입니다. -
AWS CDK 코드 예제
- 예제 AWS CDK 프로젝트의 GitHub 리포지토리입니다. -
cdk.dev
- AWS CDK를 위한 커뮤니티 중심 허브로, 커뮤니티 Slack 워크스페이스도 포함되어 있습니다. -
Awesome CDK
– AWS CDK 오픈 소스 프로젝트, 가이드, 블로그 및 기타 리소스의 정리된 목록을 포함하는 GitHub 리포지토리입니다. -
AWS Solutions Constructs
– 프로덕션 지원 애플리케이션으로 쉽게 조립할 수 있는 검증된 구성 코드형 인프라(IaC) 패턴입니다. -
AWS Developer Tools Blog
– AWS CDK에 대해 필터링된 블로그 게시물입니다. -
AWS CDK on Stack Overflow
– Stack Overflow의 aws-cdk로 태그가 지정된 질문입니다. -
AWS CDK tutorial for AWS Cloud9 – AWS Cloud9 개발 환경에서 AWS CDK를 사용하는 방법에 대한 자습서입니다.
AWS CDK와 관련된 주제에 대해 자세히 알아보려면 다음을 참조하세요.
-
AWS CloudFormation 개념 – AWS CDK는 AWS CloudFormation과 함께 작동하도록 구축되었으므로 AWS CloudFormation의 주요 개념을 배우고 이해하는 것이 좋습니다.
-
AWS 용어집 - AWS 전체에서 사용되는 주요 용어의 정의입니다.
서버리스 애플리케이션 개발 및 배포를 간소화하는 데 사용할 수 있는 AWS CDK와 관련된 도구에 대해 자세히 알아보려면 다음을 참조하세요.
-
AWS Serverless Application Model
– AWS에서 서버리스 애플리케이션을 빌드하고 실행하는 경험을 간소화하고 개선하는 오픈 소스 개발자 도구입니다. -
AWSChalice
- Python에서 서버리스 앱을 작성하기 위한 프레임워크입니다.