스택 리소스의 업데이트 동작 - AWS CloudFormation

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

업데이트를 제출하면 AWS CloudFormation에서는 제출하는 내용과 스택의 현재 템플릿 간의 차이에 따라 리소스를 업데이트합니다. 변경되지 않은 리소스는 업데이트 프로세스 동안 중단 없이 실행됩니다. 업데이트한 리소스의 경우, AWS CloudFormation에서는 다음 업데이트 동작 중 하나를 사용합니다.

업데이트(무중단)

AWS CloudFormation에서는 해당 리소스의 작동을 중단하지 않고 리소스의 물리적 ID를 변경하지 않는 상태에서 리소스를 업데이트합니다. 예를 들면 AWS::CloudTrail::Trail 리소스에 대해 특정 속성을 업데이트하는 경우 AWS CloudFormation에서 추적 파일이 중단 없이 업데이트됩니다.

업데이트(중단)

AWS CloudFormation이 리소스를 업데이트하지만, 다소 중단이 발생합니다. 예를 들면 AWS::EC2::Instance 리소스에 대해 특정 속성을 업데이트하는 경우 AWS CloudFormation 및 Amazon EC2에서 인스턴스를 재구성하는 동안 해당 인스턴스가 중단될 수도 있습니다.

대체

AWS CloudFormation에서는 업데이트 도중 리소스를 다시 생성하며, 이때 새 물리적 ID도 생성합니다. 일반적으로 AWS CloudFormation에서는 리소스를 먼저 생성한 후, 대체 리소스를 가리키도록 다른 종속 리소스의 참조를 변경한 다음, 이전 리소스를 삭제합니다. 예를 들면 AWS::EC2::DBInstance 리소스 유형의 AvailabilityZone 속성을 업데이트하는 경우, AWS CloudFormation에서는 새 리소스를 생성하고 현재의 EC2 인스턴스 리소스를 새 리소스로 대체합니다.

교체가 필요한 속성을 추가하거나 제거하는 경우 업데이트도 트리거됩니다. 업데이트는 속성의 실제 값이 변경되지 않는 경우에도 발생합니다.

AWS CloudFormation에서 사용하는 메서드는 해당 리소스 유형에 대해 업데이트하는 속성에 따라 달라집니다. 각 속성에 대한 업데이트 동작은 AWS 리소스 유형 참조에 설명되어 있습니다.

업데이트 동작에 따라 이러한 변경 내용이 애플리케이션에 미치는 영향을 줄이도록 리소스를 수정해야 하는 경우를 설정할 수 있습니다. 특히 업데이트 중에 리소스를 대체해야 하는 경우를 계획할 수 있습니다. 예를 들면 AWS::RDS::DBInstance 리소스 유형의 Port 속성을 업데이트하는 경우, AWS CloudFormation에서는 업데이트된 포트 설정을 사용하여 새 DB 인스턴스를 생성함으로써 DB 인스턴스를 대체하고 이전 DB 인스턴스를 삭제합니다. 업데이트를 수행하기 전에 다음을 수행하여 데이터베이스 대체를 준비할 계획을 세워야 합니다.

  • 현재 데이터베이스의 스냅샷을 생성합니다.

  • DB 인스턴스를 바꾸는 동안 해당 인스턴스를 사용하는 애플리케이션에서 중단을 처리할 방법에 대한 전략을 준비합니다.

  • 해당 DB 인스턴스를 사용하는 애플리케이션에서 업데이트된 포트 설정과 수행된 기타 업데이트를 고려하는지 확인합니다.

  • DB 스냅샷을 사용하여 새 DB 인스턴스에서 데이터베이스를 복원합니다.

이 예제는 포괄적이지 않지만, 업데이트 중에 리소스가 교체되는 경우를 대비하여 계획해야 할 사항을 알려주기 위한 목적으로 제공되었습니다.

참고

템플릿에 하나 이상의 중첩 스택이 포함되는 경우 AWS CloudFormation에서는 모든 중첩 스택에 대해서도 업데이트를 시작합니다. 이 작업은 중첩된 스택이 수정되었는지 여부를 확인하기 위해 필요합니다. AWS CloudFormation은 중첩된 스택에서 해당 템플릿에 지정된 변경 사항이 있는 리소스만 업데이트합니다.