Amazon EBS 볼륨 유형(AWS::EC2::Volume)을 업데이트하려고 할 때 CloudFormation에서 ‘Volume vol-XXXXXXXXXX cannot be modified in modification state OPTIMIZING’ 오류를 해결하려면 어떻게 해야 합니까?

3분 분량
0

AWS CloudFormation에서 ‘Volume vol-XXXXXXXXXX cannot be modified in modification state OPTIMIZING’ 오류 또는 이와 유사한 오류가 표시됩니다. 이 오류는 Amazon Elastic Block Store(Amazon EBS) 볼륨 유형을 업데이트하려고 할 때 발생합니다. 내 EBS 볼륨(AWS::EC2::Volume)이 UPDATE_IN_PROGREGHS 상태로 오랫동안 멈추고 결국 볼륨 유형을 업데이트하지 못합니다. 내 스택을 업데이트하지 못하고 후속 업데이트 롤백도 실패합니다. 그런 다음 스택이 UPDATE_ROLLBACK_FAILED 상태로 끝납니다.

간략한 설명

CloudFormation 스택에서 EBS 볼륨을 수정할 때 자격 증명을 사용하는 경우 볼륨의 시간 초과 기간은 약 7시간입니다. AWS Identity and Access Management(IAM) 서비스 역할을 사용하여 스택을 실행하는 경우 CloudFormation은 시간 초과 기간을 36시간으로 늘립니다.

참고: 볼륨의 시간 초과 기간은 CloudFormation을 사용한 볼륨 수정에만 적용됩니다. 시간 초과 기간은 리소스 및 작업 유형에 따라 다릅니다.

일반적으로 완전히 사용된 1테비바이트(TiB) EBS 볼륨은 새 성능 구성으로 마이그레이션하는 데 약 6시간이 걸립니다. 자세한 내용은 볼륨 수정 진행률 모니터링을 참조하세요.

중요: CloudFormation을 사용하여 스택 업데이트를 이미 시작한 경우 다음 단계를 완료하기 전에 스택이 안정화될 때까지 약 7시간 정도 기다려야 합니다. 스택이 UPDATE_ROLLBACK_FAILED 상태로 들어가면 스택이 안정화됩니다.

해결 방법

참고: AWS Command Line Interface(AWS CLI) 명령을 실행할 때 오류가 발생할 경우 AWS CLI의 최신 버전을 사용하고 있는지 확인하세요.

스택이 안정화될 때까지 기다린 후 스택 복구

다음 예제를 고려하세요. EBS 볼륨 유형을 st1에서 gp3으로 변경하면 볼륨 크기 때문에 스택에서 볼륨 유형을 업데이트하지 못할 수 있습니다. 이 시나리오에서는 스택에서 연속 업데이트 롤백 작업을 수행하여 스택을 복구할 수 있습니다. 복구 작업의 경우 업데이트하지 못한 리소스의 논리 ID를 건너뛰어야 합니다. 스택이 UPDATE_ROLLBACK_COMPLETE 상태로 끝납니다.

AWS CLI 또는 CloudFormation 콘솔을 사용하여 스택을 복구합니다.

AWS CLI:

aws cloudformation continue-update-rollback --stack-name your-stack-name --resources-to-skip logical-ID-of-EBS-volume

CloudFormation 콘솔

1.    CloudFormation 콘솔을 엽니다.

2.    탐색 창에서 [스택]을 선택합니다.

3.    [스택 이름(Stack name)] 열에서 UPDATE_ROLLBACK_FAILED 상태에서 멈춘 스택을 선택합니다.

4.    [스택 작업(Stack Actions)]을 선택하고 [업데이트 롤백 계속(Continue update rollback)]을 선택합니다.

5.    [업데이트 롤백 계속(Continue update rollback)] 대화 상자에서 [고급 문제 해결(Advanced troubleshooting)]을 확장합니다.

6.    [건너뛸 리소스 - 선택 사항(Resources to skip - optional)] 섹션에서 건너뛰려는 리소스를 선택합니다.

참고: 업데이트하지 못한 볼륨의 논리 ID를 선택해야 합니다.

7.    [업데이트 롤백 계속(Continue update rollback)]을 선택합니다.

EBS 볼륨의 현재 상태와 일치하도록 스택 업데이트

EBS 볼륨의 현재 상태와 일치하도록 스택을 업데이트해야 합니다. CloudFormation 템플릿은 스택 업데이트에 의해 업데이트되고 스택이 UPDATE_COMPLETE 상태로 변경됩니다.

예를 들어 볼륨 유형(AWS::EC2::Volume)을 st1에서 gp3으로 수정할 수 있습니다. 그러나 gp3에 대한 업데이트가 Amazon EBS에 정확하게 반영되더라도 롤백 작업으로 인해 CloudFormation의 볼륨 유형은 st1로 유지됩니다.

1.    EBS 볼륨의 상태를 모니터링하려면 Amazon EC2 콘솔을 사용하거나 다음 명령을 실행합니다.

aws ec2 describe-volumes-modifications --volume-ids your-volume-ID

2.    Amazon EBS에서 볼륨 유형이 gp3으로 변경된 후 볼륨 유형(AWS::EC2::Volume)으로 CloudFormation 스택을 gp3으로 업데이트합니다.

참고: 볼륨 유형을 gp3으로 변경하여 CloudFormation 템플릿을 수정할 수 있습니다. 그런 다음 업데이트 작업을 수행합니다.

3.    드리프트 감지를 사용하여 EBS 볼륨 리소스(AWS::EC2::Volume)가 스택과 동기화되었는지 확인합니다.

중요: 서비스 역할을 사용하지 않거나 볼륨 크기가 높은 경우(최대 8TiB) 스택 업데이트가 36시간 이상 걸릴 수 있습니다. 이러한 경우 36시간의 안정화로 서비스 역할을 사용한 후에도 스택 업데이트가 실패할 수 있습니다. 그런 다음 스택이 안정화 될 때까지 기다려야합니다. 이 기간 동안에는 다른 리소스 유형을 수정할 수 없습니다. 이 오류를 해결하려면 다음 단계를 완료하세요.

1.    볼륨을 삭제하지 않고 스택에서 EBS 볼륨을 제거하려면 Retain 삭제 정책을 사용합니다.

2.    대신 Amazon EBS 콘솔을 사용하여 CloudFormation 외부에서 EBS 볼륨을 업데이트합니다.

3.    중요 EBS 볼륨을 다시 스택으로 가져옵니다.

볼륨을 항상 스택에 유지하려면 볼륨 크기를 임계값 미만으로 유지해야 합니다. 예를 들어, 8TiB의 데이터가 64시간이 걸리면 36시간 동안 최대 크기를 추정하고 데이터 크기를 4TiB로 낮출 수 있습니다. 이 임계값 조정을 통해 업데이트를 완료할 수 있습니다.


AWS 공식
AWS 공식업데이트됨 3년 전
댓글 없음

관련 콘텐츠