CloudFormation으로 리소스 명 혹은 태그 명을 변경했을 때 리소스에 어떤 영향이 미칠까?
안녕하세요 클래스메소드 김재욱(Kim Jaewook) 입니다. 이번에는 CloudFormation으로 리소스 명 혹은 태그 명을 변경했을 때 리소스에 어떤 영향이 미치는지 확인해 봤습니다.
준비물
보안 그룹과 EC2 인스턴스 스택을 생성합니다.
EC2 인스턴스의 경우 태그 설정으로 EC2 인스턴스 이름을 지정할 수 있습니다.
보안 그룹은 태그 이름과 보안 그룹 이름이 나누어져 있습니다.
이 두 서비스를 이용하여 테스트를 진행해 보도록 하겠습니다.
태그 명 변경해 보기
EC2 인스턴스의 경우 별다른 문제 없이 인스턴스 명이 변경된 것을 확인할 수 있습니다.
보안 그룹도 문제 없이 태그 명이 변경된 것을 확인할 수 있습니다.
태그의 경우 리소스가 생성된 상태에서도 직접 변경이 가능하다 보니 CloudFormation 스택 수정을 통해서도 별다른 문제 없이 변경사항이 적용되는 것을 확인할 수 있습니다.
리소스 이름은 어떨까?
그렇다면 보안 그룹처럼 태그 명과 더불어 리소스 이름이 별도로 존재하는 서비스는 어떨까요?
보안 그룹의 이름을 변경하면 다른 리소스(EC2 인스턴스)에 사용중이기 때문에 업데이트가 불가능하다는 에러 메시지가 출력됩니다.
그렇다면 EC2 인스턴스에서 사용하고 있지 않은 상태에서 보안 그룹 이름을 변경하면 어떻게 될까요?
보안 그룹 이름이 문제 없이 변경된 것을 확인할 수 있습니다.
CloudFormation 스택에서도 문제는 없는걸까요?
확인해 보면「상태 사유」에서 한 가지 문구가 눈에 보입니다.
Requested update requires the creation of a new physical resource; hence creating one.
스택을 업데이트 하려면 기존에 생성된 보안 그룹을 삭제하고 다시 만들어야 한다는 것입니다.
이벤트 상태도 확인해 보면, 기존 보안 그룹이 삭제되는 과정을 확인할 수 있습니다.
태그로 지정한 값은 리소스가 생성된 후에도 얼마든지 수정할 수 있지만, 보안 그룹 이름과 같은 값은 고정되어 있기 때문에 변경하고자 한다면 리소스를 새로 생성하는 방법밖에 없는 것 같습니다.
이렇듯 고정된 값들을 수정하고자 할 때는 주의가 필요합니다. 스택 업데이트 과정에서 이러한 값을 변경하면 예기치 않은 문제가 발생할 수 있으며, 때로는 기존 리소스를 삭제해버리는 등의 결과로 이어질 수 있습니다. 따라서 스택 업데이트를 진행할 때에도 이러한 사항에 주의를 기울여야 합니다.
본 블로그 게시글을 읽고 궁금한 사항이 있으신 분들은 [email protected]로 보내주시면 감사하겠습니다.