쿠키 기본 설정 선택

당사는 사이트와 서비스를 제공하는 데 필요한 필수 쿠키 및 유사한 도구를 사용합니다. 고객이 사이트를 어떻게 사용하는지 파악하고 개선할 수 있도록 성능 쿠키를 사용해 익명의 통계를 수집합니다. 필수 쿠키는 비활성화할 수 없지만 '사용자 지정' 또는 ‘거부’를 클릭하여 성능 쿠키를 거부할 수 있습니다.

사용자가 동의하는 경우 AWS와 승인된 제3자도 쿠키를 사용하여 유용한 사이트 기능을 제공하고, 사용자의 기본 설정을 기억하고, 관련 광고를 비롯한 관련 콘텐츠를 표시합니다. 필수가 아닌 모든 쿠키를 수락하거나 거부하려면 ‘수락’ 또는 ‘거부’를 클릭하세요. 더 자세한 내용을 선택하려면 ‘사용자 정의’를 클릭하세요.

란 무엇입니까 AWS CDK?

포커스 모드
란 무엇입니까 AWS CDK? - AWS Cloud Development Kit (AWS CDK) v2

v AWS CDK 2 개발자 안내서입니다. 이전 CDK v1은 2022년 6월 1일에 유지 관리에 들어갔으며 2023년 6월 1일에 지원이 종료되었습니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

v AWS CDK 2 개발자 안내서입니다. 이전 CDK v1은 2022년 6월 1일에 유지 관리에 들어갔으며 2023년 6월 1일에 지원이 종료되었습니다.

기계 번역으로 제공되는 번역입니다. 제공된 번역과 원본 영어의 내용이 상충하는 경우에는 영어 버전이 우선합니다.

AWS Cloud Development Kit (AWS CDK) 는 코드에서 클라우드 인프라를 정의하고 이를 프로비저닝하기 위한 오픈 소스 소프트웨어 개발 프레임워크입니다 AWS CloudFormation.

는 두 가지 기본 부분으로 AWS CDK 구성됩니다.

  • AWS CDK Construct Library - 인프라를 빠르게 개발하기 위해 사용, 수정 및 통합할 수 있는 구문이라고 하는 사전 작성된 모듈식 및 재사용 가능한 코드 모음입니다. AWS CDK Construct Library의 목표는 애플리케이션을 구축할 때 AWS 서비스를 정의하고 통합하는 데 필요한 복잡성을 줄이는 것입니다 AWS.

  • AWS CDK 명령줄 인터페이스(AWS CDKCLI) - CDK 앱과 상호 작용하기 위한 명령줄 도구입니다. CDK CLI를 사용하여 AWS CDK 프로젝트를 생성, 관리 및 배포합니다. CDK CLI는 CDK Toolkit라고도 합니다.

는 TypeScript, JavaScript, Python, Java, 및 C#/.Net를 AWS CDK 지원합니다Go. 이러한 지원되는 프로그래밍 언어를 사용하여 구문이라고 하는 재사용 가능한 클라우드 구성 요소를 정의할 수 있습니다. 이를 스택으로 함께 구성합니다. 그런 다음 AWS CloudFormation 에 CDK 애플리케이션을 배포하여 리소스를 프로비저닝하거나 업데이트합니다.

AWS CDK app structure with stacks, constructs, and deployment to CloudFormation.

의 이점 AWS CDK

AWS CDK 를 사용하여 프로그래밍 언어의 상당한 표현력으로 클라우드에서 안정적이고 확장 가능하며 비용 효율적인 애플리케이션을 개발할 수 있습니다. 이 접근 방식은 다음과 같은 많은 이점을 제공합니다.

코드형 인프라(IaC) 개발 및 관리

코드형 인프라를 연습하여 프로그래밍, 설명 및 선언 방식으로 인프라를 생성, 배포 및 유지 관리합니다. IaC를 사용하면 개발자가 코드를 처리하는 것과 동일한 방식으로 인프라를 처리합니다. 이를 통해 인프라 관리에 대한 확장 가능하고 구조화된 접근 방식을 얻을 수 있습니다. IaC에 대한 자세한 내용은 백서의 DevOps 소개에서 코드형 인프라를 참조하세요. DevOps AWS

를 사용하면 인프라 AWS CDK, 애플리케이션 코드 및 구성을 모두 한 곳에 배치하여 모든 마일스톤에서 완전한 클라우드 배포 가능 시스템을 확보할 수 있습니다. 코드 검토, 유닛 테스트 및 소스 제어와 같은 소프트웨어 엔지니어링 모범 사례를 사용하여 인프라를 더욱 견고하게 만듭니다.

범용 프로그래밍 언어를 사용하여 클라우드 인프라 정의

를 사용하면 다음 프로그래밍 언어를 사용하여 클라우드 인프라를 정의할 AWS CDK수 있습니다. TypeScript, JavaScript, Python, C#/.Net, Java및 Go. 선호하는 언어를 선택하고 매개변수, 조건부, 루프, 구성 및 상속과 같은 프로그래밍 요소를 사용하여 인프라의 원하는 결과를 정의하세요.

동일한 프로그래밍 언어를 사용하여 인프라와 애플리케이션 로직을 정의합니다.

구문 강조 표시 및 지능형 코드 완료와 같이 선호하는 IDE(통합 개발 환경)에서 인프라를 개발할 때의 이점을 누릴 수 있습니다.

Code snippet showing AWS CDK setup for ECS 클러스터 with VPC and Fargate service configuration.
를 통해 인프라 배포 AWS CloudFormation

AWS CDK 는와 통합되어에서 인프라를 배포하고 프로비저닝합니다 AWS. AWS CloudFormation 는에서 서비스를 프로비저닝 AWS CloudFormation 하기 위한 리소스 및 속성 구성에 대한 광범위한 지원을 AWS 서비스 제공하는 관리형 입니다 AWS. 를 AWS CloudFormation사용하면 오류 시 롤백과 함께 인프라 배포를 예측 가능하고 반복적으로 수행할 수 있습니다. 이미에 익숙하다면 AWS CloudFormation를 시작할 때 새 IaC 관리 서비스를 배울 필요가 없습니다 AWS CDK.

구문으로 빠르게 애플리케이션 개발 시작하기

구문이라고 하는 재사용 가능한 구문을 사용하고 공유하여 더 빠르게 개발하세요. 하위 수준 구문을 사용하여 개별 AWS CloudFormation 리소스와 해당 속성을 정의합니다. 상위 수준 구문을 사용하여 AWS 리소스에 대한 합리적이고 안전한 기본값을 사용하여 애플리케이션의 더 큰 구성 요소를 빠르게 정의하고 더 적은 코드로 더 많은 인프라를 정의합니다.

고유한 사용 사례에 맞게 사용자 지정된 자체 구문을 생성하고 조직 전체 또는 일반 대중과 공유하세요.

의 예 AWS CDK

다음은 AWS CDK Constructs Library를 사용하여 AWS Fargate 시작 유형의 Amazon Elastic Container Service(Amazon ECS) 서비스를 생성하는 예제입니다. 이 예에 대한 자세한 내용은 예:를 사용하여 AWS Fargate 서비스 생성 AWS CDK 섹션을 참조하세요.

TypeScript
export class MyEcsConstructStack extends Stack { constructor(scope: App, id: string, props?: StackProps) { super(scope, id, props); const vpc = new ec2.Vpc(this, "MyVpc", { maxAzs: 3 // Default is all AZs in region }); const cluster = new ecs.Cluster(this, "MyCluster", { vpc: vpc }); // Create a load-balanced Fargate service and make it public new ecs_patterns.ApplicationLoadBalancedFargateService(this, "MyFargateService", { cluster: cluster, // Required cpu: 512, // Default is 256 desiredCount: 6, // Default is 1 taskImageOptions: { image: ecs.ContainerImage.fromRegistry("amazon/amazon-ecs-sample") }, memoryLimitMiB: 2048, // Default is 512 publicLoadBalancer: true // Default is false }); } }
JavaScript
class MyEcsConstructStack extends Stack { constructor(scope, id, props) { super(scope, id, props); const vpc = new ec2.Vpc(this, "MyVpc", { maxAzs: 3 // Default is all AZs in region }); const cluster = new ecs.Cluster(this, "MyCluster", { vpc: vpc }); // Create a load-balanced Fargate service and make it public new ecs_patterns.ApplicationLoadBalancedFargateService(this, "MyFargateService", { cluster: cluster, // Required cpu: 512, // Default is 256 desiredCount: 6, // Default is 1 taskImageOptions: { image: ecs.ContainerImage.fromRegistry("amazon/amazon-ecs-sample") }, memoryLimitMiB: 2048, // Default is 512 publicLoadBalancer: true // Default is false }); } } module.exports = { MyEcsConstructStack }
Python
class MyEcsConstructStack(Stack): def __init__(self, scope: Construct, id: str, **kwargs) -> None: super().__init__(scope, id, **kwargs) vpc = ec2.Vpc(self, "MyVpc", max_azs=3) # default is all AZs in region cluster = ecs.Cluster(self, "MyCluster", vpc=vpc) ecs_patterns.ApplicationLoadBalancedFargateService(self, "MyFargateService", cluster=cluster, # Required cpu=512, # Default is 256 desired_count=6, # Default is 1 task_image_options=ecs_patterns.ApplicationLoadBalancedTaskImageOptions( image=ecs.ContainerImage.from_registry("amazon/amazon-ecs-sample")), memory_limit_mib=2048, # Default is 512 public_load_balancer=True) # Default is False
Java
public class MyEcsConstructStack extends Stack { public MyEcsConstructStack(final Construct scope, final String id) { this(scope, id, null); } public MyEcsConstructStack(final Construct scope, final String id, StackProps props) { super(scope, id, props); Vpc vpc = Vpc.Builder.create(this, "MyVpc").maxAzs(3).build(); Cluster cluster = Cluster.Builder.create(this, "MyCluster") .vpc(vpc).build(); ApplicationLoadBalancedFargateService.Builder.create(this, "MyFargateService") .cluster(cluster) .cpu(512) .desiredCount(6) .taskImageOptions( ApplicationLoadBalancedTaskImageOptions.builder() .image(ContainerImage .fromRegistry("amazon/amazon-ecs-sample")) .build()).memoryLimitMiB(2048) .publicLoadBalancer(true).build(); } }
C#
public class MyEcsConstructStack : Stack { public MyEcsConstructStack(Construct scope, string id, IStackProps props=null) : base(scope, id, props) { var vpc = new Vpc(this, "MyVpc", new VpcProps { MaxAzs = 3 }); var cluster = new Cluster(this, "MyCluster", new ClusterProps { Vpc = vpc }); new ApplicationLoadBalancedFargateService(this, "MyFargateService", new ApplicationLoadBalancedFargateServiceProps { Cluster = cluster, Cpu = 512, DesiredCount = 6, TaskImageOptions = new ApplicationLoadBalancedTaskImageOptions { Image = ContainerImage.FromRegistry("amazon/amazon-ecs-sample") }, MemoryLimitMiB = 2048, PublicLoadBalancer = true, }); } }
Go
func NewMyEcsConstructStack(scope constructs.Construct, id string, props *MyEcsConstructStackProps) awscdk.Stack { var sprops awscdk.StackProps if props != nil { sprops = props.StackProps } stack := awscdk.NewStack(scope, &id, &sprops) vpc := awsec2.NewVpc(stack, jsii.String("MyVpc"), &awsec2.VpcProps{ MaxAzs: jsii.Number(3), // Default is all AZs in region }) cluster := awsecs.NewCluster(stack, jsii.String("MyCluster"), &awsecs.ClusterProps{ Vpc: vpc, }) awsecspatterns.NewApplicationLoadBalancedFargateService(stack, jsii.String("MyFargateService"), &awsecspatterns.ApplicationLoadBalancedFargateServiceProps{ Cluster: cluster, // required Cpu: jsii.Number(512), // default is 256 DesiredCount: jsii.Number(5), // default is 1 MemoryLimitMiB: jsii.Number(2048), // Default is 512 TaskImageOptions: &awsecspatterns.ApplicationLoadBalancedTaskImageOptions{ Image: awsecs.ContainerImage_FromRegistry(jsii.String("amazon/amazon-ecs-sample"), nil), }, PublicLoadBalancer: jsii.Bool(true), // Default is false }) return stack }
export class MyEcsConstructStack extends Stack { constructor(scope: App, id: string, props?: StackProps) { super(scope, id, props); const vpc = new ec2.Vpc(this, "MyVpc", { maxAzs: 3 // Default is all AZs in region }); const cluster = new ecs.Cluster(this, "MyCluster", { vpc: vpc }); // Create a load-balanced Fargate service and make it public new ecs_patterns.ApplicationLoadBalancedFargateService(this, "MyFargateService", { cluster: cluster, // Required cpu: 512, // Default is 256 desiredCount: 6, // Default is 1 taskImageOptions: { image: ecs.ContainerImage.fromRegistry("amazon/amazon-ecs-sample") }, memoryLimitMiB: 2048, // Default is 512 publicLoadBalancer: true // Default is false }); } }

이 클래스는 AWS CloudFormation 500개 이상의 줄을 시도합니다. AWS CDK 앱을 배포하면 다음 유형의 리소스가 50개 이상 생성됩니다.

AWS CDK features

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 Library는 CDK 애플리케이션을 정의하고 애플리케이션에 CDK 구문을 추가하는 APIs를 제공합니다. 자세한 내용은 AWS CDK API 참조를 참조하세요.

Construct Programming Model

구성 프로그래밍 모델(CPM)은 이면의 개념을 추가 도메인 AWS CDK 으로 확장합니다. CPM을 사용하는 다른 도구는 다음과 같습니다.

Construct Hub

Construct Hub는 오픈 소스 AWS CDK 라이브러리를 찾고 게시하고 공유할 수 있는 온라인 레지스트리입니다.

다음 단계

사용을 시작하려면 섹션을 AWS CDK참조하세요시작하기 AWS CDK.

자세히 알아보기

에 대해 계속 알아보려면 다음을 AWS CDK참조하세요.

  • AWS CDK 핵심 개념 알아보기 -에 대한 중요한 개념 및 용어입니다 AWS CDK.

  • AWS CDK 워크숍 -를 배우고 사용하기 위한 실습 워크숍입니다 AWS CDK.

  • AWS CDK 패턴 - AWS 전문가가를 위해 구축 AWS CDK 한 AWS 서버리스 아키텍처 패턴의 오픈 소스 컬렉션입니다.

  • AWS CDK 코드 예제 - 예제 AWS CDK 프로젝트의 GitHub리포지토리입니다.

  • cdk.dev - 커뮤니티 Slack 워크스페이스를 AWS CDK포함한의 커뮤니티 기반 허브입니다.

  • Awesome CDK – AWS CDK 오픈 소스 프로젝트, 가이드, 블로그 및 기타 리소스의 정리된 목록을 포함하는 GitHub 리포지토리입니다.

  • AWS 솔루션 구성 - 프로덕션 지원 애플리케이션으로 쉽게 조립할 수 있는 Vetted의 코드형 구성 인프라(IaC) 패턴입니다.

  • AWS 개발자 도구 블로그 -에 대해 필터링된 블로그 게시물입니다 AWS CDK.

  • AWS CDK on Stack Overflow -에서 aws-cdk로 태그가 지정된 질문입니다Stack Overflow.

  • AWS CDK 습서 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에서 서버리스 앱을 작성하기 위한 프레임워크입니다.

이 페이지에서

프라이버시사이트 이용 약관쿠키 기본 설정
© 2025, Amazon Web Services, Inc. 또는 계열사. All rights reserved.