다중 DB 백업을 한곳에서 관리하는 셀프호스팅 플랫폼
Databasement는 MySQL·PostgreSQL·MongoDB·Redis 등 여러 엔진을 단일 웹 UI로 스케줄링해 S3·SFTP·로컬로 백업하고 복원하는 PHP 기반의 셀프호스팅 백업 관리자이다.
TL;DR
Databasement는 MySQL, PostgreSQL, MongoDB, Redis 등 여러 데이터베이스 엔진을 단일 PHP 기반 웹 UI에서 스케줄링해 S3·SFTP·로컬로 백업하고 복원할 수 있는 셀프호스팅 솔루션이다. 백업은 엔진별 표준 덤프 도구를 호출해 수행되며 gzip·zstd 압축과 AES-256 암호화를 적용할 수 있고 SSH 터널과 원격 에이전트로 프라이빗 네트워크 환경도 지원한다. 단일 컨테이너 배포와 Docker/Compose/Kubernetes/네이티브 설치 옵션을 제공하며 REST API와 MCP 서버로 CI/CD나 자동화 도구와 연동할 수 있다. Redis와 일부 엔진은 복원 기능이 제한되어 있으므로 복구 요건은 지원 표를 확인해 검증해야 한다.
주요 기능
- 여러 데이터베이스 엔진을 단일 인터페이스에서 관리한다. MySQL, PostgreSQL, MariaDB, Microsoft SQL Server, MongoDB, SQLite, Firebird, Redis와 Valkey를 지원하며 엔진별 표준 CLI 도구를 호출해 덤프와 복원을 수행한다. 이 구조는 엔진 특화 복원 절차와 버전 호환성을 유지하면서 중앙에서 운영을 일원화할 수 있게 한다.
- SSH 터널과 원격 에이전트로 프라이빗 네트워크의 접근 제약을 우회한다. SSH 터널은 비밀번호나 키 기반 인증을 사용해 보안 연결을 수립하고, 원격 에이전트는 아웃바운드 HTTPS 연결로 로컬 덤프를 생성한 뒤 스토리지로 업로드한다. 이를 통해 인바운드 포트 개방이 불가능한 환경에서도 백업을 자동화할 수 있다.
- 유연한 스케줄링과 보관 정책을 제공한다. 사용자는 일간·주간 예약과 함께 단순 기간 기반 보관 또는 GFS 보관 전략을 선택해 스냅샷을 유지할 수 있으며 예약 복원을 통해 주기적으로 대상 데이터베이스를 최신 스냅샷으로 갱신할 수 있다. 작업 로그와 실시간 모니터링이 있어 진행 상태와 실패 원인을 추적할 수 있다.
- 다양한 스토리지와 압축·암호화 옵션을 지원한다. 백업 대상은 로컬 디스크, AWS S3 호환 스토리지, MinIO, SFTP/FTP 등을 포함하며 gzip과 zstd 압축을 선택할 수 있고 민감 데이터는 AES-256 암호화로 보호할 수 있다. 이러한 옵션은 저장 비용과 복원 성능, 보안 요구사항 간의 균형을 맞추게 한다.
- 배포 옵션과 운영 통합을 쉽게 제공한다. 단일 Docker 컨테이너로 빠르게 시작할 수 있고 Docker Compose, Kubernetes + Helm, 또는 네이티브 Ubuntu 설치 방식을 지원하며 REST API와 MCP 서버를 통해 CI/CD 및 자동화 도구와 연동할 수 있다. 이 구성은 다양한 운영 환경에 맞춰 신속하게 통합할 수 있게 한다.
어떻게 동작하는가
Databasement는 PHP 기반 웹 애플리케이션으로 웹 UI, 큐 워커, 스케줄러를 포함한 단일 컨테이너 형식으로 배포될 수 있다. 각 데이터베이스 연결 시 해당 엔진의 표준 CLI 도구(pg_dump, mongodump, mariadb-dump 등)를 호출해 덤프를 생성하고 지정된 압축·암호화 옵션을 적용한 뒤 선택한 스토리지로 업로드한다. 원격 에이전트는 HTTPS로 외부에 연결해 로컬에서 덤프를 수행하고 업로드하며 SSH 터널은 프라이빗 네트워크 접속을 중계한다.
해결 문제
서로 다른 데이터베이스 엔진을 한 곳에서 스케줄링·백업·복원하는 운영 복잡성을 줄인다. Databasement는 엔진마다 분산된 스크립트와 별도 모니터링을 통합된 UI와 중앙 로그로 통합하므로 관리 포인트가 감소한다. 또한 SSH 터널과 원격 에이전트를 통해 네트워크 제약 환경에서도 자동화된 백업을 유지할 수 있게 한다.
차별점
- 원격 에이전트 아키텍처를 통해 방화벽 뒤 또는 에어갭에 가까운 환경에서도 백업을 수행할 수 있다. 에이전트는 아웃바운드 HTTPS 연결만 사용해 로컬 덤프를 만들고 업로드하므로 인바운드 포트 개방이 불필요하다. 이 방식은 기존의 중앙집중형 툴이 가지는 네트워크 접근성 한계를 완화한다.
- 단일 컨테이너로 웹 서버, 큐 워커, 스케줄러를 함께 제공해 배포와 운영을 간소화한다. Docker, Docker Compose, Kubernetes+Helm, 네이티브 Ubuntu 등 다양한 배포 경로를 공식 문서로 안내해 환경별 적응성이 높다. 이로 인해 PoC부터 프로덕션까지 동일한 구성 요소로 확장할 수 있다.
- MCP 서버와 REST API로 외부 자동화와의 연동을 직접 지원한다. README 기준으로 AI 워크플로, CI/CD 파이프라인이나 코드 에디터 통합과 같은 자동화 시나리오에서 명령형 제어를 연결할 수 있다. 이러한 통합 지점은 기존 단순 스케줄링 도구보다 운영 자동화 범위를 넓힌다.
사용 사례
- 운영 환경에서 주간 또는 일간 스냅샷을 자동으로 생성해 프로덕션에서 스테이징으로 스냅샷을 복원하는 워크플로를 구현할 수 있다. 예약 복원 기능으로 밤사이 프로덕션 데이터를 스테이징에 반영해 테스트 환경을 최신 상태로 유지할 수 있다. 이 방식은 데이터 동기성 테스트와 배포 전 검증을 단순화한다.
- 방화벽 뒤의 데이터베이스나 퍼블릭 IP가 없는 시스템을 위한 백업 전략으로 활용할 수 있다. 원격 에이전트가 아웃바운드 연결로 덤프를 생성해 안전한 스토리지로 업로드하므로 네트워크 제약이 있는 환경에서도 자동 백업을 유지할 수 있다. 보안 요구가 높은 네트워크에서는 SSH 터널과 결합해 접근 통제를 강화할 수 있다.
- CI/CD 파이프라인과 연동해 데이터베이스 마이그레이션 전후의 스냅샷을 자동으로 생성하고 필요시 롤백용으로 사용하도록 통합할 수 있다. REST API와 MCP 서버를 사용해 파이프라인 내에서 프로그래밍 방식으로 백업·복원을 트리거하며 빌드·테스트 파이프라인의 신뢰도를 높일 수 있다. 이 구성은 자동화된 테스트와 배포 안정성을 개선한다.
시작하기
빠른 시작은 제공된 Docker 예시 명령으로 단일 컨테이너를 실행하는 것이다. 예시 명령은 환경변수로 DB 연결 방식과 데이터베이스 파일 경로, 큐 워커 활성화를 지정하고 호스트 볼륨을 마운트한다. 컨테이너를 실행한 뒤 브라우저로 http://localhost:2226에 접속해 첫 관리자 계정을 생성하면 기본 사용 준비가 완료된다.
요구사항
- 운영 환경은 Docker 또는 Docker Compose, Kubernetes 클러스터(Helm 차트 사용), 또는 네이티브 Ubuntu 설치 중 하나를 선택할 수 있다. 각 배포 방식에 따라 컨테이너 런타임과 네트워크 설정, 볼륨 마운트가 필요하다. README는 각 배포 방식별 가이드를 링크로 제공해 환경별 준비 항목을 정리하고 있다.
- 데이터베이스 엔진별로 표준 CLI 도구가 필요하다. 예를 들어 PostgreSQL은 pg_dump, MongoDB는 mongodump/mongorestore, MySQL/MariaDB는 mariadb-dump를 사용하며 SQL Server 복원에는 sqlpackage(.dacpac)가 사용된다. 이러한 도구는 복원과 덤프의 정확성을 확보하기 위해 적절한 버전 호환성을 갖춰야 한다.
- 백업 대상 스토리지로는 로컬 디스크, S3 호환 오브젝트 스토리지, SFTP/FTP가 필요하며 네트워크 접근 권한과 자격 증명이 요구된다. 원격 에이전트 사용 시 아웃바운드 HTTPS 접근이 필수이며 SSH 터널 사용 시 중간 점프 호스트의 접속 권한이 필요하다. 암호화 옵션을 사용하려면 키 관리와 관련된 운영 절차를 마련해야 한다.
1.4k
Stars
141
Forks
+207
Trending
0
조회수
관련 토론
아직 관련 토론이 없습니다.
댓글
댓글을 작성하려면 로그인이 필요합니다.