"사용자 지정 이름이 지정된 리소스를 교체해야 하는 경우 스택을 업데이트할 수 없습니다"라는 CloudFormation 오류를 해결하려면 어떻게 해야 합니까?

2분 분량
0

AWS CloudFormation 스택을 업데이트하려고 하면 다음과 비슷한 오류 메시지가 나타납니다. "사용자 지정 이름이 지정된 리소스를 교체해야 하는 경우 CloudFormation이 스택을 업데이트할 수 없습니다. 'MyResource##'의 이름을 바꾸고 스택을 다시 업데이트하십시오."

간략한 설명

이 오류는 스택 업데이트에서 사용자 지정 이름을 가진 속성이 있는 리소스를 바꾸려고 할 때 발생합니다. CloudFormation은 사용자 지정 이름이 다른 이름으로 변경되지 않는 한 사용자 지정 이름을 가진 리소스를 대체하지 않습니다. 스택 오류를 방지하려면 스택을 업데이트하기 전에 사용자 지정 이름을 가진 리소스가 다른 이름을 사용하도록 변경해야 합니다.

이 오류의 해결 방법은 다음과 같은 상황을 가정합니다.

  • 새 스택을 만들지 않고 기존 스택을 업데이트하는 것입니다.
  • 사용자 지정 이름을 가진 기존 리소스의 이름을 변경하는 것이지 사용자 지정 이름을 가진 새 리소스를 만들지는 않습니다.

해결 방법

  1. 코드 편집기에서 업데이트하려는 스택의 CloudFormation 템플릿을 엽니다.

  2. 사용자 지정 이름을 가진 리소스 속성의 이름 또는 값을 다른 이름을 사용하도록 바꿉니다.

    참고: 다음 예에서는 MyRDS 리소스의 DBInstanceIdentifier 속성이 사용자 지정 이름 PRODdb로 설정되어 있습니다. PRODdb라는 이름을 PRODdb1과 같은 다른 이름으로 변경할 때까지 CloudFormation 스택을 업데이트할 수 없습니다. 또는 템플릿에서 DBInstanceIdentifier 속성을 생략하여 CloudFormation이 DB 인스턴스에 사용할 고유한 물리적 ID를 생성하도록 하십시오.

    "MyRDS": {    "Type": "AWS::RDS::DBInstance",
        "Properties": {
            "DBInstanceClass": "db.m3.medium",
            "Engine": "MySQL",
            "DBInstanceIdentifier": "PRODdb",
            "AllocatedStorage": "10",
            "AutoMinorVersionUpgrade": "true",
            "BackupRetentionPeriod": "0",
        . . .
        . . .
        }
    }

    중요: 사용자 지정 이름이 지정된 리소스의 이름을 변경하면 CloudFormation이 해당 리소스를 대체합니다. 자세한 내용은 이름 유형을 참조하십시오. 특정 리소스를 교체하면 적절한 백업 없이 데이터가 손실될 수 있습니다. 자세한 내용은 교체를 참조하십시오.

  3. CloudFormation 템플릿에 변경 사항을 저장한 다음 템플릿을 사용하여 스택을 업데이트합니다.

관련 정보

CloudFormation 스택을 사용하여 AWS 리소스를 단일 단위로 관리

스택 리소스의 업데이트 동작 이해

AWS 리소스 및 속성 유형 참조

AWS 공식
AWS 공식업데이트됨 6달 전
댓글 없음