본문으로 건너뛰기

Backtracking

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가 필요합니다.
  • 각 백업 방식의 특성을 이해하고 상황에 맞게 적절히 조합하여 사용하는 것이 중요합니다.