Redshift가 제공해주는 Snapshot이라는 백업 기능과 이를 이용한 테이블 복구 기능에 대해 알아보는 글이다.
Redshift(고정비용)가 지원하는 데이터 백업 방식
- 기본적으로 백업 방식은 마지막 백업으로부터 바뀐 것들만 저장하는 방식
- 이를 Snapshot이라고 부름
- 백업을 통해 과거로 돌아가 그 시점의 내용으로 특정 테이블을 복구하는 것이 가능 (Table Restore)
- 또한 과거 시점의 내용으로 Redshift 클러스터를 새로 생성하는 것도 가능
- 자동 백업:
- 기본은 하루이지만 최대 과거 35일까지의 변경을 백업하게 할 수 있음.
- 이 경우 백업은 같은 지역에 있는 S3에 이뤄짐.
- 다른 지역에 있는 S3에 하려면 Cross-regional snapshot copy를 설정해야함. 이는 보통 재난시 데이터 복구에 유용함.
- 기본 1일 보관에서 35일까지 늘리고 싶다면?
- 관련 Redshift 클러스터의 Maintenance 탭 -> Backup details -> Edit
- 매뉴얼 백업:
- 언제든 원할 때 만드는 백업으로 명시적으로 삭제할 때까지 유지됨 ( 혹은 생성시 보존 기한 지정)
백업에서 테이블 복구
- 해당 Redshift 클러스터에서 "Restore table"메뉴 선택
- 복구 대상이 있는 백업(Snapshot) 선택
- 원본 테이블 (Source table) 선택
- 어디로 복구될지 타겟 테이블 선택
Redshift Serverless(가변비용)가 지원하는 데이터 백업 방식
- 고정비용 Redshift에 비하면 제한적이고 조금더 복잡함
- 일단 Snapshot 이전에 Recovery Points라는 것이 존재
- Recovery Point를 Snapshot으로 바꾼 다음에 여기서 테이블 복구를 하거나 이것으로 새로운 Redshift 클러스터 등을 생성하는 것이 가능
- Recovery Points는 과거 24시간에 대해서만 유지됨
- 스토리지, 컴퓨팅 리소스가 고정된 것이 없기 때문에 스냅샷을 계속 잡을 수 없음.