쿠키 기본 설정 선택

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

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

AWS CDK v1에서 AWS CDK v2로 마이그레이션

포커스 모드
AWS CDK v1에서 AWS CDK v2로 마이그레이션 - 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일에 지원이 종료되었습니다.

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

의 버전 2 AWS Cloud Development Kit (AWS CDK) 는 선호하는 프로그래밍 언어로 코드로 인프라를 더 쉽게 작성할 수 있도록 설계되었습니다. 이 주제에서는 AWS CDK v1과 v2 사이의 변경 사항을 설명합니다.

작은 정보

AWS CDK v1로 배포된 스택을 식별하려면 awscdk-v1-stack-finder 유틸리티를 사용합니다.

AWS CDK v1에서 CDK v2로의 주요 변경 사항은 다음과 같습니다.

  • AWS CDK v2는 코어 라이브러리를 포함하여 AWS Construct Library의 안정적인 부분을 단일 패키지인 로 통합합니다aws-cdk-lib. 개발자는 더 이상 사용하는 개별 AWS 서비스에 대한 추가 패키지를 설치할 필요가 없습니다. 또한 이 단일 패키지 접근 방식은 다양한 CDK 라이브러리 패키지의 버전을 동기화할 필요가 없음을 의미합니다.

    에서 사용할 수 있는 정확한 리소스를 나타내는 L1(CfnXXXX) 구문 AWS CloudFormation은 항상 안정적인 것으로 간주되므로에 포함됩니다aws-cdk-lib.

  • 새로운 L2 또는 L3 구문을 개발하기 위해 커뮤니티와 계속 협력하는 실험 모듈은 aws-cdk-lib에 포함되지 않습니다. 대신 개별 패키지로 배포됩니다. 실험 패키지의 이름은 alpha 접미사와 의미어 버전 번호로 지정됩니다. 의미 체계 버전 번호는 호환 가능한 AWS Construct Library의 첫 번째 버전과 접미사와도 일치alpha합니다. 구문은 안정적으로 지정된 후 aws-cdk-lib로 이동하여 기본 Construct Library가 엄격한 의미 체계 버전 관리를 준수하도록 허용합니다.

    안정성은 서비스 수준에서 지정됩니다. 예를 들어, 이 글을 쓰는 시점에는 L1 구문만 있는 Amazon AppFlow에 대해 하나 이상의 L2 구문을 생성하기 시작하면 이러한 구문은 먼저 @aws-cdk/aws-appflow-alpha라는 모듈에 나타납니다. 그런 다음 새로운 구문이 고객의 기본 요구 사항을 충족한다고 생각되면 aws-cdk-lib로 이동합니다.

    모듈이 안정적으로 지정되고 aws-cdk-lib에 통합되면 다음 글머리 기호에 설명된 ‘BetaN’ 규칙을 사용하여 새 API가 추가됩니다.

    각 실험 모듈의 새 버전은 AWS CDK의 릴리스마다 릴리스됩니다. 그러나 대부분의 경우 동기화 상태를 유지할 필요는 없습니다. 원할 때마다 aws-cdk-lib 또는 실험 모듈을 업그레이드할 수 있습니다. 단, 2개 이상의 관련 실험 모듈이 서로 종속된 경우 동일한 버전이어야 합니다.

  • 새 기능이 추가되는 안정적인 모듈의 경우 새 API(전체 새 구문 또는 기존 구문의 새 메서드 또는 속성)는 작업이 진행되는 동안 Beta1 접미사를 받습니다. (변경을 해제해야 하는 경우 Beta2, Beta3 등이 뒤따릅니다.) API가 안정적으로 지정되면 접미사가 없는 API 버전이 추가됩니다. 그런 다음 최신(베타 또는 최종)을 제외한 모든 메서드가 더 이상 사용되지 않습니다.

    예를 들어 새 메서드 grantPower()를 구문에 추가하면 처음에 grantPowerBeta1()로 표시됩니다. 중단 변경이 필요한 경우(예: 새로운 필수 파라미터 또는 속성) 메서드의 다음 버전은 grantPowerBeta2()로 지정됩니다. 작업이 완료되고 API가 완료되면 메서드 grantPower()(접미사 없음)가 추가되고 BetaN 메서드가 더 이상 사용되지 않습니다.

    모든 베타 API 다음 메이저 버전(3.0)이 릴리스될 때까지 construct 라이브러리에 남아 있으며 서명은 변경되지 않습니다. 사용 중단 경고를 사용하면 해당 경고가 표시되므로 최대한 빨리 API의 최종 버전으로 이동해야 합니다. 그러나 향후 AWS CDK 2.x 릴리스로 인해 애플리케이션이 중단되는 것은 없습니다.

  • Construct 클래스는 관련 유형과 함께에서 별도의 라이브러리 AWS CDK 로 추출되었습니다. 이는 구문 프로그래밍 모델을 다른 도메인에 적용하려는 노력을 지원하기 위한 것입니다. 자체 구문을 작성하거나 관련 API 사용하는 경우 constructs 모듈을 종속 항목으로 선언하고 가져오기를 약간 변경해야 합니다. CDK 앱 수명 주기에 연결하는 등의 고급 기능을 사용하는 경우 더 많은 변경이 필요할 수 있습니다. 자세한 내용은 RFC를 참조하세요.

  • AWS CDK v1.x 및 해당 Construct Library에서 더 이상 사용되지 않는 속성, 메서드 및 유형이 CDK v2 API에서 완전히 제거되었습니다. 지원되는 대부분 언어에서 이러한 API는 v1.x에서 경고를 생성하므로 이미 대체 API로 마이그레이션했을 수 있습니다. CDK v1.x에서 더 이상 사용되지 않는 API의 전체 목록은 GitHub에서 확인할 수 있습니다.

  • AWS CDK v1.x의 기능 플래그에 의해 게이트된 동작은 CDK v2에서 기본적으로 활성화됩니다. 이전 기능 플래그는 더 이상 필요하지 않으며 대부분의 경우 지원되지 않습니다. 매우 구체적인 상황에서 CDK v1 동작으로 되돌릴 수 있는 몇 가지 방법은 여전히 있습니다. 자세한 내용은 기능 플래그 업데이트 단원을 참조하십시오.

  • CDK v2를 사용하면 배포하는 환경을 최신 부트스트랩 스택을 사용하여 부트스트래핑해야 합니다. 레거시 부트스트랩 스택(v1의 기본값)은 더 이상 지원되지 않습니다. 또한 CDK v2에는 최신 스택의 새 버전이 필요합니다. 기존 환경을 업그레이드하려면 재부트스트래핑합니다. 더 이상 최신 부트스트랩 스택을 사용하기 위해 기능 플래그 또는 환경 변수를 설정할 필요가 없습니다.

중요

최신 부트스트랩 템플릿은에서 암시하는 권한을 --trust 목록의 --cloudformation-execution-policies 모든 AWS 계정에 효과적으로 부여합니다. 기본적으로 부트스트래핑된 계정의 모든 리소스에 대한 읽기 및 쓰기 권한이 확장됩니다. 편안한 정책 및 신뢰할 수 있는 계정으로 부트스트래핑 스택을 구성해야 합니다.

새로운 사전 요구 사항

AWS CDK v2에 대한 대부분의 요구 사항은 AWS CDK v1.x에 대한 요구 사항과 동일합니다. 추가 요구 사항은 여기에 나열되어 있습니다.

  • TypeScript 개발자의 경우 TypeScript 3.8 이상이 필요합니다.

  • CDK v2와 함께 사용하려면 새 버전의 CDK Toolkit가 필요합니다. 이제 CDK v2를 일반적으로 사용할 수 있으므로 CDK Toolkit를 설치할 때 v2가 기본 버전입니다. CDK v1 프로젝트와 역호환되므로 CDK v1 프로젝트를 생성하려는 경우가 아니면 이전 버전을 설치할 필요가 없습니다. 업그레이드하려면 npm install -g aws-cdk를 실행합니다.

AWS CDK v2 개발자 미리 보기에서 업그레이드

CDK v2 개발자 미리 보기를 사용하는 경우 프로젝트에 AWS CDK와 같은의 릴리스 후보 버전에 대한 종속성이 있습니다2.0.0-rc1. 이를 2.0.0으로 업데이트한 다음 프로젝트에 설치된 모듈을 업데이트합니다.

TypeScript

npm install 또는 yarn install

JavaScript

npm install 또는 yarn install

Python
python -m pip install -r requirements.txt
Java
mvn package
C#
dotnet restore
Go
go get

npm install 또는 yarn install

종속성을 업데이트한 후 npm update -g aws-cdk를 실행하여 CDK Toolkit를 릴리스 버전으로 업데이트합니다.

AWS CDK v1에서 CDK v2로 마이그레이션

앱을 AWS CDK v2로 마이그레이션하려면 먼저의 기능 플래그를 업데이트합니다cdk.json. 그런 다음 작성된 프로그래밍 언어에 따라 필요에 따라 앱의 종속성과 가져오기를 업데이트합니다.

최신 v1로 업데이트

한 번에 이전 버전의 AWS CDK v1에서 가장 최신 버전의 v2로 업그레이드하는 많은 고객이 있습니다. 이렇게 하는 것이 확실히 가능하긴 하지만, 여러 해에 걸친 변경 사항(불행히도 현재 보유하고 있는 것과 동일한 양의 진화 테스트를 모두 수행한 것은 아닐 수 있음)으로 업그레이드하는 것은 물론 새 기본값과 다른 코드 조직을 사용하여 버전 간에 업그레이드하는 것도 가능합니다.

가장 안전한 업그레이드 환경을 제공하고 예기치 않은 변경의 원인을 보다 쉽게 진단하려면 먼저 최신 v1 버전으로 업그레이드한 다음 나중 v2로 전환하는 두 단계를 분리하는 것이 좋습니다.

기능 플래그 업데이트

다음 v1 기능 플래그가 있는 cdk.json 경우 AWS CDK v2에서 모두 기본적으로 활성화되므로에서 제거합니다. 인프라에 이전 효과가 중요한 경우 소스 코드를 변경해야 합니다. 자세한 내용은 GitHub의 플래그 목록을 참조하세요.

  • @aws-cdk/core:enableStackNameDuplicates

  • aws-cdk:enableDiffNoFail

  • @aws-cdk/aws-ecr-assets:dockerIgnoreSupport

  • @aws-cdk/aws-secretsmanager:parseOwnedSecretName

  • @aws-cdk/aws-kms:defaultKeyPolicies

  • @aws-cdk/aws-s3:grantWriteWithoutAcl

  • @aws-cdk/aws-efs:defaultEncryptionAtRest

특정 v1 동작으로 되돌리false려면 몇 가지 AWS CDK v1 기능 플래그를 로 설정할 수 있습니다. 전체 참조는 GitHub의 v1 동작으로 되돌리기 또는 목록을 참조하세요.

두 플래그 유형 모두 cdk diff 명령을 사용하여 합성된 템플릿의 변경 사항을 검사하여 이러한 플래그의 변경 사항이 인프라에 영향을 미치는지 확인합니다.

CDK Toolkit 호환성

CDK v2에는 CDK Toolkit의 v2 이상이 필요합니다. 이 버전은 CDK v1 앱과 역호환됩니다. 따라서 v1을 사용하든 v2를 사용하든 모든 AWS CDK 프로젝트에서 단일 버전의 CDK Toolkit을 사용할 수 있습니다. 예외적으로 CDK Toolkit v2는 CDK v2 프로젝트만 생성합니다.

v1 및 v2 CDK 프로젝트를 모두 생성해야 하는 경우 전역적으로 CDK Toolkit v2를 설치하지 마세요. (이미 설치한 경우 제거: npm remove -g aws-cdk.) CDK Toolkit를 간접적으로 호출하려면 npx를 사용하여 CDK Toolkit의 v1 또는 v2를 원하는 대로 실행합니다.

npx aws-cdk@1.x init app --language typescript npx aws-cdk@2.x init app --language typescript
작은 정보

cdkcdk1 명령을 사용하여 원하는 버전의 CDK Toolkit를 간접적으로 호출할 수 있도록 명령줄 별칭을 설정합니다.

macOS/Linux
alias cdk1="npx aws-cdk@1.x" alias cdk="npx aws-cdk@2.x"
Windows
doskey cdk1=npx aws-cdk@1.x $* doskey cdk=npx aws-cdk@2.x $*
alias cdk1="npx aws-cdk@1.x" alias cdk="npx aws-cdk@2.x"

종속성 및 가져오기 업데이트

앱의 종속성을 업데이트한 다음 새 패키지를 설치합니다. 마지막으로 코드의 가져오기를 업데이트합니다.

TypeScript
Applications

CDK 앱의 경우 다음과 같이 package.json을 업데이트합니다. v1 스타일 개별 안정형 모듈의 종속성을 제거하고 애플리케이션에 필요한 aws-cdk-lib의 최저 버전(여기서 2.0.0)을 설정합니다.

실험 구문은 이름이 alpha로 끝나고 알파 버전 번호가 있는 별도의 독립 버전 패키지로 제공됩니다. 알파 버전 번호는 호환되는 aws-cdk-lib의 첫 번째 릴리스에 해당합니다. 여기에서는 aws-codestar를 v2.0.0-alpha.1로 고정했습니다.

{ "dependencies": { "aws-cdk-lib": "^2.0.0", "@aws-cdk/aws-codestar-alpha": "2.0.0-alpha.1", "constructs": "^10.0.0" } }
Construct 라이브러리

Construct 라이브러리의 경우 애플리케이션에 필요한 aws-cdk-lib의 최저 버전(여기서 2.0.0)을 설정하고 다음과 같이 package.json을 업데이트합니다.

aws-cdk-lib는 피어 종속성과 개발 종속성으로 모두 표시됩니다.

{ "peerDependencies": { "aws-cdk-lib": "^2.0.0", "constructs": "^10.0.0" }, "devDependencies": { "aws-cdk-lib": "^2.0.0", "constructs": "^10.0.0", "typescript": "~3.9.0" } }
참고

v2 호환 라이브러리를 릴리스할 때 라이브러리의 버전 번호에 메이저 버전 범프를 수행해야 합니다. 이는 라이브러리 소비자에게 중대한 변경 사항입니다. 단일 라이브러리로는 CDK v1과 v2를 모두 지원할 수 없습니다. 여전히 v1을 사용하는 고객을 계속 지원하려면 이전 릴리스를 병렬로 유지하거나 v2에 대한 새 패키지를 생성할 수 있습니다.

AWS CDK v1 고객을 계속 지원하려는 기간은 사용자에게 달려 있습니다. 2022년 6월 1일에 유지 관리에 들어갔고 2023년 6월 1일에 지원이 종료되는 CDK v1 자체의 수명 주기에서 단서를 얻을 수 있습니다. 자세한 내용은 AWS CDK 유지 관리 정책을 참조하세요.

라이브러리와 앱 모두

npm install 또는 yarn install를 실행하여 새 종속성을 설치합니다.

가져오기를 변경하여 새 constructs 모듈에서 Construct를 가져오고, aws-cdk-lib의 최상위 수준에서 App, Stack 등의 핵심 유형을 가져오고, aws-cdk-lib 아래의 네임스페이스에서 사용하는 서비스에 대한 안정적인 construct 라이브러리 모듈을 가져옵니다.

import { Construct } from 'constructs'; import { App, Stack } from 'aws-cdk-lib'; // core constructs import { aws_s3 as s3 } from 'aws-cdk-lib'; // stable module import * as codestar from '@aws-cdk/aws-codestar-alpha'; // experimental module
JavaScript

다음과 같이 package.json을 업데이트합니다. v1 스타일 개별 안정형 모듈의 종속성을 제거하고 애플리케이션에 필요한 aws-cdk-lib의 최저 버전(여기서 2.0.0)을 설정합니다.

실험 구문은 이름이 alpha로 끝나고 알파 버전 번호가 있는 별도의 독립 버전 패키지로 제공됩니다. 알파 버전 번호는 호환되는 aws-cdk-lib의 첫 번째 릴리스에 해당합니다. 여기에서는 aws-codestar를 v2.0.0-alpha.1로 고정했습니다.

{ "dependencies": { "aws-cdk-lib": "^2.0.0", "@aws-cdk/aws-codestar-alpha": "2.0.0-alpha.1", "constructs": "^10.0.0" } }

npm install 또는 yarn install을 실행하여 새 종속성을 설치합니다.

앱의 가져오기를 변경하여 다음을 수행합니다.

  • constructs 모듈에서 Construct 가져오기

  • aws-cdk-lib의 최상위 수준에서 App, Stack 등의 코어 유형 가져오기

  • 의 네임스페이스에서 AWS Construct Library 모듈 가져오기 aws-cdk-lib

const { Construct } = require('constructs'); const { App, Stack } = require('aws-cdk-lib'); // core constructs const s3 = require('aws-cdk-lib').aws_s3; // stable module const codestar = require('@aws-cdk/aws-codestar-alpha'); // experimental module
Python

다음과 같이 setup.py 에서 requirements.txt 또는 install_requires 정의를 업데이트합니다. v1 스타일 개별 안정형 모듈의 종속성을 제거합니다.

실험 구문은 이름이 alpha로 끝나고 알파 버전 번호가 있는 별도의 독립 버전 패키지로 제공됩니다. 알파 버전 번호는 호환되는 aws-cdk-lib의 첫 번째 릴리스에 해당합니다. 여기에서는 aws-codestar를 v2.0.0alpha1로 고정했습니다

install_requires=[ "aws-cdk-lib>=2.0.0", "constructs>=10.0.0", "aws-cdk.aws-codestar-alpha>=2.0.0alpha1", # ... ],
작은 정보

를 사용하여 앱의 가상 환경에 이미 설치된 다른 버전의 AWS CDK 모듈을 제거합니다pip uninstall. 그런 다음 python -m pip install -r requirements.txt를 사용하여 새 종속성을 설치합니다.

앱의 가져오기를 변경하여 다음을 수행합니다.

  • constructs 모듈에서 Construct 가져오기

  • aws_cdk의 최상위 수준에서 App, Stack 등의 코어 유형 가져오기

  • 의 네임스페이스에서 AWS Construct Library 모듈 가져오기 aws_cdk

from constructs import Construct from aws_cdk import App, Stack # core constructs from aws_cdk import aws_s3 as s3 # stable module import aws_cdk.aws_codestar_alpha as codestar # experimental module # ... class MyConstruct(Construct): # ... class MyStack(Stack): # ... s3.Bucket(...)
Java

pom.xml에서 안정적인 모듈을 위해 software.amazon.awscdk 종속성을 모두 제거하고, 이를 software.constructs(Construct의 경우) 및 software.amazon.awscdk의 종속성으로 대체합니다.

실험 구문은 이름이 alpha로 끝나고 알파 버전 번호가 있는 별도의 독립 버전 패키지로 제공됩니다. 알파 버전 번호는 호환되는 aws-cdk-lib의 첫 번째 릴리스에 해당합니다. 여기에서는 aws-codestar를 v2.0.0-alpha.1로 고정했습니다.

<dependency> <groupId>software.amazon.awscdk</groupId> <artifactId>aws-cdk-lib</artifactId> <version>2.0.0</version> </dependency><dependency> <groupId>software.amazon.awscdk</groupId> <artifactId>code-star-alpha</artifactId> <version>2.0.0-alpha.1</version> </dependency> <dependency> <groupId>software.constructs</groupId> <artifactId>constructs</artifactId> <version>10.0.0</version> </dependency>

mvn package를 실행하여 새 종속성을 설치합니다.

코드를 변경하여 다음을 수행합니다.

  • software.constructs 라이브러리에서 Construct 가져오기

  • software.amazon.awscdk에서 StackApp과 같은 코어 클래스 가져오기

  • software.amazon.awscdk.services에서 서비스 구문 가져오기

import software.constructs.Construct; import software.amazon.awscdk.Stack; import software.amazon.awscdk.StackProps; import software.amazon.awscdk.App; import software.amazon.awscdk.services.s3.Bucket; import software.amazon.awscdk.services.codestar.alpha.GitHubRepository;
C#

C# CDK 애플리케이션의 종속성을 업그레이드하는 가장 간단한 방법은 .csproj 파일을 수동으로 편집하는 것입니다. 안정적인 Amazon.CDK.* 패키지 참조를 모두 제거하고 Amazon.CDK.LibConstructs 패키지에 대한 참조로 바꿉니다.

실험 구문은 이름이 alpha로 끝나고 알파 버전 번호가 있는 별도의 독립 버전 패키지로 제공됩니다. 알파 버전 번호는 호환되는 aws-cdk-lib의 첫 번째 릴리스에 해당합니다. 여기에서는 aws-codestar를 v2.0.0-alpha.1로 고정했습니다.

<PackageReference Include="Amazon.CDK.Lib" Version="2.0.0" /> <PackageReference Include="Amazon.CDK.AWS.Codestar.Alpha" Version="2.0.0-alpha.1" /> <PackageReference Include="Constructs" Version="10.0.0" />

dotnet restore를 실행하여 새 종속성을 설치합니다.

소스 파일의 가져오기를 다음과 같이 변경합니다.

using Constructs; // for Construct class using Amazon.CDK; // for core classes like App and Stack using Amazon.CDK.AWS.S3; // for stable constructs like Bucket using Amazon.CDK.Codestar.Alpha; // for experimental constructs
Go

go get을 실행하여 종속성을 최신 버전으로 업데이트하고 프로젝트의 .mod 파일을 업데이트합니다.

Applications

CDK 앱의 경우 다음과 같이 package.json을 업데이트합니다. v1 스타일 개별 안정형 모듈의 종속성을 제거하고 애플리케이션에 필요한 aws-cdk-lib의 최저 버전(여기서 2.0.0)을 설정합니다.

실험 구문은 이름이 alpha로 끝나고 알파 버전 번호가 있는 별도의 독립 버전 패키지로 제공됩니다. 알파 버전 번호는 호환되는 aws-cdk-lib의 첫 번째 릴리스에 해당합니다. 여기에서는 aws-codestar를 v2.0.0-alpha.1로 고정했습니다.

{ "dependencies": { "aws-cdk-lib": "^2.0.0", "@aws-cdk/aws-codestar-alpha": "2.0.0-alpha.1", "constructs": "^10.0.0" } }
Construct 라이브러리

Construct 라이브러리의 경우 애플리케이션에 필요한 aws-cdk-lib의 최저 버전(여기서 2.0.0)을 설정하고 다음과 같이 package.json을 업데이트합니다.

aws-cdk-lib는 피어 종속성과 개발 종속성으로 모두 표시됩니다.

{ "peerDependencies": { "aws-cdk-lib": "^2.0.0", "constructs": "^10.0.0" }, "devDependencies": { "aws-cdk-lib": "^2.0.0", "constructs": "^10.0.0", "typescript": "~3.9.0" } }
참고

v2 호환 라이브러리를 릴리스할 때 라이브러리의 버전 번호에 메이저 버전 범프를 수행해야 합니다. 이는 라이브러리 소비자에게 중대한 변경 사항입니다. 단일 라이브러리로는 CDK v1과 v2를 모두 지원할 수 없습니다. 여전히 v1을 사용하는 고객을 계속 지원하려면 이전 릴리스를 병렬로 유지하거나 v2에 대한 새 패키지를 생성할 수 있습니다.

AWS CDK v1 고객을 계속 지원하려는 기간은 사용자에게 달려 있습니다. 2022년 6월 1일에 유지 관리에 들어갔고 2023년 6월 1일에 지원이 종료되는 CDK v1 자체의 수명 주기에서 단서를 얻을 수 있습니다. 자세한 내용은 AWS CDK 유지 관리 정책을 참조하세요.

라이브러리와 앱 모두

npm install 또는 yarn install를 실행하여 새 종속성을 설치합니다.

가져오기를 변경하여 새 constructs 모듈에서 Construct를 가져오고, aws-cdk-lib의 최상위 수준에서 App, Stack 등의 핵심 유형을 가져오고, aws-cdk-lib 아래의 네임스페이스에서 사용하는 서비스에 대한 안정적인 construct 라이브러리 모듈을 가져옵니다.

import { Construct } from 'constructs'; import { App, Stack } from 'aws-cdk-lib'; // core constructs import { aws_s3 as s3 } from 'aws-cdk-lib'; // stable module import * as codestar from '@aws-cdk/aws-codestar-alpha'; // experimental module

배포하기 전에 마이그레이션된 앱 테스트

스택을 배포하기 전에 cdk diff를 사용하여 리소스에 예상치 못한 변경 사항이 있는지 확인합니다. 논리적 ID(리소스 교체 유발)는 변경되지 않습니다.

예상되는 변경 사항에는 다음이 포함되지만 이에 국한되지 않습니다.

  • CDKMetadata 리소스에 대한 변경 사항입니다.

  • 자산 해시가 업데이트되었습니다.

  • 새 스타일 스택 합성과 관련된 변경 사항입니다. 앱이 v1에서 레거시 스택 신디사이저를 사용한 경우 적용됩니다.

  • CheckBootstrapVersion 규칙 추가.

예기치 않은 변경 사항은 일반적으로 AWS CDK v2로 자체 업그레이드로 인해 발생하지 않습니다. 일반적으로 이는 이전에 기능 플래그에 의해 변경된 더 이상 사용되지 않는 동작의 결과입니다. 이는 약 1.85.x 이전의 CDK 버전에서 업그레이드하는 증상입니다. 동일한 변경 사항이 최신 v1.x 릴리스로 업그레이드됩니다. 일반적으로 다음을 수행하여 이를 해결할 수 있습니다.

  1. 앱을 최신 v1.x 릴리스로 업그레이드

  2. 기능 플래그 제거

  3. 필요에 따라 코드 수정

  4. 배포

  5. v2로 업그레이드

참고

2스테이지 업그레이드 후 업그레이드된 앱을 배포할 수 없는 경우 문제를 보고합니다.

앱에 스택을 배포할 준비가 되면 먼저 복사본을 배포하여 테스트하는 것이 좋습니다. 이렇게 하는 가장 쉬운 방법은 다른 리전에 배포하는 것입니다. 그러나 스택의 ID 변경할 수도 있습니다. 테스트 후 cdk destroy를 사용하여 테스트 사본을 삭제해야 합니다.

문제 해결

가져오기의 TypeScript 'from' expected 또는 ';' expected 오류

TypeScript 3.8 이상으로 업그레이드합니다.

‘cdk bootstrap‘ 실행

다음과 같은 오류가 표시되는 경우

❌  MyStack failed: Error: MyStack: SSM parameter /cdk-bootstrap/hnb659fds/version not found. Has the environment been bootstrapped? Please run 'cdk bootstrap' (see https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html)
    at CloudFormationDeployments.validateBootstrapStackVersion (.../aws-cdk/lib/api/cloudformation-deployments.ts:323:13)
    at processTicksAndRejections (internal/process/task_queues.js:97:5)
MyStack: SSM parameter /cdk-bootstrap/hnb659fds/version not found. Has the environment been bootstrapped? Please run 'cdk bootstrap' (see https://docs.aws.amazon.com/cdk/latest/guide/bootstrapping.html)

AWS CDK v2에는 업데이트된 부트스트랩 스택이 필요하며, 또한 모든 v2 배포에는 부트스트랩 리소스가 필요합니다. (v1을 사용하면 부트스트래핑 없이 간단한 스택을 배포할 수 있습니다.) 자세한 내용은 AWS CDK 부트스트래핑 섹션을 참조하세요.

v1 스택 찾기

CDK 애플리케이션을 v1에서 v2로 마이그레이션할 때 v1을 사용하여 생성된 배포된 AWS CloudFormation 스택을 식별할 수 있습니다. 이렇게 하려면 다음 명령을 실행하세요.

npx awscdk-v1-stack-finder

사용 세부 정보는 awscdk-v1-stack-finder README를 참조하세요.

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