2026-05-04 업데이트: pgBackRest는 사실상 부활 쪽으로 가닥이 잡혔습니다.
이 글을 올리고 며칠 지나지 않아 분위기가 뒤집혔습니다. 저장소 archive가 해제됐고(
"archived": false), 기본 브랜치가eol로 바뀐 README 상단에MAINTENANCE UPDATE섹션이 새로 추가됐습니다. 그 안에서 David Steele(데이비드 스틸)이 직접 부활 의사를 밝혔습니다.“It is clear that many pgBackRest users… would prefer the project to continue with me as the primary maintainer. … This time pgBackRest will be funded by a coalition of sponsors so that a single acquisition will no longer affect my ability to continue work on the project.”
(많은 pgBackRest 사용자가 내가 계속 메인테이너로 남아 주기를 바란다는 게 분명해졌다. … 이번에는 한 회사 매각 한 번으로 프로젝트가 흔들리지 않도록 여러 후원사가 함께 자금을 댄다.)
골자는 세 가지입니다. (1) Steele의 메인테이너 복귀, (2) 단독 후원사(과거 Crunchy Data) 의존 모델을 깨고 sponsor coalition 모델로 전환, (3) 추가 메인테이너 영입 예정입니다. README에 명시된 현재 sponsor는 Supabase입니다. 정식 발표는 같은 주 안에 나올 예정으로 잡혀 있습니다.
본문은 2026-04-27 시점의 충격과 해석을 사료로 남기기 위해 그대로 둡니다. 운영자 입장에서 결론은 단순해졌습니다. 즉각 마이그레이션 압력은 약해졌고, 다음 PostgreSQL 메이저 업그레이드까지의 시간은 그대로입니다. 정식 발표가 나온 뒤 한 번 더 들여다보면 됩니다.
여담 한 줄입니다. 후배가 그러더군요. “이래서 파업들을 하는 거라고.” 농담이지만 묘하게 정곡을 찔렀습니다. 13년 일한 사람이 손을 놓고 나서야 비로소 자본이 모였기 때문입니다.
한 사람이 13년 지킨 백업 도구
PostgreSQL 운영을 좀 해본 사람이라면 pgBackRest라는 이름은 거의 반사적으로 익숙할 텐데요, 전체 / 차등 / 증분 백업, PITR, 병렬 압축/전송, S3, GCS, Azure 직결, 무결성 검증까지 PostgreSQL 백업에 필요한 거의 모든 항목이 한 도구로 깔끔하게 풀리는 사실상의 표준이었어요.
그 표준이 멈췄습니다. 2026년 4월 27일, 단독 메인테이너 David Steele(데이비드 스틸)이 GitHub 저장소를 archive 처리하면서 다음과 같이 공식 안내했습니다.
“After a lot of thought, I have decided to stop working on pgBackRest. I did not come to this decision lightly.” — David Steele, pgbackrest GitHub README
13년입니다. 한 사람이 13년 동안 사실상 혼자 유지해 온 도구가 멈췄습니다.
개인적으로는 슬프면서도 “이게 그렇게 단순한 슬픔으로 정리될 일인가” 하는 생각이 들어요. 이 글에서는 사실관계, 다른 사람들의 해석, 대안 도구 비교, CNPG에서 Barman이 어떤 자리에 있는지, 그리고 운영자 입장에서 지금 무엇을 할지 정리합니다.
무슨 일이 있었는가
먼저 타임라인을 살펴보겠습니다.
| 시점 | 사건 |
|---|---|
| 2013 | David Steele이 pgBackRest 시작 (Crunchy Data(크런치 데이터) 후원) |
| 2024–2025 | Crunchy Data 매각, Steele이 후속 직장 / 독립 스폰서십 모색 |
| 2026-01-19 | 마지막 릴리스 v2.58.0 (“Object Storage Improvements”) |
| 2026-04-27 | “no longer maintained” 공식 선언, 저장소 archive |
| 2026-04-28 | Percona 공식 입장: 계속 사용 권장 |
| 2026-05-04 | 저장소 archive 해제, README에 MAINTENANCE UPDATE 추가. David Steele 부활 의사 공식화, sponsor coalition 모델로 재구성 중 |
마지막 릴리스 v2.58.0은 PostgreSQL 18까지 공식 지원합니다. 즉 지금 운영 중인 클러스터의 백업이 당장 멈추는 건 아닙니다. 다만 다음 PostgreSQL 메이저(PostgreSQL 19, 2026-09 예정) 출시 이후 호환성/보안 패치 공급원이 사라진다는 점이 분기점입니다.
왜 이렇게 됐는가
단독 메인테이너 구조에 함정이 있었습니다.
13년간 코드 리뷰, 릴리스, 이슈 트리아지 거의 전부를 한 사람이 처리한 프로젝트였습니다. Crunchy Data가 Steele의 인건비를 받쳐주는 동안에는 그 모델이 굴러갔습니다. 매각 이후 후속 직장과 독립 후원 시도가 이어졌지만, 어느 쪽도 프로젝트를 제대로 유지할 만큼은 모이지 않았습니다.
“The person who makes sure your data survives a disaster did not make the cut.” — Lætitia Avrot(레티시아 아브로), pgBackRest is dead. Now what?
(데이터 재해 복구를 책임지는 사람의 자리는 결국 잘려나갔다.)
이 한 문장이 사실 사건의 전부입니다. AI 붐을 따라 자본은 GPU와 추론 인프라로 흘러가고, “당신의 데이터가 재해 후에도 살아남게 해주는 도구"의 메인테이너 한 명을 살리는 것은 어느 회사의 우선순위에도 들어가지 못했습니다. Steele 본인은 절제된 톤으로 정리했습니다.
“Rather than do the work poorly and/or sporadically, I think it makes more sense to have a hard stop.”
대충 유지하면서 사용자 신뢰만 갉아먹느니 깨끗하게 멈추겠다는 결정입니다. 비난할 자리는 아닙니다. 13년치 코드를 그렇게 마감할 수 있는 사람이 흔하지 않습니다.
같은 사건을 바라보는 네 가지 시선
며칠 사이에 정리된 PostgreSQL 생태계의 주요 입장을 표로 묶으면 다음과 같습니다.
| 출처 | 입장 요약 | 권장 |
|---|---|---|
| Lætitia Avrot(레티시아 아브로) (MyDBA Notebook) | “pgBackRest is dead.” 신규 평가는 Barman, 기존 사용자는 시간 지날수록 위험 증가 | Barman 평가 시작 |
| Christophe Pettus(크리스토프 페터스) (thebuild.com) | “올바른 결정.” OSS 인프라의 자본 부족이 본질적 문제 | WAL-G가 가장 유망한 대체 |
| Gabriele Bartolini(가브리엘레 바르톨리니) (EDB / CNPG 창립자) | “선순환의 단절.” Barman과 pgBackRest는 철학적 의견차였다고 평가 | OSS 지속가능성 모델 자체를 재설계 |
| Percona(페르코나) (공식 블로그) | “현 상황은 우리 권장사항에 영향이 없다” | “Keep on using pgBackRest as you did!” |
각 입장이 가리키는 곳이 조금씩 다른데, 그 차이가 오히려 흥미롭습니다. Avrot는 “지금 평가 단계라면 굳이 archived 도구를 신규 도입할 이유가 없다"는 운영자 시점에서 봅니다. Pettus는 *“오픈소스 인프라의 본질은 자본 문제이지 기술 문제가 아니다”*라고 한 단계 위에서 진단합니다. Bartolini는 자기 진영(Barman/CNPG)의 철학적 정당성을 곱씹으면서도 *“선순환이 끊긴 결과”*라며 더 큰 그림을 봅니다. Percona는 가장 보수적으로, 자기 고객에게 즉각 마이그레이션을 권하지 않습니다.
네 입장이 모순되지는 않습니다. 시간 축이 다를 뿐입니다. *“오늘 당장의 운영”*에는 Percona, *“다음 분기의 신규 도입”*에는 Avrot, *“내년의 기술 선택”*에는 Pettus, *“5년 뒤 OSS가 어떻게 살아남을까”*에는 Bartolini가 답합니다.
대안 도구 비교
운영자 입장에서 결정에 필요한 정보만 압축하면 다음과 같습니다.
| 도구 | 메인테이너 | 백업 모델 | PITR | 증분 | 오브젝트 스토리지 | 비고 |
|---|---|---|---|---|---|---|
| Barman(바만) | EnterpriseDB (활발) | rsync / pg_basebackup 위임 | 지원 | 지원 | 지원 (S3, Azure, GCS) | CNPG가 채택. “복사는 PG에 위임, 오케스트레이션에 집중” 철학 |
| WAL-G | Aiven 등 (활발) | 스트리밍 + 압축 | 지원 | 지원 (delta) | 지원 | 클라우드 네이티브, MySQL, SQL Server, MongoDB도 지원 |
| pg_basebackup + pg_combinebackup | PG 코어 | PG 내장 | 수동 | 지원 (PG17+) | 해당 없음 | 외부 의존 회피, 중소 규모 |
| pgmoneta | 커뮤니티 (GSoC 활발) | 내장 + 인크리멘털 | 지원 | 지원 | 부분 | 신생, 검증 데이터 부족 |
| pg_dump / pg_dumpall | PG 코어 | 논리 export | 해당 없음 | 해당 없음 | 해당 없음 | 백업 도구 아님. 마이그레이션/스키마 덤프용 |
마지막 두 행이 좀 어색해 보이지만, Avrot가 원문에서 한 번 더 짚어준 부분이라 굳이 표에 남겼습니다.
“pg_basebackup is a clone tool, not a backup tool. pg_dump is an export tool.”
(pg_basebackup은 클론 도구이지 백업 도구가 아니다. pg_dump는 export 도구다.)
PostgreSQL 입문자가 *“PostgreSQL에 기본으로 들어 있는 거 쓰면 되지 않나”*라고 생각하기 쉽지만, WAL 관리, 복구 명령, 무결성 검증 중 어느 것도 자체적으로 제공하지 않습니다. pg_basebackup으로 만든 base에 자체 WAL 보존/복구 스크립트를 얹는 방식은 곧 직접 만든 mini-Barman이 되며, 그러느니 진짜 Barman을 쓰는 게 낫습니다.
pg_basebackup + pg_combinebackup (PostgreSQL 17+) 조합은 블록 레벨 증분이 들어왔으므로 외부 도구를 도입하기 싫은 작은 클러스터에는 의미 있는 선택지입니다. 다만 오브젝트 스토리지 직결, 보존 정책, 병렬 복원 같은 운영 편의는 직접 짜야 합니다.
선택은 대체로 둘로 좁혀집니다.
베어메탈/VM 운영, EDB 중심 생태계, K8s 환경(CNPG)에는 Barman이 어울립니다. 멀티 클라우드 / 멀티 DB 엔진을 한 도구로 통일하거나 스트리밍 친화적인 구성을 원한다면 WAL-G가 어울립니다.
CNPG와 Barman
쿠버네티스에서는 이미 답이 나와 있습니다.
쿠버네티스에서 PostgreSQL을 운영 중이라면 이번 일에 가장 마음 편한 쪽입니다. CloudNativePG(CNPG)가 처음부터 Barman 진영에 서 있었기 때문입니다.
CNPG 공식 문서는 현재 백업 메서드를 세 가지로 명시합니다.
plugin: CNPG-I 플러그인 기반 백업. 공식 권장 경로volumeSnapshot: Kubernetes CSI 볼륨 스냅샷barmanObjectStore: Barman Cloud 네이티브 통합. v1.26부터 deprecated
핵심은 1번입니다. 네이티브로 들어 있던 Barman Cloud 통합이 v1.26부터 deprecated 처리됐고, 공식 권장 경로는 Barman Cloud Plugin으로 옮겨갔습니다. 즉 코어와 백업 도구가 분리된 플러그인 구조로 진화 중입니다. pgBackRest는 CNPG 공식 문서에 등장하지 않습니다.
흐름을 그림으로 정리하면 다음과 같습니다.
flowchart LR
subgraph K8s["Kubernetes"]
C["CNPG Cluster
(PG primary + replicas)"]
P["barman-cloud-plugin
(CNPG-I)"]
end
subgraph Cloud["Object Storage"]
S["S3 / Azure Blob / GCS"]
end
C -- "WAL stream + base backup" --> P
P -- "업로드·보존 정책·복구 오케스트레이션" --> S
S -. "PITR 시 복구" .-> C
classDef k8s fill:#e8f0fe,stroke:#3367d6,color:#000
classDef plugin fill:#e6f4ea,stroke:#137333,color:#000
classDef cloud fill:#fff4cc,stroke:#b08900,color:#000
class C k8s
class P plugin
class S cloud
Bartolini의 글에 이 분리의 철학이 잘 정리돼 있습니다.
“Barman delegates data copy mechanisms to PostgreSQL primitives and rsync, focusing instead on orchestration, retention, and recovery management.”
(Barman은 데이터 복사 자체는 PostgreSQL의 기본 기능과 rsync에 위임하고, 자기는 오케스트레이션·보존·복구 관리에 집중한다.)
pgBackRest는 정반대 결정을 한 도구였습니다. 복사 메커니즘을 자기 안에 두고 끝까지 통제한다는 쪽입니다. 둘 중 어느 쪽이 옳다고 단정하긴 어렵습니다. 다만 K8s 오퍼레이터의 역할 분담 모델에는 역할을 잘게 쪼개고 위임하는 Barman 쪽이 잘 맞는다는 점이 결국 드러났습니다.
요약하면 이렇습니다.
- 베어메탈/VM에서 pgBackRest를 쓰고 있었다면 다음 메이저 업그레이드 사이클에 Barman 또는 WAL-G로의 마이그레이션을 평가합니다.
- K8s + CNPG 환경이라면 이미 Barman Cloud Plugin이 표준이므로 별도 의사결정이 거의 필요하지 않습니다.
운영자 입장에서 지금 무엇을 할 것인가
0. 호흡 한 번. 즉각 위험은 없다.
1. 인벤토리 — 어느 클러스터가 pgBackRest를 쓰는지
2. 다음 PostgreSQL 메이저 업그레이드 일정 = 분기점
3. 신규 클러스터 / 평가 단계는 Barman 또는 WAL-G로
4. K8s라면 CNPG + Barman Cloud Plugin
5. 단독 메인테이너 의존도가 높은 도구를 식별
6. 백업이 아니라 복구 — 정기 복구 리허설
조금 풀어 쓰면 다음과 같습니다.
- 즉시 교체할 필요는 없습니다. v2.58.0은 PostgreSQL 18까지 공식 지원하고, Percona가 *“계속 쓰라”*는 공식 입장을 냈습니다. 패닉 마이그레이션은 추가 사고를 만듭니다.
- 분기점은 다음 PostgreSQL 메이저 업그레이드 시점. PostgreSQL 19 이후 호환성/보안 이슈가 생겼을 때 아무도 책임지지 않습니다. 그 시점까지 마이그레이션 계획만 잡아두면 충분합니다.
- 신규로 도입한다면 archived 도구를 새로 들이는 건 합리적이지 않습니다. Avrot의 권고대로 Barman부터 평가합니다.
- K8s + CNPG 환경에서는 사실상 의사결정이 끝났습니다. Barman Cloud Plugin으로 가면 됩니다.
- 이번 사건의 일반화된 교훈. 운영 critical path에 단독 메인테이너 의존 도구가 또 어디에 있는지 한 번 훑어볼 가치가 있습니다. 같은 일이 다른 도구에서 다시 일어나지 말란 법이 없습니다.
- 백업이 아니라 복구가 본질입니다. 어느 도구로 옮기든, 옮긴 직후 복구 리허설을 한 번 돌려보지 않으면 실제로는 백업이 없는 것과 같습니다.
오픈소스 인프라의 자본 문제에 대한 단상
Bartolini는 글에서 “선순환(virtuous cycle)“이라는 표현을 썼습니다.
“Companies invest in engineers who build open-source software. That software creates production value. Those organizations purchase commercial support. Companies reinvest profits into engineering.”
(회사가 엔지니어에 투자해 OSS를 만든다 → OSS가 운영 가치를 만든다 → 그 운영 가치가 상용 지원으로 환원된다 → 회사가 다시 엔지니어에 재투자한다.)
이 사이클은 어느 한 고리만 끊겨도 무너집니다. pgBackRest는 Crunchy Data의 후원이라는 한 고리에 매달려 있다가, 그 회사의 매각이라는 외생 변수 한 번에 끊겼습니다. 그 단계에서 커뮤니티 후원이 빈자리를 못 메웠다는 게 사건의 본질입니다.
오픈소스가 공짜라는 건 사용자 입장에서의 이야기입니다. 누군가는 그 비용을 치르고 있고, 그 비용 청구서가 어디에도 도착하지 않으면 결국 한 사람이 13년을 혼자 지키다가 손을 놓게 됩니다. 한 사람이 13년을 지킨 코드는 그 자체로 이미 자본 부족을 증명합니다.
Pettus의 한 줄이 이 단상을 닫기에 가장 정확합니다.
“This is not a problem with a technical solution. In the long run, it is the only important problem.”
(이건 기술적 해법이 있는 문제가 아니다. 장기적으로 보면, 사실 그것만이 유일하게 중요한 문제다.)
정리
| 어제까지 | 오늘부터 | |
|---|---|---|
| pgBackRest 상태 | 사실상 표준 | archived (v2.58.0 동결) |
| 단독 메인테이너 | David Steele 13년 | (미정, 포크 가능성 있음) |
| 후원 모델 | Crunchy Data 단독 (~2024) | 후원 부재 → (2026-05-04) sponsor coalition 재구성 중 (현재: Supabase) |
| 신규 평가 권장 | pgBackRest | Barman (또는 WAL-G), 정식 발표 후 재평가 |
| K8s 환경 | 다양한 옵션 검토 가능 | CNPG + Barman Cloud Plugin |
| 즉각 위험 | 해당 없음 | 없음 (다음 메이저 업그레이드까지) |
| 장기 위험 | 해당 없음 | PG 신버전 호환성/보안 패치 공급 단절 |
pgBackRest는 죽지 않았습니다. 다만 누군가의 13년이 끝났을 뿐이고, 우리는 그다음을 준비할 시간이 있습니다.
같은 일이 다음에 일어날 도구는 어디일까요. 그 질문이 이번 사건이 우리에게 남긴 진짜 숙제예요.
참고 자료
- pgBackRest is dead. Now what?, Lætitia Avrot, MyDBA Notebook (원문)
- pgbackrest/pgbackrest, GitHub (2026-05-04 archive 해제,
MAINTENANCE UPDATE추가) - pgBackRest Releases
- pgBackRest is no longer maintained, LWN
- pgBackRest is archived, what now?, Percona Community
- Notice of Obsolescence, Christophe Pettus, thebuild.com
- Why the cycle of open-source sustainability needs to be virtuous, Gabriele Bartolini
- Pgbackrest is no longer being maintained, Hacker News
- Barman 공식
- WAL-G, GitHub
- CloudNativePG, Backup 공식 문서
- CloudNativePG, Barman Cloud Plugin
- pg_combinebackup, PostgreSQL 17 Docs