Portabase: 데이터베이스 백업 및 복원을 위한 자체 호스팅 도구

발행: (2026년 2월 24일 오후 10:43 GMT+9)
8 분 소요
원문: Dev.to

Source: Dev.to

Cover image for Portabase: A self‑hosted tool for database backup & restore

Portabase profile image Portabase author avatar

백업은 모두가 가져야 한다는 것을 알고 있지만, 실제로 설정을 즐기는 사람은 거의 없는 일 중 하나입니다. 보안 문제, 네트워크 복잡성, 그리고 지나치게 높은 전문성을 전제로 하는 도구들 때문에 데이터베이스 백업은 종종 무시되다가 문제가 발생할 때까지 방치됩니다.

Portabase는 데이터베이스용 백업‑복구 도구로, 현재 PostgreSQL, MySQL, MariaDBMongoDB를 지원합니다 (Redis는 곧 추가 예정).

Portabase는 설계 단계부터 보안을 고려한 아키텍처를 제공하며, 중앙 서버와 가벼운 에이전트를 사용해 엣지에 배포하고 여러 네트워크에 걸쳐 운영할 수 있습니다. 걱정하지 마세요—데이터베이스를 인터넷에 노출할 필요가 전혀 없습니다!

이 에이전트들은 모든 작업을 처리합니다: 데이터를 백업하고, 암호화하며, 선호하는 저장소 위치로 전송합니다—모두 기술적인 지식 없이 가능합니다. 웹 인터페이스만으로 모든 것을 관리할 수 있습니다.

급하시나요? 문서에 제공된 CLI 또는 바로 사용할 수 있는 Docker Compose 설정을 이용해 보세요.

Portabase는 어떻게 작동하나요?

Portabase의 생태계는 세 가지 주요 구성 요소를 중심으로 구축됩니다:

중앙 서버 (관리 플레인)

  • 사용자 친화적인 인터페이스를 제공하여 모든 백업 및 복구 작업의 중앙 제어 플레인 역할을 합니다.
  • 사용자는 에이전트를 등록 및 관리하고, 백업 정책을 구성하며, 과거 백업 기록을 검토할 수 있습니다.
  • 대시보드에서는 스토리지 사용량, 보존 준수 상태를 표시하고, 팀이 단일 위치에서 여러 데이터베이스와 에이전트를 관리할 수 있게 합니다.

에이전트 (실행 플레인)

  • 데이터베이스 호스트에 배포되는 경량 커넥터로, 실제 백업 및 복구 작업을 수행합니다.
  • 아웃바운드 풀 모드로 동작하여 보호된 인프라에 인바운드 포트를 열 필요 없이 중앙 서버와 안전하게 통신합니다.

CLI (보조 도구)

  • 대시보드와 에이전트의 설치 및 구성을 간소화하는 명령줄 유틸리티입니다.
  • 환경 설정, 구성 파일 생성, 운영 명령을 자동화합니다.

핵심 기능 및 역량

Portabase는 cron 기반이며 논리 백업에 적합한 세 가지 보존 전략을 지원합니다:

  1. 보존되는 백업 수 고정
  2. 시간 기반 보존 (n 일)
  3. GFS 회전 (Grandfather‑Father‑Son)

Retention policies

이 정책들은 논리 백업 아티팩트에 적용되며 조직의 데이터 보존 표준을 강제하는 데 도움이 됩니다.

조직 사용을 위해 Portabase는 워크스페이스 구조를 구현하여 리소스(데이터베이스, 저장 위치 및 알림기) 접근 및 구분을 관리할 수 있게 합니다. 이를 통해 동일 인스턴스 내 팀 및 프로젝트 간 권한 경계를 설정합니다.

Source:

다중 통합을 지원하는 고도로 모듈화된 구조

플랫폼은 다음과 같은 여러 스토리지 백엔드를 지원합니다:

  • 로컬 파일 시스템
  • 모든 S3 호환 스토리지 (AWS S3, CloudFlare R2, MinIO, RustFS 등)
  • Google Drive

Add storage channel

Portabase는 유연성과 확장성을 위해 설계되었습니다. 각 데이터베이스를 다중 스토리지 대상에 연결할 수 있어 중복성과 복원력을 제공하며, 하나의 스토리지 위치가 실패하더라도 백업이 안전하게 유지됩니다.

알림 및 경고 통합

Portabase는 Slack, Discord,Telegram과 같은 인기 알림 플랫폼과 통합되어 팀이 실시간으로 백업 상태를 확인할 수 있습니다. 알림은 성공적인 백업이나 실패를 알려주어 사전 모니터링과 빠른 대응을 가능하게 합니다.

Add notification channel

이러한 통합을 통해 중요한 백업 작업이 간과되지 않도록 보장하고, Portabase를 기존 팀 워크플로우와 커뮤니케이션 채널에 손쉽게 삽입할 수 있습니다.

내부 구조

중앙 서버는 Next.js 16으로 구축되었으며, 서버‑사이드 렌더링(SSR)과 최적화된 클라이언트‑사이드 하이드레이션을 활용해 저지연 인터페이스를 제공합니다. 백엔드는 신뢰할 수 있는 데이터 저장을 위해 PostgreSQL을 사용하고, Drizzle ORM이 데이터베이스 상호작용을 관리하여 타입‑안전한 쿼리, 트랜잭션 무결성, 효율적인 스키마 마이그레이션을 보장합니다.

원래 Python으로 작성된 에이전트는 Rust 🦀로 완전히 리팩터링되었으며, Tokio의 비동기 런타임을 활용해 고처리량, 논블로킹 작업을 수행합니다. 이번 리팩터링으로:

  • Docker 이미지 크기가 감소합니다
  • 런타임 오류를 최소화합니다
  • 다중 데이터베이스에 걸친 신뢰성 있는 동시 백업 및 복구 작업을 보장합니다

Rust의 메모리 안전성 및 성능 보장은 에이전트를 고 I/O 요구 환경의 프로덕션에 적합하게 만듭니다.

Portabase가 유용하다고 생각하신다면, GitHub에서 별표를 눌러 주세요!

0 조회
Back to Blog

관련 글

더 보기 »