Windows VSS 기반 EBS 스냅샷 문제 해결 - Amazon Elastic Compute Cloud

Windows VSS 기반 EBS 스냅샷 문제 해결

다른 문제 해결 단계를 시도하기 전에 다음 세부 정보를 확인하는 것이 좋습니다.

  • 모든 필수 조건을 충족하는지 확인합니다.

  • 운영 체제에 맞는 AwsVssComponents 패키지의 최신 Windows OS 버전 지원을 사용하고 있는지 확인합니다. 관찰된 문제가 최신 버전에서 해결되었을 수 있습니다.

로그 파일 확인

VSS 사용 EBS 스냅샷을 생성할 때 문제가 발생하거나 오류 메시지가 나타나면 Systems Manager 콘솔에서 명령 출력을 볼 수 있습니다.

VSS 스냅샷을 생성하는 Systems Manager 문서의 경우 런타임에 CollectDiagnosticLogs 파라미터를 “True“로 설정할 수 있습니다. CollectDiagnosticLogs파라미터를 "True"로 설정하면 VSS는 디버깅을 돕기 위해 추가 로그를 수집합니다. 자세한 내용은 추가 진단 로그 수집 단원을 참조하십시오.

진단 로그를 수집하는 경우 Systems Manager 문서는 해당 로그를 인스턴스의 C:\ProgramData\Amazon\AwsVss\Logs\timestamp.zip에 저장합니다 CollectDiagnosticLogs 파라미터의 기본 값은 "False"입니다.

참고

디버깅에 대한 추가 지원이 필요한 경우 .zip 파일을 AWS Support로 전송할 수 있습니다.

진단 로그 수집 여부에 관계없이 다음과 같은 추가 로그를 사용할 수 있습니다.

  • %ProgramData%\Amazon\SSM\InstanceData\InstanceID\document\orchestration\SSMCommandID\awsrunPowerShellScript\runPowerShellScript\stdout

  • %ProgramData%\Amazon\SSM\InstanceData\InstanceID\document\orchestration\SSMCommandID\awsrunPowerShellScript\runPowerShellScript\stderr

이벤트 뷰어 Windows 애플리케이션을 열고 [Windows 로그(Windows Logs)], [애플리케이션(Application)]을 선택하여 추가 로그를 볼 수도 있습니다. EC2 Windows VSS 공급자 및 볼륨 섀도 복사본 서비스의 특정 이벤트를 보려면 Ec2VssSoftwareProviderVSS 조건에서 [소스(Source)]로 필터링합니다.

VPC 엔드포인트와 함께 Systems Manager를 사용하고 있고 Systems Manager SendCommand API 동작(콘솔에서 명령 실행(Run Command))이 실패한 경우 com.amazonaws.region.ec2 엔드포인트를 올바르게 구성했는지 확인하세요.

Amazon EC2 엔드포인트가 정의되어 있지 않으면 연결된 EBS 볼륨을 표시하는 호출이 실패하고 이에 따라 Systems Manager 명령에 실패합니다. Systems Manager를 통한 VPC 엔드포인트 설정에 대한 자세한 내용은 AWS Systems Manager 사용 설명서에서 Virtual Private Cloud 엔드포인트 생성을 참조하세요.

추가 진단 로그 수집

Systems Manager send 명령을 사용하여 VSS 스냅샷 문서를 실행할 때 추가 진단 로그를 수집하려면 런타임에 CollectDiagnosticLogs 입력 파라미터를 "True"로 설정합니다. 문제해결을 할 때에는 이 파라미터를 "True"으로 설정하길 권장합니다.

명령줄 예제를 알고 싶다면 다음 탭 중 하나를 선택하세요.

AWS CLI

다음 예제에서는 AWSEC2-CreateVssSnapshot Systems Manager 문서를 AWS CLI에서 실행합니다.

aws ssm send-command \ --document-name "AWSEC2-CreateVssSnapshot" \ --instance-ids "i-1234567890abcdef0" \ --parameters '{"description":["Example - create diagnostic logs at runtime."],"tags":["Key=tag_name,Value=tag_value"],"CollectDiagnosticLogs":["True"]}'
PowerShell

다음 예제에서는 PowerShell에서 AWSEC2-CreateVssSnapshot Systems Manager 문서를 실행합니다.

Send-SSMCommand -DocumentName AWSEC2-CreateVssSnapshot -InstanceId "i-1234567890abcdef0" -Parameter @{'description'='Example - create diagnostic logs at runtime.';'tags'='Key=tag_name,Value=tag_value';'CollectDiagnosticLogs'='True'}

프록시가 구성된 인스턴스에서 VSS 사용

프록시를 사용하여 EC2 엔드포인트에 연결하는 인스턴스에서 VSS가 활성화된 EBS 스냅샷을 생성할 때 문제가 발생하면 다음 사항을 확인하세요.

  • AWS Tools for Windows PowerShell을 SYSTEM으로 실행하여 인스턴스의 리전과 IMDS에 있는 EC2 서비스 엔드포인트에 연결할 수 있도록 프록시가 구성되어 있습니다.

  • AwsVssComponents 버전 2.0.1 이상이 설치되었습니다. AwsVssComponents 버전 2.0.1부터 EC2 VSS 공급자가 시스템에 구성된 WinHTTP 프록시 사용을 지원합니다. WinHTTP 프록시 구성에 대한 자세한 내용은 Microsoft 웹사이트의 Netsh Commands for Windows Hypertext Transfer Protocol (WINHTTP)을 참조하십시오.

오류: 파이프 연결 재개 시간 초과, 재개 시 오류, VSS 동결 대기 중 시간 초과 또는 기타 시간 초과 오류

인스턴스의 활동 또는 서비스로 인해 VSS 사용 스냅샷이 적시에 진행되지 않아 EC2 Windows VSS 공급자가 시간 초과될 수 있습니다. Windows VSS 프레임워크는 파일 시스템과의 통신이 일시 중지되는 동안 구성 불가능한 10초 기간을 제공합니다. 이 시간 동안 AWSEC2-CreateVssSnapshot은 볼륨의 스냅샷을 생성합니다.

다음 문제는 EC2 Windows VSS 공급자에서 스냅샷 생성 중에 시간 제한이 발생하여 발생할 수 있습니다.

  • 볼륨에 대한 과도한 I/O

  • 인스턴스에서 EC2 API의 느린 응답

  • 조각난 볼륨

  • 일부 바이러스 백신 소프트웨어와의 비 호환성

  • VSS 애플리케이션 기록기 관련 문제

  • 많은 수의 PowerShell 모듈에 대해 모듈 로깅을 사용하도록 설정하면 PowerShell 스크립트가 느리게 실행될 수 있습니다.

AWSEC2-CreateVssSnapshot 명령 문서를 실행할 때 발생하는 대부분의 제한 시간 초과 문제는 백업할 때 인스턴스의 워크로드가 너무 높은 상황과 관련됩니다. 다음은 스냅샷을 성공적으로 생성하는 데 도움이 될 수 있는 작업입니다.

  • AWSEC2-CreateVssSnapshot 명령을 다시 시도하여 스냅샷 시도가 성공했는지 확인합니다. 재시도가 성공하는 일부 경우 인스턴스 로드를 줄이면 스냅샷 생성 성공률이 증가할 수 있습니다.

  • 인스턴스의 워크로드가 감소할 때까지 잠시 기다린 후 AWSEC2-CreateVssSnapshot 명령을 다시 시도합니다. 또는 인스턴스의 스트레스가 낮은 것으로 알려질 때 스냅샷을 시도할 수 있습니다.

  • 시스템의 바이러스 백신 소프트웨어가 꺼져 있을 때 VSS 스냅샷을 시도합니다. 이 방법으로 문제가 해결되면 바이러스 백신 소프트웨어 지침을 참조하여 VSS 스냅샷을 허용하도록 구성합니다.

  • 스냅샷을 실행하는 동일한 리전 내 계정에서 Amazon EC2 API 직접 호출이 많은 경우 API 제한으로 인해 스냅샷 작업이 지연될 수 있습니다. 제한의 영향을 줄이려면 최신 AwsVssComponents 패키지(버전 2.1.0 이상, 사전 필수 권한 포함)를 사용합니다. 이 패키지는 EC2 CreateSnapshots API 작업을 활용하여 볼륨별 스냅샷 생성 및 태그 지정과 같은 변경 작업 수를 줄입니다.

  • 여러 AWSEC2-CreateVssSnapshot 명령 스크립트를 동시에 실행하는 경우 다음 단계를 수행하여 동시 실행 문제를 줄일 수 있습니다.

    • API 활동이 적은 기간에 스냅샷을 예약하는 방법을 고려합니다.

    • Systems Manager 콘솔에서 Run Command 또는 API에서 SendCommand를 사용하여 명령 스크립트를 실행하는 경우 Systems Manager 속도 제어를 사용하여 동시 실행을 줄일 수 있습니다.

      Systems Manager 속도 제어를 사용하면 Systems Manager를 사용하여 명령 스크립트를 실행하는 AWS Backup 등의 서비스에서 동시 실행을 줄일 수도 있습니다.

  • vssadmin list writers 셸에서 명령을 실행하고 시스템의 기록기에 대한 [마지막 오류(Last error)] 필드에 오류가 보고되는지 확인합니다. 기록기가 시간 초과 오류를 보고하는 경우 인스턴스의 로드가 적을 때 스냅샷을 다시 시도하는 것이 좋습니다.

  • t2 | t3 | t3a.nano 또는 t2 | t3 | t3a.micro 등의 더 작은 인스턴스 유형을 사용하는 경우 메모리 및 CPU 제약 조건으로 인해 제한 시간이 초과될 수 있습니다. 다음 작업은 제한 시간 초과 문제를 줄이는 데 도움이 될 수 있습니다.

    • 스냅샷을 생성하기 전에 메모리 또는 CPU 사용량이 많은 애플리케이션을 닫아보세요.

    • 인스턴스 활동이 적은 시간대에 스냅샷을 생성하세요.

오류: 메서드를 호출할 수 없습니다. 메서드 호출은 이 언어 모드의 핵심 유형에서만 지원됩니다.

PowerShell 언어 모드가 FullLanguage로 설정되지 않은 경우 이 오류가 발생합니다. AWSEC2-CreateVssSnapshotAWSEC2-ManageVssIo SSM 문서를 사용하려면 PowerShell을 FullLanguage 모드로 구성해야 합니다.

언어 모드를 확인하려면 PowerShell 콘솔의 인스턴스에서 다음 명령을 실행합니다.

$ExecutionContext.SessionState.LanguageMode

언어 모드에 대한 자세한 내용은 Microsoft 설명서의 about_Language_Modes를 참조하세요.