AWS Aurora RDS는 안정적이고 효율적인 데이터 백업 기능을 제공합니다. 이 글에서는 Aurora RDS의 백업 방식과 저장 위치, 그리고 백업 프로세스를 상세히 알아보겠습니다. 또한, 백업 설정 시 자주 받는 질문에 대한 답변도 함께 정리했습니다.
1. Aurora RDS 백업 방식
AWS Aurora RDS는 자동 백업(Automated Backup)과 수동 스냅샷(Manual Snapshot) 두 가지 방식으로 데이터를 백업합니다.
1.1 자동 백업
- 기본 동작: Aurora는 데이터베이스와 트랜잭션 로그를 백업하며, 기본적으로 증분 백업 방식으로 작동합니다.
- 최초 백업: 첫 번째 백업은 풀백업(Full Backup)으로 수행됩니다.
- 이후 백업: 변경된 데이터만 캡처하는 증분 백업(Incremental Backup) 방식으로 수행됩니다.
- 트랜잭션 로그: 백업 간 데이터 변경 사항은 트랜잭션 로그에 기록됩니다. 복원 시, 트랜잭션 로그를 기반으로 원하는 시점으로 복구가 가능합니다.
- 보관 기간: 자동 백업의 보관 기간은 1일에서 최대 35일까지 설정할 수 있습니다.
1.2 수동 스냅샷
- 특징: 사용자가 원하는 시점에 직접 생성하며, 자동 백업과 달리 만료 기간이 없습니다.
- 활용 예시: 배포 전 중요한 데이터를 보관하거나 특정 상태를 저장할 때 유용합니다.
2. Aurora RDS 백업 저장 위치
Aurora RDS의 백업 데이터는 Amazon S3에 저장됩니다. 그러나 일반 사용자 계정에서 S3 버킷 내에서 직접 파일을 확인할 수는 없습니다.
- 자동 백업: S3에 저장되지만, 관리 콘솔 또는 API를 통해서만 접근할 수 있습니다.
- 확인 방법: RDS 콘솔 > 스냅샷 > “시스템 스냅샷(System Snapshot)”에서 확인 가능합니다.
- 수동 스냅샷: 사용자가 이름을 지정하며, 특정 리전에 저장됩니다. 기본적으로 한 리전 내에 저장되며, 필요 시 리전을 변경하거나 복사 가능합니다.
3. Aurora RDS 백업 설정 및 관리
3.1 백업 설정
- 자동 백업 활성화:
- RDS 콘솔에서 백업 보관 기간을 1일~35일로 설정합니다.
CreateDBSnapshot
API를 통해 수동으로 스냅샷을 생성할 수도 있습니다.
- 수명 주기 관리:
- 자동 백업은 지정된 기간이 지나면 삭제됩니다.
- 수동 스냅샷은 사용자가 직접 삭제하기 전까지 보존됩니다.
3.2 백업 복원
- 특정 시점(Point-in-Time)으로 복구하려면 트랜잭션 로그와 백업 데이터를 활용합니다.
- 백업 복구는 AWS Management Console 또는 CLI를 통해 진행할 수 있습니다.
4. 자주 묻는 질문 (FAQ)
Q1. 자동 백업이 매번 풀백업으로 진행되나요?
아니요, 첫 번째 백업만 풀백업으로 수행되며, 이후 백업은 증분 백업 방식으로 진행됩니다. 이로 인해 스토리지 사용량과 복구 시간이 줄어듭니다.
Q2. 자동 백업은 어디에서 확인할 수 있나요?
자동 백업은 S3에 저장되지만, S3 버킷에서 직접 확인할 수는 없습니다. RDS 콘솔에서 “시스템 스냅샷(System Snapshot)” 섹션을 확인하세요.
Q3. 트랜잭션 로그는 언제 백업되나요?
자동 백업 간의 데이터 변경 사항은 트랜잭션 로그로 기록됩니다. 이를 통해 지정된 시점으로 데이터 복구가 가능합니다.
5. 결론
AWS Aurora RDS는 안정적인 데이터 백업 및 복구 시스템을 제공합니다. 풀백업과 증분 백업을 효과적으로 결합하여 효율적인 스토리지 관리와 빠른 복구를 가능하게 합니다. 데이터 관리 및 보안이 중요한 환경에서 Aurora RDS는 강력한 도구가 될 것입니다.
6. Aurora RDS 백업 비용 고려사항
- 자동 백업 스토리지: DB 인스턴스 크기만큼의 무료 백업 스토리지 제공
- 추가 백업 스토리지: 무료 할당량 초과 시 GB당 요금 부과
- 스냅샷 전송: 리전 간 스냅샷 복사 시 데이터 전송 요금 발생
- 백업 보존: 장기 보관 시 비용 최적화를 위한 수명주기 정책 설정 권장
7. 백업 데이터 보안
- 암호화: AWS KMS를 사용한 저장 데이터 암호화
- 액세스 제어: IAM 역할 및 정책을 통한 백업 액세스 관리
- 감사: AWS CloudTrail을 통한 백업 관련 작업 로깅
- 규정 준수: 다양한 컴플라이언스 표준 충족 (HIPAA, PCI DSS 등)
8. 백업 모범 사례
- 정기적인 백업 테스트: 분기별 복구 테스트 수행
- 다중 리전 백업: 재해 복구를 위한 교차 리전 백업 구성
- 태그 관리: 효율적인 백업 관리를 위한 태깅 전략 수립
- 모니터링: CloudWatch를 통한 백업 상태 모니터링
9. 그림으로 알아보는 RDS 백업 라이프 사이클
10. RDS 스냅샷 관련 CLI 명령어
# 수동 스냅샷 생성
aws rds create-db-cluster-snapshot \
--db-cluster-identifier my-aurora-cluster \
--db-cluster-snapshot-identifier my-manual-snapshot
# 특정 시점으로 복구
aws rds restore-db-cluster-to-point-in-time \
--source-db-cluster-identifier my-aurora-cluster \
--db-cluster-identifier my-restored-cluster \
--restore-type full-copy \
--restore-to-time "2024-03-15T23:45:00Z"
# 스냅샷을 다른 리전으로 복사
aws rds copy-db-cluster-snapshot \
--source-db-cluster-snapshot-identifier arn:aws:rds:us-east-1:123456789012:cluster-snapshot:my-snapshot \
--target-db-cluster-snapshot-identifier my-snapshot-copy \
--kms-key-id arn:aws:kms:us-west-2:123456789012:key/my-key \
--region us-west-2
# 백업 보관 기간 수정
aws rds modify-db-cluster \
--db-cluster-identifier my-aurora-cluster \
--backup-retention-period 14
# 자동 백업 상태 확인
aws rds describe-db-clusters \
--db-cluster-identifier my-aurora-cluster \
--query 'DBClusters[*].[BackupRetentionPeriod,EarliestRestorableTime,LatestRestorableTime]'