1 Amazon Aurora Backtracking 소개
- Amazon Aurora Backtracking은 Aurora 데이터베이스의 특별한 기능입니다.
- 이 기능을 사용하면 데이터베이스를 특정 시점으로 "되감기"할 수 있습니다.
- 주로 실수로 인한 데이터 손실이나 변경을 신속하게 복구하는 데 사용됩니다.
2 Aurora Backtracking의 작동 원리
- Aurora Backtracking은 지속적으로 데이터베이스 변경 사항을 추적합니다.
- 이 변경 사항들은 "변경 레코드"로 저장됩니다.
- Backtracking 시, Aurora는 이 변경 레코드를 역순으로 적용하여 이전 상태로 되돌립니다.
3 Aurora Backtracking의 주요 특징
- 빠른 복구: 일반적으로 몇 초 내에 데이터베이스를 이전 상태로 복원할 수 있습니다.
- 유연성: 원하는 시점으로 정확하게 되돌릴 수 있습니다.
- 비파괴적: 현재 데이터에 영향을 주지 않고 이전 상태를 확인할 수 있습니다.
- 저장 공간 효율성: 변경 사항만을 저장하므로 전체 백업에 비해 저장 공간을 절약합니다.
4 Backtracking vs Automated Backups vs Snapshots
4.1 Backtracking
- 목적: 빠른 시점 복구
- 복구 시간: 일반적으로 몇 초에서 몇 분
- 복구 정밀도: 초 단위까지 정확한 시점으로 복구 가능
- 저장 기간: 최대 72시간 (설정에 따라 다름)
- 영향: 데이터베이스 성능에 미미한 영향
- 비용: 변경 레코드 저장에 따른 추가 비용 발생
- 복원 방식: In-place 복원 (기존 인스턴스에서 직접 복원)
- 새로운 인스턴스를 생성하지 않고 현재 인스턴스를 이전 상태로 되돌림
- 데이터베이스 중단 시간 최소화
- 복원 후 즉시 사용 가능
4.2 Automated Backups
- 목적: 정기적인 전체 데이터베이스 백업
- 복구 시간: 백업 크기에 따라 수십 분에서 수 시간 소요 가능
- 복구 정밀도: 일일 백업과 5분 단위 트랜잭션 로그로 복구
- 저장 기간: 최대 35일
- 영향: 백업 중 성능에 약간의 영향을 줄 수 있음
- 비용: 기본 스토리지의 100%까지 무료, 그 이상은 추가 비용
- 복원 방식: 새로운 인스턴스 생성
- 원본 데이터베이스는 변경되지 않음
- 복원된 새 인스턴스의 엔드포인트가 다름
- 복원 후 추가 설정 (보안 그룹, 파라미터 그룹 등) 필요
4.3 Snapshots
- 목적: 장기 보관용 수동 백업
- 복구 시간: 백업 크기에 따라 수십 분에서 수 시간 소요 가능
- 복구 정밀도: 스냅샷 생성 시점으로만 복구 가능
- 저장 기간: 사용자가 삭제할 때까지 무기한 보관
- 영향: 생성 시 일시적인 I/O 지연 가능성
- 비용: 사용된 스토리지에 대해 별도 과금
- 복원 방식: 새로운 인스턴스 생성
- Automated Backups와 유사하게 새 인스턴스로 복원
- 원본 데이터베이스는 그대로 유지
- 복원 후 새로운 엔드포인트 사용 및 추가 설정 필요
4.4 복원 방식의 주요 차이점
- Backtracking (In-place 복원):
- 가장 빠른 복원 시간
- 기존 인스턴스를 그대로 사용하므로 엔드포인트 변경 불필요
- 복잡한 설정 변경 없이 바로 사용 가능
- 단, 원본 데이터가 변경되므로 주의 필요
- Automated Backups 및 Snapshots (새 인스턴스 생성):
- 원본 데이터 보존
- 복원된 데이터를 별도로 검증 가능
- 새로운 환경에서 테스트나 개발 용도로 활용 가능
- 단, 복원 시 간이 더 오래 걸리고 추가 설정 작업 필요
- 이러한 차이점을 고려하여 각 상황에 가장 적합한 복구 방법을 선택해야 합니다.
- Backtracking은 빠른 복구가 필요한 운영 환경에서 유용하며, Automated Backups와 Snapshots는 데이터 보존과 장기 백업에 더 적합합니다.
4.5 Aurora Backtracking의 운영 효율성
- Aurora Backtracking은 다른 복구 방법에 비해 운영 효율성이 매우 높습니다.
- 주요 이점은 다음과 같습니다:
- 빠른 실행 시간: Backtracking 작업은 일반적으로 몇 초에서 몇 분 내에 완료됩니다. 이는 전체 스냅샷 복원이나 point-in-time 복구에 비해 훨씬 빠릅니다.
- 최소한의 운영 오버헤드: Backtracking은 새로운 DB 클러스터를 생성하지 않고 기존 클러스터를 직접 수정합니다. 이로 인해 복구 후 추가 설정이나 구성 변경이 필요 없습니다.
- 자동화 용이성: AWS Lambda와 Amazon EventBridge(CloudWatch Events)를 사용하여 Backtracking 작업을 쉽게 자동화할 수 있습니다.
- 리소스 효율성: Backtracking은 전체 데이터베이스를 복제하지 않고 변경 사항만을 저장하므로, 스토리지 사용량이 적습니다.
5 Aurora Backtracking의 장단점
5.1 장점
- 매우 빠른 복구 시간
- 정확한 시점으로의 복구 가능
- 운영 중단 없이 복구 가능
- 실수로 인한 데이터 손실 방지에 효과적
5.2 단점
- Aurora MySQL에서만 사용 가능 (Aurora PostgreSQL 미지원)
- 최대 72시간까지만 되돌릴 수 있음
- 추가 비용 발생
- 클러스터 볼륨 크기 증가
6 RDS와 Backtracking
- Backtracking은 Amazon Aurora의 고유 기능입니다.
- 일반 Amazon RDS (MySQL, PostgreSQL, Oracle, SQL Server 등)에서는 Backtracking을 지원하지 않습니다.
- RDS 사용자는 대신 다음과 같은 방법으로 유사한 기능을 구현할 수 있습니다:
- Point-in-Time Recovery (PITR)
- 수동 스냅샷 생성 및 복원
- Read Replica 사용
7 Aurora Backtracking 사용 시 고려사항
- Backtracking 을 활성화하면 추가 비용이 발생합니다.
- Backtracking 기간을 너무 길게 설정하면 스토리지 비용이 증가할 수 있습니다.
- Backtracking은 데이터베이스 구조 변경(DDL)에는 적용되지 않습니다.
- 암호화된 클러스터에서도 Backtracking을 사용할 수 있습니다.
8 결론
- Aurora Backtracking은 빠르고 유연한 데이터베이스 복구 솔루션을 제공합니다.
- 실시간 운영 환경에서 실수로 인한 데이터 손실을 빠르게 복구하는 데 매우 유용합니다.
- 그러나 장기 백업이나 전체 데이터베이스 복구에는 여전히 Automated Backups와 Snapshots가 필요합니다.
- 각 백업 방식의 특성을 이해하고 상황에 맞게 적절히 조합하여 사용하는 것이 중요합니다.