CloudFormation에서 리소스 명 변경 시 CloudFormation cannot update a stack when a custom-named resource requires replacing 에러 해결
안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 CloudFormation에서 리소스 명 변경 시 CloudFormation cannot update a stack when a custom-named resource requires replacing 에러를 해결하는 방법에 대해서 정리해 봤습니다.
에러 발생
CloudFormation cannot update a stack when a custom-named resource requires replacing.
이미 생성된 리소스의 이름을 변경하고자, CloudFormation 스택을 변경했더니 다음과 같은 에러가 발생했습니다.
에러 해결
에러 메시지를 살펴보면, 사용자 지정 이름이 지정된 리소스를 교체해야 하는 경우에는 CloudFormation에서 스택을 업데이트할 수 없다는 내용이고, 업데이트 하기 위해서는 리소스 명을 변경하라는 에러 메시지입니다.
이 오류는 일반적으로 스택 업데이트가 속성이 있는 리소스를 사용자 지정 이름으로 바꾸려고 할 때 발생합니다. AWS CloudFormation은 사용자 지정 이름이 다른 이름으로 변경되지 않는 한 사용자 지정 이름이 있는 리소스를 교체하지 않습니다. 스택 실패를 방지하고 오류 메시지를 피하려면 스택을 업데이트하기 전에 사용자 지정 이름이 있는 모든 리소스를 다른 이름을 사용하도록 변경하십시오.
실제로 공식 문서에서도 이러한 에러에 대해 다음과 같이 기술하고 있습니다.
여기서 해결 방법으로 다음 사항을 제시하고 있습니다.
- 기존 스택을 업데이트하고 새 스택을 생성하지 않습니다.
- 기존 사용자 지정 리소스의 이름을 변경하고 새 사용자 지정 리소스를 생성하지 않습니다.
즉, 사용자 지정 이름이 지정된 리소스를 업데이트할 경우, 기존 사용자 지정 리소스의 이름을 변경할 필요가 있다고 안내하고 있습니다.
리소스 이름을 바꾸고 다시 스택 업데이트를 해보면, 문제 없이 스택 업데이트에 성공합니다.
여기서 주의할 점은 사용자 지정 리소스의 이름을 바꾸면 AWS CloudFormation이 해당 리소스를 대체하기 때문에, 데이터 손실이 발생할 가능성이 있으므로 적절한 백업이 필요합니다.
본 블로그 게시글을 읽고 궁금한 사항이 있으신 분들은 [email protected]로 보내주시면 감사하겠습니다.