Snapshots
1 Amazon EBS Snapshots
- Amazon Elastic Block Store (EBS)는 AWS EC2 인스턴스용 블록 수준 스토리지를 제공합니다.
- EBS 스냅샷은 이러한 볼륨의 백업 기능을 제공하여 데이터 보호와 복구를 지원합니다.
- 이 가이드에서는 EBS 스냅샷의 모든 측면을 자세히 살펴보겠습니다.
2 EBS 스냅샷 기본 개념
- Amazon EBS 스냅샷은 볼륨의 특정 시점 복사본을 Amazon S3에 저장합니다.
- 스냅샷은 증분 방식으로 저장되어 효율성을 높입니다.
- 스냅샷을 사용하여 새 볼륨을 생성하거나, 볼륨 크기를 조정하거나, 가용 영역 간 볼륨을 이동할 수 있습니다.
2.1 증분 백업의 이점
- 마지막 스냅샷 이후 변경된 블록만 저장됩니다.
- 이로 인해 스토리지 비용과 스냅샷 생성 시간이 크게 절약됩니다.
- 변경된 블록에 해당하는 비용만 청구되어 비용 효율성이 높습니다.
2.2 스냅샷 생성 프로세스
- EBS 볼륨을 분리할 필요 없이 스냅샷을 생성할 수 있습니다.
- 실행 중인 인스턴스에 연결된 볼륨의 스냅샷도 가능합니다.
- 그러나 최근에 쓰여진 데이터 의 일관성을 보장하기 위해 애플리케이션을 일시 중지하거나 볼륨을 분리하는 것이 좋습니다.
3 스냅샷 복원 메커니즘
- 스냅샷에서 새 볼륨을 생성할 때, 데이터는 즉시 로드되지 않습니다.
- 대신 '지연 로딩(lazy loading)' 방식을 사용합니다.
3.1 지연 로딩 프로세스
- 스냅샷에서 볼륨 생성 시 AWS는 즉시 사용 가능한 빈 볼륨을 제공합니다.
- 볼륨의 특정 블록에 처음 접근할 때:
- 시스템은 해당 블록이 로컬에 없다는 것을 감지합니다.
- S3에서 해당 블록의 데이터를 가져옵니다.
- 가져온 데이터를 EBS 볼륨에 쓰고, 그 후에 읽기 작업을 수행합니다.
3.2 지연 로딩의 장단점
- 장점
- 볼륨 생성 시간이 빠릅니다.
- 실제 사용하는 데이터만 로드하여 네트워크 사용량을 줄입니다.
- 단점
- 처음 데이터에 접근할 때 지연이 발생합니다.
- 전체 데이터가 로드되기 전까지는 최대 성능을 발휘하지 못할 수 있습니다.
3.3 지연 로딩 문제 해결 방법
지연 로딩으로 인한 성능 문제를 해결하기 위해 다음과 같은 방법을 사용할 수 있습니다:
- 전체 볼륨 초기화:
dd
또는fio
명령을 사용하여 볼륨의 모든 블록에 강제로 접근합니다.- 이 방법은 볼륨의 모든 데이터를 미리 로드하여 이후 접근 시 지연을 없앱니다.
- **Linux에서 dd 명령을 사용한 볼륨 초기화 예시
- **`sudo dd if=/dev/zero of=/dev/xvdf bs=1M count=$(blockdev --getsize64 /dev/xvdf)
- 이 명령은
/dev/xvdf
디바이스의 모든 블록을 읽어 초기화합니다.
- Fast Snapshot Restore (FSR) 활성화:
- AWS에서 제공하는 FSR 기능을 사용하면 볼륨 생성 시점에 모든 데이터를 미리 로드합니다.
- 추가 비용이 발생하지만, 즉시 최대 성능을 발휘할 수 있습니다.
4 Fast Snapshot Restore (FSR)
- FSR은 스냅샷에서 EBS 볼륨을 복원할 때 초기화 시간을 대폭 줄이는 기능입니다.
- 이 기능은 스냅샷에서 새로운 EBS 볼륨 생성 시 발생하는 성능 오버헤드를 최소화합니다.
4.1 FSR의 이점
- 즉각적인 볼륨 성능: FSR 활성화 시, 생성된 볼륨이 즉시 전체 성능을 발휘합니다.
- 대량 복원 작업 가속화: 대규모 데이터 복구나 클론 작업 시 특히 유용합니다.
- 준비 시간 최소화: 테스트 환경, 데이터 분석, 백업 복구 등의 작업 시간을 단축합니다.
4.2 FSR 사용 시 고려사항
- FSR 사용 시 추가 비용이 발생합니다.
- 비용과 이점을 고려하여 사용 여부를 결정해야 합니다.
- 특정 가용 영역의 스냅샷에 대해 활성화됩니다.
5 Snapshot Archive
- 스냅샷 아카이브는 장기 보관이 필요한 스냅샷을 위한 비용 효율적인 솔루션입니다.
5.1 아카이브의 특징
- 아카이브된 스냅샷은 표준 스냅샷보다 75% 저렴합니다.
- 복원 요청 후 24시간에서 72시간 내에 사용 가능합 니다.
- 자주 접근하지 않는 데이터나 규정 준수를 위한 장기 보관에 적합합니다.
5.2 아카이브 사용 시나리오
- 주기적인 전체 백업의 장기 보관
- 법적 요구사항에 따른 데이터 보존
- 비용 절감을 위한 오래된 스냅샷의 아카이브
6 Recycle Bin for EBS Snapshots
- Recycle Bin은 실수로 삭제한 EBS 스냅샷을 복구할 수 있는 기능입니다.
6.1 Recycle Bin의 작동 방식
- 삭제된 스냅샷은 지정된 보존 기간 동안 Recycle Bin에 보관됩니다.
- 보존 기간 내에 언제든지 스냅샷을 복구할 수 있습니다.
- 보존 기간이 만료되면 스냅샷은 영구적으로 삭제됩니다.
6.2 Recycle Bin 규칙 설정
Recycle Bin을 효과적으로 사용하기 위해 규칙을 설정할 수 있습니다:
- 보존 규칙 생성:
- AWS Management Console, AWS CLI, 또는 AWS SDK를 사용하여 규칙을 생성합니다.
- 규칙은 어떤 리소스(이 경우 EBS 스냅샷)를 Recycle Bin에 보관할지 정의합니다.
- 보존 기간 지정:
- 삭제된 스냅샷을 Recycle Bin에 보관할 기간을 설정합니다.
- 최소 1일부터 최대 1년까지 설정 가능합니다.
- 태그 기반 규칙:
- 특정 태그가 있는 스냅샷에만 규칙을 적용할 수 있습니다.
- 이를 통해 중요한 스냅샷과 그렇지 않은 스냅샷을 구분하여 관리할 수 있습니다.
6.3 Recycle Bin 사용 예시
AWS CLI를 사용한 Recycle Bin 규칙 생성 예시
aws rbin create-rule \
--retention-period Weeks=2 \
--resource-type EBS_SNAPSHOT \
--description "Retain deleted EBS snapshots for 2 weeks"
이 명령은 삭제된 EBS 스냅샷을 2주 동안 Recycle Bin에 보관하는 규칙을 생성합니다.
6.4 Recycle Bin의 이점
- 데이터 보호: 중요한 스냅샷의 우발적 삭제를 방지합니다.
- 복구 옵션: 삭제된 스냅샷을 쉽게 복구할 수 있어 비즈니스 연속성을 지원합니다.
- 유연한 보존 정책: 다양한 보존 기간을 설정하여 조직의 요구사항에 맞출 수 있습니다.
- 비용 관리: 불필요한 장기 보존을 방지하여 스토리지 비용을 관리할 수 있습니다
7 EBS 볼륨 마이그레이션
- EBS 볼륨은 특정 가용 영역(AZ)에 종속되어 있습니다.
- 하지만 때로는 볼륨을 다른 가용 영역이나 다른 리전으로 이동해야 할 필요가 있습니다.
- 이를 위해 스냅샷을 활용한 마이그레이션 방법을 사용할 수 있습니다.
7.1 마이그레이션 과정
- EBS 볼륨을 다른 가용 영역이나 리전으로 마이그레이션하는 과정은 다음과 같습니다:
- 스냅샷 생성: 현재 볼륨의 스냅샷을 생성합니다.
- (선택사항) 스냅샷 복사: 다른 리전으로 이동하는 경우, 스냅샷을 해당 리전으로 복사합니다.
- 새 볼륨 생성: 스냅샷을 사용하여 원하는 가용 영역에 새 볼륨을 생성합니다.
7.2 단계별 마이그레이션 가이드
1. 스냅샷 생성
AWS CLI를 사용한 스냅샷 생성 예시
aws ec2 create-snapshot --volume-id vol-1234567890abcdef0 --description "Snapshot for migration"
2. (선택사항) 스냅샷 복사
AWS CLI를 사용한 스냅샷 복사 예시
aws ec2 copy-snapshot --source-region us-west-2 --source-snapshot-id snap-1234567890abcdef0 --region us-east-1 --description "Copied snapshot for migration"
- 다른 리전으로 마이그레이션하는 경우, 스냅샷을 해당 리전으로 복사합니다.
3. 새 볼륨 생성
AWS CLI를 사용한 새 볼륨 생성 예시
aws ec2 create-volume --snapshot-id snap-1234567890abcdef0 --availability-zone us-east-1a --volume-type gp2
- 스냅샷을 사용하여 원하는 가용 영역에 새 볼륨을 생성합니다.
7.3 마이그레이션 시 고려사항
- 데이터 일관성: 마이그레이션 전에 볼륨의 I/O 작업을 일시 중지하여 데이터 일관성을 보장합니다.
- 비용: 리전 간 데이터 전송에는 추가 비용이 발생할 수 있습니다.
- 시간: 볼륨 크기와 네트워크 상태에 따라 마이그레이션에 상당한 시간이 소요될 수 있습니다.
- 암호화: 마이그레이션 과정에서 암호화되지 않은 볼륨을 암호화할 수 있습니다.
8 EBS 스냅샷 모범 사례
- 정기적인 백업: 중요한 데이터의 정기적인 스냅샷을 생성합니다.
- 일관성 있는 스냅샷: 가능하면 볼륨을 분리하거나 애플리케이션을 일시 중지한 후 스냅샷을 생성합니다.
- 태그 사용: 스냅샷에 태그를 추가하여 관리와 추적을 용이하게 합니다.
- 수명 주기 정책 설정: 자동화된 스냅샷 생성 및 삭제를 위해 수명 주기 정책을 사용합니다.
- 암호화 사용: 민감한 데이터의 경우 암호화된 스냅샷을 사용합니다.
- FSR 전략적 사용: 빠른 복구가 필요한 중요한 볼륨에 대해 FSR을 활성화합니다.
- 아카이브 활용: 장기 보관이 필요한 스냅샷은 아카이브를 고려합니다.
- Recycle Bin 설정: 우발적 삭제를 대비해 Recycle Bin을 구성합니다.
9 결론
- EBS 스냅샷은 AWS에서 데이터 보호와 관리를 위한 강력한 도구입니다.
- 증분 백업, FSR, 아카이브, Recycle Bin 등의 기능을 통해 효율적이고 안전한 데이터 관리가 가능합니다.
- 각 기능의 특성과 비용을 고려하여 최적의 스냅샷 전략을 수립하는 것이 중요합니다.
- 정기적인 백업과 모범 사례 준수를 통해 데이터의 안전성과 가용성을 높일 수 있습니다.