내 잡다한 노트

Pigsty 란? 본문

DB/PostgreSQL

Pigsty 란?

peanutwalnut 2025. 2. 15. 12:04

최근에 올렸던 도커에서 db를 올리지 말아야하는 이유에 대한 글과 어느정도 이어지는 부분이다.

운영의 복잡성 등등의 이유로 베어메탈 환경에서 db를 올려야겠다는 철학을 가지고 Pigsty를 만들어 

PostgreSQL을 쉽게 관리할 수 있게 해주는 도구이다. 

 

Pigsty는 PostgreSQL을 기반으로 한 오픈소스 데이터베이스 서비스 아키텍처입니다. 주로 다음과 같은 특징과 목적을 가지고 있습니다:

  1. Local-first RDS 대안
    • Pigsty는 클라우드 기반의 “build once, run anywhere” 접근 방식 대신, 각 서버(또는 OS 환경)에 최적화된 로컬 데이터베이스 서비스를 제공합니다.
    • 이를 통해 하드웨어의 성능과 신뢰성을 최대한 활용할 수 있습니다.
  2. PostgreSQL 배포판
    • Pigsty는 PostgreSQL을 “out-of-the-box” 형태로 배포하여, 별도의 복잡한 설정 없이도 쉽게 운영할 수 있도록 설계되었습니다.
    • 여러 운영체제 배포판과 PostgreSQL의 주요 버전을 지원하여, 다양한 환경에서 안정적으로 운영될 수 있습니다.
  3. 운영 복잡성 관리
    • K8S와 Docker를 사용해 데이터베이스를 관리하는 대신, Ansible과 같은 자동화 도구를 활용해 데이터베이스 인프라를 코드화(Infrastructure as Code, IaC)합니다.
    • Kubernetes의 Custom Resource Definition(CRD)와 유사한 API를 제공함으로써, 데이터베이스 관리에 필요한 복잡성을 줄이고 일관된 운영 환경을 제공합니다.
  4. 운영의 효율성과 신뢰성 강조
    • Pigsty는 고성능 하드웨어를 최대한 활용하며, 데이터베이스 운영에서 중요한 신뢰성, 성능, 유지보수 효율성에 초점을 맞추고 있습니다.
    • 이는 클라우드 네이티브 환경의 유연성보다는, 데이터베이스 고유의 특성을 고려한 접근 방식입니다.

 

Pigsty를 사용하면 PostgreSQL 기반 데이터베이스 클러스터를 쉽게 배포하고 관리할 수 있으며, 여러 가지 작업들을 자동화할 수 있습니다. 예를 들어:

  1. PostgreSQL 클러스터 배포 및 설정
    • 여러 노드에 걸쳐 PostgreSQL 클러스터를 설치하고, 각 인스턴스의 설정을 일관되게 관리할 수 있습니다.
    • 운영체제별, PostgreSQL 버전별 최적화된 설정을 적용하여 환경에 맞게 배포할 수 있습니다.
  2. HA(High Availability) 설정
    • Pigsty는 복제(replication)와 자동 장애 조치(failover) 같은 기능을 활용해 HA 구성을 지원합니다.
    • 기본적으로 standby 노드를 구성하거나, 장애 발생 시 자동으로 페일오버 되는 환경을 구축할 수 있어 데이터베이스의 가용성을 높일 수 있습니다.
  3. 운영 자동화 및 관리
    • Ansible 기반의 IaC(Infrastructure as Code) 접근 방식을 사용하여, 설치, 업그레이드, 모니터링, 백업 등 데이터베이스 운영의 여러 복잡한 과정을 자동화할 수 있습니다.
    • CRD와 유사한 API를 통해 일관된 방식으로 클러스터를 관리할 수 있습니다.
  4. 복구 및 백업 전략
    • 주기적인 백업 설정, 복구 전략 수립 등 데이터 보호 측면에서도 도움을 줍니다.

'DB > PostgreSQL' 카테고리의 다른 글

pg_rewind 란?  (0) 2025.02.13
Patroni 설정 파일  (0) 2025.02.13
Citus를 왜 사용해야하는가?  (0) 2025.02.12
PostgreSQL Citus  (0) 2025.02.12
PostgreSQL의 HA를 위해 설계된 Patroni  (0) 2025.02.12