내 잡다한 노트
Pigsty 란? 본문
최근에 올렸던 도커에서 db를 올리지 말아야하는 이유에 대한 글과 어느정도 이어지는 부분이다.
운영의 복잡성 등등의 이유로 베어메탈 환경에서 db를 올려야겠다는 철학을 가지고 Pigsty를 만들어
PostgreSQL을 쉽게 관리할 수 있게 해주는 도구이다.
Pigsty는 PostgreSQL을 기반으로 한 오픈소스 데이터베이스 서비스 아키텍처입니다. 주로 다음과 같은 특징과 목적을 가지고 있습니다:
- Local-first RDS 대안
- Pigsty는 클라우드 기반의 “build once, run anywhere” 접근 방식 대신, 각 서버(또는 OS 환경)에 최적화된 로컬 데이터베이스 서비스를 제공합니다.
- 이를 통해 하드웨어의 성능과 신뢰성을 최대한 활용할 수 있습니다.
- PostgreSQL 배포판
- Pigsty는 PostgreSQL을 “out-of-the-box” 형태로 배포하여, 별도의 복잡한 설정 없이도 쉽게 운영할 수 있도록 설계되었습니다.
- 여러 운영체제 배포판과 PostgreSQL의 주요 버전을 지원하여, 다양한 환경에서 안정적으로 운영될 수 있습니다.
- 운영 복잡성 관리
- K8S와 Docker를 사용해 데이터베이스를 관리하는 대신, Ansible과 같은 자동화 도구를 활용해 데이터베이스 인프라를 코드화(Infrastructure as Code, IaC)합니다.
- Kubernetes의 Custom Resource Definition(CRD)와 유사한 API를 제공함으로써, 데이터베이스 관리에 필요한 복잡성을 줄이고 일관된 운영 환경을 제공합니다.
- 운영의 효율성과 신뢰성 강조
- Pigsty는 고성능 하드웨어를 최대한 활용하며, 데이터베이스 운영에서 중요한 신뢰성, 성능, 유지보수 효율성에 초점을 맞추고 있습니다.
- 이는 클라우드 네이티브 환경의 유연성보다는, 데이터베이스 고유의 특성을 고려한 접근 방식입니다.
Pigsty를 사용하면 PostgreSQL 기반 데이터베이스 클러스터를 쉽게 배포하고 관리할 수 있으며, 여러 가지 작업들을 자동화할 수 있습니다. 예를 들어:
- PostgreSQL 클러스터 배포 및 설정
- 여러 노드에 걸쳐 PostgreSQL 클러스터를 설치하고, 각 인스턴스의 설정을 일관되게 관리할 수 있습니다.
- 운영체제별, PostgreSQL 버전별 최적화된 설정을 적용하여 환경에 맞게 배포할 수 있습니다.
- HA(High Availability) 설정
- Pigsty는 복제(replication)와 자동 장애 조치(failover) 같은 기능을 활용해 HA 구성을 지원합니다.
- 기본적으로 standby 노드를 구성하거나, 장애 발생 시 자동으로 페일오버 되는 환경을 구축할 수 있어 데이터베이스의 가용성을 높일 수 있습니다.
- 운영 자동화 및 관리
- Ansible 기반의 IaC(Infrastructure as Code) 접근 방식을 사용하여, 설치, 업그레이드, 모니터링, 백업 등 데이터베이스 운영의 여러 복잡한 과정을 자동화할 수 있습니다.
- CRD와 유사한 API를 통해 일관된 방식으로 클러스터를 관리할 수 있습니다.
- 복구 및 백업 전략
- 주기적인 백업 설정, 복구 전략 수립 등 데이터 보호 측면에서도 도움을 줍니다.
'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 |