EC2 AMI 또는 EBS 스냅샷 생성이 느린 이유는 무엇입니까?

최종 업데이트 날짜: 2021년 5월 25일

Amazon Machine Image(AMI) 또는 스냅샷을 생성하여 Amazon Elastic Compute Cloud(Amazon EC2) 인스턴스 또는 Amazon Elastic Block Store(Amazon EBS) 볼륨의 백업을 생성하려고 합니다. 그러나 이 프로세스가 느리거나 보류 중 상태에서 멈춘 것 같습니다.

간략한 설명

Amazon EBS 지원 AMI에는 하나 이상의 Amazon EBS 스냅샷이 포함되어 있습니다. Amazon Simple Storage Service(Amazon S3)로 복사해야 하는 대량의 데이터로 인해 EBS 지원 AMI 또는 EBS 스냅샷의 생성이 느릴 수 있습니다. EBS 볼륨의 쓰기 작업을 비롯한 많은 요소가 생성 시간에 영향을 줄 수 있습니다. 따라서 스냅샷의 생성 시간은 크게 다를 수 있습니다.

해결 방법

더티 블록

AMI 또는 스냅샷 생성이 느려지는 가장 일반적인 원인은 Amazon S3에 복사해야 하는 더티 데이터의 양입니다. 이 더티 데이터는 블록 수로 측정됩니다. 다음과 같은 요인으로 인해 많은 수의 더티 블록이 생성될 수 있습니다.

  • EBS 볼륨의 크기
  • 마지막 스냅샷 이후 시간
  • 볼륨에 대한 쓰기 작업

스냅샷은 증분식으로 설계되었습니다. 즉, Amazon EBS는 마지막 스냅샷이 생성된 이후 변경된 블록만 복사합니다. 이전에 생성된 스냅샷이 없거나 이전 스냅샷이 삭제되었기 때문에 EBS 볼륨에 기존 스냅샷이 없을 수 있습니다. 이러한 경우 블록을 스냅샷과 비교할 수 없습니다. 따라서 모든 블록이 더티 블록으로 간주됩니다.

또한 스냅샷이 오래전에 생성되었거나 EBS 볼륨이 매우 활발한 활성 상태인 경우 새 스냅샷의 일부로 복사해야 하는 많은 블록이 있을 수 있습니다.

이 문제를 방지하려면 스냅샷을 자주 생성하는 것이 좋습니다. 이렇게 하면 각 스냅샷에서 복사해야 할 블록 수가 줄어듭니다. Amazon Data Lifecycle Manager를 사용하여 EBS 볼륨의 스냅샷 생성, 보존 및 삭제를 자동화할 수 있습니다. RPO(복구 시점 목표)를 기준으로 스냅샷의 빈도를 설정할 수 있습니다. EBS 스냅샷은 요금이 스냅샷 수를 기준으로 청구되는 것이 아니라 S3에 저장된 증분 데이터를 기준으로 청구됩니다. 자세한 내용은 Amazon EBS 요금을 참조하세요.

스냅샷 생성을 위해 대기열에 추가된 다중 볼륨

스냅샷 생성은 공유 대역폭 작업입니다. 즉, Amazon EBS는 공유 대역폭을 사용하여 데이터를 S3로 전송합니다. 따라서 스냅샷 생성을 위해 다중 볼륨이 대기열에 추가된 경우 지연이 발생할 수 있습니다. 이 문제는 일반적으로 정시에 여러 스냅샷이 동시에 생성되는 경우 발생합니다. 예를 들어 정확히 자정에 스냅샷을 생성하는 자동화된 프로세스가 여러 개 있는 경우 스냅샷 생성이 지연될 수 있습니다.

이 문제를 방지하려면 정시가 아닌 다양한 시간대에 스냅샷을 생성하는 것이 좋습니다. 이렇게 하면 스냅샷을 생성하는 데 걸리는 시간도 줄일 수 있습니다. Amazon Data Lifecycle Manager를 사용하면 스냅샷을 즉시 생성하는 대신 예약된 시작 시간에서 1시간 이내에 스냅샷을 자동으로 생성할 수 있습니다.

누적형 스냅샷

짧은 기간 내에 동일한 볼륨에 대해 여러 스냅샷을 생성하면 첫 번째 스냅샷이 생성되고 다른 스냅샷은 보류 중 상태로 이동됩니다. 보류 중 상태의 스냅샷 생성은 첫 번째 스냅샷 생성이 완료될 때까지 진행되지 않습니다. 보류 중 상태인 스냅샷을 삭제해도 생성 프로세스가 중지되지 않습니다. 보류 중 상태인 스냅샷을 삭제하려고 하면 먼저 스냅샷을 생성한 후 삭제하려고 합니다.

이 문제를 해결하려면 볼륨에 대한 스냅샷 생성이 진행 중일 때에는 반드시 필요한 경우가 아니라면 스냅샷을 생성하지 마세요.