클라우드 데이터베이스 서비스 기업 플래닛스케일(PlanetScale)이 포스트그레스(Postgres) 데이터베이스 백업 방식을 새롭게 정의했습니다. 기존처럼 전체 데이터를 주기적으로 복사하는 대신, 이전 백업을 임시 노드에 복원한 뒤 변경 이력(WAL: Write-Ahead Log)을 재생하여 현재 시점의 새로운 백업을 생성하는 독특한 접근 방식을 채택했습니다. 이는 백업의 효율성과 신뢰성을 동시에 높이는 혁신적인 방법입니다.
플래닛스케일의 이 백업 시스템은 샤딩(sharding)된 데이터베이스의 각 샤드(shard)마다 별도의 임시 노드를 띄워 백업 작업을 병렬로 처리합니다. 예를 들어, 32TB 규모의 데이터베이스를 32개 샤드로 나누면 백업 시간이 22시간에서 42분으로 대폭 단축됩니다. 또한, 백업 시 프로덕션 데이터베이스에 가해지는 부하를 최소화하기 위해 대부분의 데이터 복원과 WAL 재생 작업을 S3와 임시 백업 노드에서 수행하며, 프로덕션 서버에서는 아직 아카이브되지 않은 최근 몇 분의 WAL만 가져옵니다. 이 과정에서 매 백업 주기마다 이전 백업이 실제로 복원 가능한지 검증하는 효과도 얻습니다.
이러한 백업 구조는 단순히 재해 복구를 넘어 데이터베이스 운영의 핵심 인프라로 활용됩니다. 데이터베이스 크기 변경이나 장애 노드 교체 시에도 동일한 '백업 복원 → WAL 따라잡기' 메커니즘을 사용합니다. 예를 들어, 데이터베이스 크기를 늘릴 때는 새로운 노드에 최신 백업을 복원하고 WAL을 재생하여 현재 상태까지 동기화한 후 기존 노드와 교체하는 방식입니다. 이는 복잡한 데이터베이스 오케스트레이션을 사용자에게는 클릭 한 번으로 단순화하여 제공하며, 대규모 클라우드 환경에서 안정적이고 유연한 데이터베이스 운영을 가능하게 합니다.