현재 사용중인 CDK v1 버전이 2023년 6월 EOS 된다고하여 부랴부랴 CDK v1을 v2로 Migration해야 하는 이슈가 발생하였다. AWS에서 제공하는 가이드로는 v1에서 v2로 변경 시 import 구조를 변경하고, deperated된 함수를 replace만 하면 쉽게 Migration한다고 하여, 가이드에 따라 진행해 보았다.
(나의 경우는 typescript 기반으로 구성되어 있어 typescript 기준으로 작성하였다. 그외 부분은 아래 URL을 참고하기 바란다.)
CDK v2 Migration 가이드 : https://docs.aws.amazon.com/ko_kr/cdk/v2/guide/migrating-v2.html
$ npm install -g aws-cdk@2.xx
"context": {
:
"@aws-cdk/core:newStyleStackSynthesis": false,
"@aws-cdk/aws-apigateway:usagePlanKeyOrderInsensitiveId": false,
"@aws-cdk/aws-cloudfront:defaultSecurityPolicyTLSv1.2_2021": false,
"@aws-cdk/aws-rds:lowercaseDbIdentifier": false,
"@aws-cdk/core:stackRelativeExports": false,
"@aws-cdk/aws-lambda:recognizeVersionProps": false,
"@aws-cdk-containers/ecs-service-extensions:enableDefaultLogDriver": true
:
}
"dependencies": {
:
"aws-cdk-lib": "^2.0.0",
"@aws-cdk/aws-codestar-alpha": "2.0.0-alpha.1",
"constructs": "^10.0.0"
:
}
$ npm uninstall
$ npm install
AS-IS : v1
import { Construct, App, Stack } from "@aws-cdk/core";
:
TO-BE : v2
import { Construct } from 'constructs';
import { App, Stack } from 'aws-cdk-lib';
:
Parameter BootstrapVersion BootstrapVersion: {"Type":"AWS::SSM::Parameter::Value<String>","Default":"/cdk-bootstrap/hnb659fds/version","Description":"Version of the CDK Bootstrap resources in this environment, automatically retr
ieved from SSM Parameter Store. [cdk:skip]"}
이는 cdk v2로 diff 또는 deploy 전에 cdk Bootstrap 작업을 진행하지 않으면, CloudFormation에 설정되어 있는 기존 v1의 BootstrapVersion으로 작업과 비교하기 때문에 그렇다. v2 설정 후 diff 또는 deploy 전에 cdk Bootstrap을 필히 작업해야 한다.
$cdk bootstrap