5. AWS 스냅샷

Tasker_Jang·2024년 2월 28일
0
post-custom-banner

스냅샷 기술은 온프레미스 데이터 센터와 클라우드의 데이터 보호에 핵심적인 역할을 하고 있습니다. AWS 스냅샷은 Amazon Elastic Block Storage 스냅샷 형태로 제공됩니다. 본 게시물에서는 이러한 AWS 스냅샷의 해부도와 주요 사용 사례를 살펴보겠습니다. 먼저 클라우드 스토리지 스냅샷에 대한 개요를 제공한 다음 AWS EBS 저장 볼륨의 이 데이터 보호 기술의 구체적인 내용을 살펴볼 것입니다.

1. 스토리지 스냅샷 소개

스토리지 스냅샷 기술은 기본 저장 볼륨에 있는 데이터에 대한 시간 경과에 따른 참조점을 만들기 위해 사용됩니다. 스냅샷의 주요 사용 사례는 데이터 보호입니다. 일반적으로 스냅샷의 내용은 읽기 전용이며, 스토리지 관리자 및 여러 제3자 백업 응용 프로그램에서 데이터를 읽거나 복원하는 데 사용될 수 있습니다. 쓰기 활동은 계속해서 실제 저장 볼륨에 대한 중단 없이 진행됩니다.

스냅샷 유형

  1. Copy-on-write 스냅샷:

    • 별도의 저장 용량이 스냅샷 데이터를 위해 예약됩니다. 이 저장 용량은 일반적으로 대부분의 데이터 블록이 스냅샷 생성 중에 메타데이터 복사 작업만 필요하기 때문에 빠르게 생성됩니다. 그러나 원본 데이터 블록이 활성 파일 시스템에 의해 업데이트되거나 덮어쓰일 때마다 원본 데이터 블록의 내용이 백그라운드에서 스냅샷 위치로 복사됩니다. 이로 인해 스냅샷 생성 후에 원본 블록에 대한 후속 쓰기 작업에 성능 영향이 있을 수 있습니다.
  2. Redirect-on-Write 스냅샷:

    • Copy-on-write 스냅샷과 유사하지만 업데이트될 때 원본 데이터를 스냅샷 위치로 복사하는 대신 원본 데이터는 그대로 두고 해당 블록의 변경 사항이 스냅샷 및 메타데이터가있는 위치로 리디렉션되고 기록됩니다. 이 방법은 가장 낮은 쓰기 페널티를 가지고 있습니다. 여러 스냅샷 생성 및 이후 스냅샷 삭제는 복잡성을 유발할 수 있으며 원본 데이터 집합이 조각화 될 경우 이러한 복잡성이 증가할 수 있습니다.
  3. Split-Mirror (AKA Clone) 스냅샷:

    • 스냅샷 생성 중에 소스 데이터 볼륨, 파일 시스템 또는 LUN의 동일한 복사본을 생성합니다. 데이터 복사 작업으로 인해 스냅샷 생성에는 시간이 걸릴 수 있으며 저장 용량의 두 배를 소비합니다.
  4. CDP (Continuous Data Protection) 스냅샷:

    • 이 유형의 스냅샷은 소스 데이터에 대한 지속적인 백업을 제공하여 소스 데이터에 대한 변경 사항이 계속해서 자동으로 캡처되고 별도의 위치에 저장되도록합니다.

2. 응용 프로그램 일관성 대 비정상 종료 일관성 스냅샷

일반적으로 스토리지 시스템 레이어에서 취해지는 스토리지 스냅샷의 경우 저장 볼륨에 있는 데이터는 운영 체제 및 해당 데이터를 사용하는 응용 프로그램과 일관성이 있어야 하며 복구 목적으로 사용할 수 있어야 합니다. 이러한 이유로 대부분의 스냅샷 기능을 갖춘 스토리지 솔루션은 충돌 일관성 또는 응용 프로그램 일관성 스냅샷 기능을 제공합니다.

  1. Crash-Consistent 스냅샷:

    • Crash-consistent 스냅샷은 일반적으로 파일의 일관성을 보장하기 위해 취해집니다. 충돌 일관성은 파일 시스템 내의 파일이 일관성을 유지하도록하는 것으로 파일이 디스크에 기록되고 의존성이 있는 것과 일관성이 있기 때문에 스토리지 레이어에서 취한 어떤 시점의 스냅샷이 서버/VM에서 충돌 또는 꺼짐 없이 강제로 종료된 경우에도 동일한 상태로 있습니다. 충돌 일관성을 활용하는 백업 소프트웨어는 일반적으로 Windows 시스템의 경우 Microsoft Volume Shadow Copy (VSS) 기능을 활용하여 보류 중인 IO가 얼려져 파일 시스템의 게스트 OS 파일 수준의 일관성을 보장합니다. 충돌 일관성은 응용 프로그램별 일관성을 보장하지 않으므로 데이터베이스 파일과 같은 응용 프로그램별 파일에 대한 충분한 솔루션을 제공하지 않을 수 있습니다.
  2. Application-Consistent 스냅샷:

    • Application-consistent 스냅샷은 본질적으로 충돌 일관성이지만 훨씬 깊은 수준에서 이루어집니다. 응용 프로그램 일관성 스냅샷은 데이터가 스토리지 레이어에서 스냅샷이 취해지기 전에 애플리케이션이 해당 스냅샷을 인식하고 데이터가 스냅샷이 취해지기 전에 스토리지 볼륨에서 응용 프로그램과 일관성이 유지되도록 보장합니다. 이는 메모리에서 미처 완료되지 않은 IO 활동이 디스크로 플러시되고 스토리지 볼륨에 커밋된 데이터가 응용 프로그램과 일관성이 유지되도록 보장합니다. 따라서 복구 시나리오에서 데이터는 응용 프로그램에서 읽을 수 있습니다 (예 : SQL, Oracle 등). 이 기능은 데이터베이스 응용 프로그램 스냅샷의 사전 조건으로 자주 사용됩니다.

3. AWS 스냅샷 소개

Amazon Elastic Block Storage (Amazon EBS)는 Amazon EC2 인스턴스에 대한 내구성 있고 고가용성이 높은 블록 수준 스토리지 구조를 제공합니다. Amazon EBS 볼륨은 일반적으로 Amazon EBS 볼륨의 콘텐츠가 AZ 내에서 복제되도록 생성됩니다. Amazon EBS 스토리지는 파일 시스템, 데이터베이스 또는 형식이 지정되지 않은 세분화된 블록 수준 스토리지 액세스가 필요한 어떤 응용 프로그램에든 사용하기를 권장합니다.

Amazon EBS 스냅샷은 EBS 볼륨에 저장된 데이터에 대한 장기 데이터 보호 및 내구성을 제공하며 Amazon S3에서 데이터를 복제하거나 새로운 Amazon EBS 볼륨을 시작하는 데 사용될 수 있습니다. AWS 아키텍처는 이러한 복사 전용 쓰기 스냅샷이 동일한 스냅샷 내에 모든 점진적 변경과 필요한 모든 메타데이터를 포함하도록합니다. EBS 스냅샷 생성 프로세스 중에 스냅샷 데이터가 Amazon S3 저장 버킷으로 자동 백그라운드 작업으로 전송됩니다(관리되는 AWS 및 엔드 사용자에게 표시되지 않음).

스냅샷의 주요 AWS 사용 사례

AWS에서 EBS 스냅샷을 사용하는 여러 사용 사례가 있습니다. 이 중 일부는 다음과 같습니다.

  1. 데이터 백업:

    • Amazon EBS 스냅샷은 Amazon EC2 인스턴스 및 해당 데이터 볼륨에 대한 오프 사이트, 오프 AZ 또는 오프 리전 데이터 백업을 위한 AWS에서 권장하는 방법입니다. Amazon EBS 스냅샷은 실행 중인 EC2 인스턴스와 해당 데이터를 자동으로 EBS 볼륨에서 Amazon S3로 장기 보존을 위해 이동하는 편리한 방법을 제공합니다. 다양한 제3 자 백업 솔루션도 이러한 스냅샷을 백업 프로세스 중에 활용하여 EC2 인스턴스를 보호합니다.
  2. 재해 복구:

    • Amazon EBS 스냅샷은 스냅샷 복사 기능을 사용하여 Amazon EC2 인스턴스에 대한 데이터 복제를 여러 다른 AWS 리전으로 활성화하여 재해 복구 기능을 제공할 수 있습니다.
  3. Dev/Test:

    • Amazon EBS 스냅샷은 다양한 데이터 복제 요구 사항을 충족하기 위해 활용될 수 있습니다. 생산 Amazon EC2 인스턴스의 dev/test 복제를 생성하는 데는 이제 스냅샷을 사용하여 EBS 볼륨의 복사를 간소화할 수 있습니다.

4. Amazon EBS 스냅샷 작동 방식

1. Amazon EBS 스냅샷 생성 및 삭제:

Amazon EBS는 Amazon EC2 인스턴스에 연결된 단일 gp2, Magnetic tape 또는 io1 볼륨에 대해 단일 sc1 또는 st1 볼륨에 대해 기본적으로 다섯 개의 보류 중인 스냅샷 및 하나의 보류 중인 스냅샷을 제한하는 방식으로 즉시 차단합니다. Amazon EBS 스냅샷은 일반적으로 즉시 생성되지만 전체 데이터 집합이 Amazon S3로 전송 될 때까지 보류중인 상태로 유지됩니다. 이 완료 시간은 스냅샷 생성 중에 비하면 약간 다를 수 있으며 스냅샷 생성 중에 뒷면에서 복사되어야 하는 변경된 데이터 크기에 따라 달라집니다. 하나의 gp2, Magnetic tape 또는 io1 볼륨에 대해 다섯 개의 보류 중인 스냅샷 및 단일 sc1 또는 st1 볼륨에 대해 하나의 보류 중인 스냅샷이라는 기본 제한이 있습니다. Amazon EBS 스냅샷은 충돌 일관성 만 제공하며 응용 프로그램 일관성은 제공하지 않습니다. 따라서 데이터베이스 파일과 같은 중요한 응용 프로그램을 보호하기 위해 AWS 데이터베이스 백업을 위해 응용 프로그램 일관성 스냅샷이 필요한 경우 인스턴스를 끄거나 응용 프로그램 데이터를 스냅샷을 생성하기 전에 일관되게 쓰도록하고 볼륨을 마운트 해제하여 응용 프로그램 일관성 스냅샷을 생성해야합니다.

진행하겠습니다.

2. Amazon EBS 스냅샷 복사 및 공유:

Amazon EBS 스냅샷 데이터를 AWS 리전 간에 복사하는 것이 가능합니다. 이를 통해 데이터 마이그레이션 및 복제 옵션을 제공하지만 첫 번째 스냅샷 복사는 소스 스냅샷의 전체 복사본으로 해당 스냅샷의 크기와 관련된 저장 공간 비용만큼 동일한 양의 기본 저장 공간을 사용합니다. 그 이후의 스냅샷 복사는 증분 복사로 이루어집니다.

스냅샷은 Amazon EC2 콘솔을 사용하거나 copy-snapshot 명령( AWS CLI)을 사용하여 리전 간에 복사할 수 있습니다. 복사된 스냅샷은 이후 해당 리전에서 새로운 Amazon EC2 인스턴스에 연결하여 데이터 액세스에 사용할 수 있습니다.

또한, Amazon EBS 스냅샷은 다른 AWS 사용자와 공유할 수 있습니다. 스냅샷의 권한을 수정하여 다른 AWS 사용자와 공유할 수 있으며 스냅샷을 공개로 만들 수도 있습니다. 다만, 공개로 만들 경우 해당 스냅샷에 저장된 모든 데이터는 누구에게나 접근 가능하게 됩니다.

5. Amazon EBS 스냅샷에서의 복원

각 Amazon EBS 스냅샷은 충분한 권한과 스냅샷 ID를 가지고 데이터를 복원하는 데 사용될 수 있습니다. 데이터를 복원하려면 다음 단계를 따릅니다.

  1. 기존 스냅샷을 사용하여 새로운 Amazon EBS 볼륨을 생성합니다.
  2. 새로운 Amazon EBS 볼륨을 Amazon EC2 인스턴스에 연결합니다.
  3. 게스트 파일 시스템 내에서 데이터를 복사하거나 복원을 위해 응용 프로그램을 재개합니다(이전 볼륨을 대체하는 경우).

새로운 Amazon EBS 볼륨을 스냅샷에서 생성하는 과정에서는 Amazon S3에서 스냅샷을 호스팅하는 새로운 Amazon EBS 볼륨으로의 데이터 로딩(초기화)이 백그라운드 작업(즉, 지연 로딩)으로 수행됩니다. 이는 스냅샷에서 전송되지 않은 새로운 EBS 볼륨으로의 데이터의 크기에 따라 소요 시간이 걸릴 수 있습니다.

Amazon EC2 인스턴스가 새로운 EBS 볼륨에서 아직 전송되지 않은 데이터 블록을 요청하는 경우, 이러한 블록은 스냅샷 뒤의 Amazon S3 버킷에서 직접 가져옵니다. 이로 인해 첫 번째 읽기 중에이 전체 볼륨에서 IO 지연이 발생할 수 있습니다. 이를 방지하려면 새 EBS 볼륨에서 읽기 전에 전체 볼륨을 즉시 초기화하도록 강제하는 것이 좋습니다.

profile
터널을 지나고 있을 뿐, 길은 여전히 열려 있다.
post-custom-banner

0개의 댓글