CloudFormation 오류 "the resource already exists in the stack"를 해결하려면 어떻게 해야 하나요?

2분 분량
0

리소스 이름을 변경하거나 고유한 이름을 생성하여 CloudFormation 오류 "the resource already exists in the stack"을 해결하는 방법을 배우고 싶습니다.

간략한 설명

다른 리소스와 이름이 같고 값이 같은 리소스를 생성하면 AWS CloudFormation에서 두 리소스를 구분할 수 없습니다. 그런 다음 "Resource already exists in stack."라는 오류 메시지가 표시됩니다. 각 리소스에는 고유한 물리적 ID가 있습니다. CloudFormation에 정의된 대부분의 리소스에 대해 물리적 ID를 재사용할 수 없습니다.

이 문제를 해결하려면 실패한 리소스의 이름을 고유한 이름으로 변경합니다. 또는 해당 리소스의 이름을 정의하지 않도록 선택할 수 있습니다. 이름을 설정하지 않으면 CloudFormation은 리소스를 생성할 때 고유한 이름을 생성합니다. 이 고유한 이름은 기존 리소스와 충돌하지 않습니다.

해결 방법

참고: 다른 스택에 있거나 다른 AWS 리소스로 생성한 리소스와 관련된 오류에 대해 다음 해결 방법을 사용할 수 있습니다. 예를 들어, 식별자가 이미 존재하는 Amazon Simple Queue Service(Amazon SQS) 대기열에서 이 오류가 발생할 수 있습니다.

실패한 리소스의 이름을 변경하거나 고유한 이름을 생성하려면 다음 단계를 완료하십시오.

  1. 실패한 리소스가 포함된 CloudFormation 템플릿에서 명시적으로 선언된 다른 리소스의 이름이 실패한 리소스와 동일한지 확인합니다.

    다음 예제에서는 각 AWS Identity and Access Management(IAM) ManagedPolicy 리소스(ManagedPolicyName)의 이름( FinalS3WritePolicy)이 동일하기 때문에 스택이 실패합니다.

    S3DeletePolicy:
        Type: AWS::IAM::ManagedPolicy
        Properties:
          ManagedPolicyName:
            Fn::Join:
            - _
            - - FinalS3DeletePolicy
              - Ref: EnvType
          PolicyDocument:
    ........
    ........
    S3WritePolicy:
        Type: AWS::IAM::ManagedPolicy
        Properties:
          ManagedPolicyName:
            Fn::Join:
            - _
            - - FinalS3WritePolicy
              - Ref: EnvType
          PolicyDocument:
    ........
    ........
  2. 중복된 이름이 있는 리소스의 이름을 업데이트합니다. 예를 들어, FinalS3WritePolicy의 첫 번째 항목을 FinalS3DeletePolicy로 변경합니다. 또는 이름을 제거합니다.

    다음 예제에서는 각 IAM ManagedPolicy 리소스의 고유한 이름이 FinalS3DeletePolicyFinalS3WritePolicy이기 때문에 스택 A가 성공합니다. 스택 B는 ManagedPolicyName 속성에 대해 이름 값이 설정되지 않았기 때문에 성공합니다. 리소스가 생성되면 CloudFormation은 스택 B의 각 IAM ManagedPolicy 리소스에 대해 고유한 이름을 자동으로 생성합니다.

    스택 A:

    S3DeletePolicy:  
        Type: AWS::IAM::ManagedPolicy  
        Properties:  
          ManagedPolicyName:  
            Fn::Join:  
            - _  
            - - FinalS3DeletePolicy  
              - Ref: EnvType  
          PolicyDocument:  
    ........  
    ........  
    S3WritePolicy:  
        Type: AWS::IAM::ManagedPolicy  
        Properties:  
          ManagedPolicyName:  
            Fn::Join:  
            - _  
            - - FinalS3WritePolicy  
              - Ref: EnvType  
          PolicyDocument:  
    ........  
    ........

    스택 B:

    S3DeletePolicy:
        Type: AWS::IAM::ManagedPolicy
        Properties:
          PolicyDocument:
    ........
    ........
    S3WritePolicy:
        Type: AWS::IAM::ManagedPolicy
        Properties:
          PolicyDocument:
    ........
    ........
AWS 공식
AWS 공식업데이트됨 일 년 전
댓글 없음

관련 콘텐츠