Redis Cloud 데이터 영속성 설정하기
Redis Cloud 데이터 영속성 설정하기
메모리 손실이나 치명적인 장애가 생겨도 데이터를 복구할 수 있게 해 주는 기능이 데이터 영속성이에요. 이 글에서는 Redis Cloud에서 쓸 수 있는 영속성 옵션들이 언제 제공되는지, 그리고 데이터베이스별로 설정을 어떻게 적용하는지 알아볼 거예요. 영속성을 켜 두면 인메모리 데이터가 클라우드 인스턴스에 붙은 영구 저장소에 복사되거든요.
영속성 옵션 살펴보기
데이터는 크게 두 가지 방식으로 영속화할 수 있어요.
- AOF(Append-Only File) 는 쓰기 연산의 기록(redo log 또는 journal이라고도 불러요)을 유지해요. 이 기록을 이용해 장애 시점까지 데이터베이스를 재구성할 수 있어요. AOF 파일에는 데이터베이스에 가해진 쓰기 연산이 담기는데, 매초마다 또는 모든 쓰기 때마다 갱신할 수 있어요(Redis Cloud Pro 플랜 전용).
- 스냅샷은 인메모리 데이터베이스의 복사본을 주기적으로(1시간, 6시간, 12시간 간격) 떠 두는 방식이에요. 스냅샷 시점의 데이터로 복원할 수 있죠.
AOF 파일이 스냅샷보다 내구성(durability)이 좋지만 그만큼 자원과 복구 시간이 더 들어요. 스냅샷은 복구가 빠른 대신, 장애 시점과 가장 최근 스냅샷 사이의 시간에 따라 데이터 손실 위험이 더 크고요.
⚠️ 데이터 영속성을 끄면 데이터베이스가 다운될 때 데이터가 유실돼요.
데이터 영속성 설정하기
Redis Cloud에서 데이터 영속성은 데이터베이스 설정 항목이에요. 데이터베이스 편집 화면에서 바꿀 수 있어요. 설정의 사용 가능 여부는 플랜에 따라 달라져요.
- 무료 Redis Cloud Essentials 플랜은 데이터 영속성을 지원하지 않아 설정이 아예 비활성화돼요.
- 유료 Redis Cloud Essentials 플랜은 매초 AOF와 모든 스냅샷 옵션을 지원해요.
- Redis Cloud Pro는 모든 데이터베이스에서 데이터 영속성 설정을 쓸 수 있어요.
활성화하면 Data persistence 설정을 다음 값 중 하나로 바꿀 수 있어요.
| 옵션 | 설명 |
|---|---|
| None | 데이터를 디스크에 영속화하지 않음 |
| Append Only File (AoF) every write | (Redis Cloud Pro 전용) 모든 쓰기를 기록(fsync로 디스크 동기화) |
| Append Only File (AoF) every 1 second | 기록을 매초마다 갱신(fsync로 디스크 동기화) |
| Snapshot every 1 hour | 매시간 데이터베이스 스냅샷 생성 |
| Snapshot every 6 hours | 6시간마다 데이터베이스 스냅샷 생성 |
| Snapshot every 12 hours | 12시간마다 데이터베이스 스냅샷 생성 |
데이터 영속성 설정을 저장하면 배경에서 적용돼요. 그래서 새 설정이 적용되기까지 잠깐의 지연이 있을 수 있어요.
복제(replication)가 켜진 데이터베이스에서는 기본(primary, master) 데이터베이스의 성능 영향을 줄이려고 복제본(replica)에서 영속화를 수행해요.