View a markdown version of this page

cdk orphan - AWS 클라우드 개발 키트(AWS CDK) v2

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

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

cdk orphan

중요

cdk orphan 명령은 미리 보기 릴리스로 제공되며 변경될 수 있습니다.

이 명령을 사용할 때는 --unstable=orphan 옵션을 제공해야 합니다.

AWS CloudFormation 스택에서 하나 이상의 리소스를 삭제하지 않고 안전하게 분리합니다. 이는 가동 중지 시간이나 데이터 손실 없이 한 구문 유형에서 다른 구문 유형으로 리소스를 마이그레이션해야 하는 경우(예: DynamoDBTable를 로 마이그레이션TableV2) 유용합니다.

CDK 코드에서 구문 유형을 변경하면 CloudFormation은 이를 리소스 대체로 해석하여 기존 리소스를 삭제하고 새 리소스를 생성합니다. 데이터베이스 및 스토리지와 같은 상태 저장 리소스의 경우 데이터가 손실됩니다. cdk orphan 명령은 먼저 스택에서 리소스를 분리하여이 문제를 해결하므로를 사용하여 새 구문 유형으로 리소스를 다시 가져올 수 있습니다cdk import.

cdk orphan를 사용하여 다음을 수행할 수 있습니다.

  • 구성 유형을 변경하기 전에 스택에서 상태 저장 리소스를 분리합니다.

  • 데이터 손실 없이 구문 버전(예: DynamoDBTable에서 로TableV2) 간에 마이그레이션합니다.

  • 물리적 리소스를 교체하지 않고 구문을 지원하는 CloudFormation 리소스 유형을 변경합니다.

분리된 명령은 세 가지 CloudFormation 배포를 수행합니다.

  1. 참조 해결: 분리된 리소스에 대한 리소스 간 참조(Ref, Fn::GetAtt, Fn::Sub)를 해결하므로 분리된 리소스가 제거된 후에도 스택의 다른 리소스가 계속 작동합니다.

  2. 분리: 모든 교차 리소스 참조를 확인된 리터럴 값으로 바꾸고, DeletionPolicy를 로 설정하고Retain, DependsOn 항목을 제거하여 스택의 나머지 부분에서 리소스를 격리합니다.

  3. 제거: CloudFormation 템플릿에서 리소스를 제거합니다. 물리적 리소스는 AWS 계정에 계속 존재합니다.

분리된 후에는 새 구문 유형을 사용하도록 CDK 코드를 업데이트하고 cdk 가져오기를 사용하여 리소스를 다시 관리합니다.

리소스를 분리했다가 새 구문 유형으로 다시 가져오려면
  1. 스택을 배포하고 리소스가 존재하는지 확인합니다.

  2. 리소스의 구문 경로cdk orphan로를 실행합니다.

    $ cdk orphan MyStack/MyTable --unstable=orphan
  3. 명령은 리소스 매핑을 출력합니다. 가져오기 단계를 위해 저장합니다.

  4. 새 구문 유형을 사용하도록 CDK 코드를 업데이트합니다(예: Table로 변경TableV2).

  5. 분리된 출력의 리소스 매핑cdk import으로를 실행합니다.

    $ cdk import MyStack --resource-mapping-inline '{"MyTable":{"TableName":"my-table"}}'
  6. 가져오기가 완료되면가 드리프트를 cdk import 감지하고 배포하라는 메시지를 표시합니다. 프롬프트를 수락하여 스택을 조정합니다.

이 기능은 현재 다음과 같은 제한이 따릅니다.

  • 모든 구문 경로는 동일한 스택을 참조해야 합니다. 단일 명령으로 여러 스택에 리소스를 분리하는 것은 지원되지 않습니다.

  • 와일드카드 패턴은 지원되지 않습니다. 경로는 정확한 접두사로 일치됩니다.

  • 이 명령에는 배포 역할에 필요한 IAM 권한이 포함된 부트스트랩 템플릿 버전 32가 필요합니다.

사용법

$ cdk orphan <PATHS> <options>

인수

경로

형식의 고립에 대한 하나 이상의 구문 경로입니다StackName/ConstructPath. 예를 들어 MyStack/MyTable입니다. 여러 경로를 제공하여 단일 명령으로 여러 리소스를 분리할 수 있습니다.

모든 경로는 동일한 스택을 참조해야 합니다.

유형: 문자열

필수 항목 여부:

옵션

모든 CDK CLI 명령에서 작동하는 글로벌 옵션 목록은 글로벌 옵션을 참조하세요.

--help, -h <BOOLEAN>

cdk orphan 명령에 대한 명령 참조 정보를 표시합니다.

예제

단일 리소스 분리

$ cdk orphan MyStack/MyTable --unstable=orphan

여러 리소스 분리

$ cdk orphan MyStack/MyTable MyStack/MyBucket --unstable=orphan

확인 프롬프트 건너뛰기

$ cdk orphan MyStack/MyTable --unstable=orphan --yes