WAL 아카이빙
WAL 아카이빙 (WAL archiving)
CloudNativePG의 Write-Ahead Log(WAL) 아카이빙은 PostgreSQL 프라이머리에서 지정된 오브젝트 스토어로 WAL 파일을 지속적으로 전송하는 프로세스예요. 이 아카이브들은 Point-In-Time Recovery(PITR)를 가능하게 하는 데 필수적이며, 오브젝트 스토어 기반 백업과 볼륨 스냅샷 기반 백업 두 전략 모두의 기초 구성 요소가 돼요.
출처: 문서
본문
플러그인 기반 아키텍처
CloudNativePG는 Cluster 리소스의 spec.plugins 섹션으로 정의되는 플러그인 기반 메커니즘을 통해 WAL 아카이빙을 지원해요.
WAL 아카이빙을 담당할 수 있는 플러그인은 한 번에 하나만 있어요. 이것은 플러그인 설정 안에서 isWALArchiver 필드를 true로 설정해서 구성해요.
지원되는 플러그인
현재 CloudNativePG 커뮤니티가 유지보수하는 공식 지원 WAL 아카이빙 플러그인은 Barman Cloud Plugin 하나뿐이에요. 전체 문서, 구성 옵션, 모범 사례는 Barman Cloud Plugin 문서를 참고하세요.
지원 중단 공지: 네이티브 Barman Cloud
CloudNativePG는 여전히 .spec.backup.barmanObjectStore 필드를 통해 네이티브하게 WAL 아카이빙을 지원해요. 동작은 하지만 이 인터페이스는 지원 중단(deprecated)이며 향후 릴리스에서 제거될 예정이에요.
:::info[Important] 모든 신규 배포는 더 유연하고 유지보수하기 쉬운 플러그인 기반 아키텍처를 채택하는 것을 강력히 권장해요. :::
현재 네이티브 .spec.backup.barmanObjectStore 방식을 사용 중이라면, 원활한 전환을 위해 공식 가이드를 참고하세요: Migrating from Built-in CloudNativePG Backup.
아카이브 타임아웃에 관해
기본적으로 CloudNativePG는 archive_timeout을 5min으로 설정해서, 작업량이 낮은 경우에도 WAL 파일이 최소한 5분마다 닫히고 보관되도록 보장해요. 이렇게 하면 Recovery Point Objective(RPO)에 대해 결정적인 시간 기반 값을 제공할 수 있어요.
PostgreSQL 설정의 archive_timeout 값을 변경할 수는 있지만, 우리 경험상 오퍼레이터가 설정해 둔 기본값이 대부분의 사용 사례에 적합해요.