Database8 PostgreSQL 클러스터 구성하기(4) 이전 포스팅에서는 Patroni와 etcd를 활용하여 PostgreSQL 클러스터를 구성하였습니다. 이번에는 HAProxy를 도입하여 클러스터에 고가용성을 보장하도록 구현해 보겠습니다. HAProxy는 클러스터 내에서 리더 노드를 자동으로 식별하고, 클라이언트의 요청을 해당 노드로 라우팅하는 역할을 수행합니다. 이를 통해 애플리케이션은 장애 발생 시에도 중단 없이 데이터베이스에 접근할 수 있으며, 실시간 장애 조치(Failover)가 가능해집니다. 먼저, HAProxy의 역할을 담당할 EC2 인스턴스를 하나 새로 생성합니다. 해당 인스턴스에서는 클러스터의 상태를 감지하고, 클라이언트 요청을 현재 리더 노드로 라우팅하는 프록시 역할을 수행하게 됩니다. HAProxy 설치 & 설정다음 명령어를 통해 HAPr.. 2025. 6. 20. PostgreSQL 클러스터 구성하기(3) 이전 단계에서 etcd 클러스터를 정상적으로 구성했다면, 이제는 본격적으로 PostgreSQL과 Patroni를 이용한 데이터베이스 클러스터를 구성할 차례입니다. 이번 글에서는 각 노드에 PostgreSQL 16을 설치하고, Patroni 설정을 통해 클러스터를 구성하는 과정을 정리해보겠습니다. 1. PostgreSQL 설치Patroni는 PostgreSQL을 직접 구동하고 관리하기 때문에, systemd로 실행되는 기본 PostgreSQL 데몬은 꺼두는 게 좋습니다. 먼저 PostgreSQL 16을 설치하겠습니다.# 1. 필수 도구 설치sudo apt install -y wget gnupg lsb-release# 2. GPG 키 등록wget --quiet -O - https://www.postgresq.. 2025. 6. 18. PostgreSQL 클러스터 구성하기(2) 이제 본격적으로 PostgreSQL 고가용성 클러스터를 구성해보겠습니다. 첫 번째 단계는 Etcd 클러스터 구성입니다.Patroni는 Etcd를 통해 리더 선출, 클러스터 상태 공유, Failover 시점 판단 등을 수행하기 때문에 Etcd는 고가용성 클러스터에서 반드시 선행되어야 하는 핵심 컴포넌트입니다. 이번 글에서는 Etcd를 퍼블릭 EC2 인스턴스에 설치하고 구성해보겠습니다.OS: Ubuntu 24.04 LTS인스턴스 수: 3대 이번 실습은 퍼블릭 인스턴스를 사용하지만, 운영환경에서는 반드시 프라이빗 서브넷에 데이터베이스를 배치해야 합니다. ETCDEtcd는 분산 키-값 저장소(distributed key-value store)입니다. 기본적으로는 간단한 KVS처럼 작동하지만, RAFT 알고리즘.. 2025. 6. 18. PostgreSQL 클러스터 구성하기(1) 최근 진행한 프로젝트에서 PostgreSQL을 활용해 데이터베이스를 구축하게 되었습니다. 당연하게도 단일 인스턴스만으로는 장애 대응이 어려웠고, Master-Slave 구조를 통한 Failover와 고가용성(High Availability) 구성이 필수적이었습니다. 이런 상황에서 기술적으로 두 가지 선택지가 있었습니다.AWS의 RDS 서비스를 활용해 쉽게 구성하기EC2 인스턴스를 기반으로 직접 PostgreSQL 클러스터를 구성하기RDS장점몇 번의 클릭으로 복제 및 Multi-AZ 구성 가능백업, 모니터링, 패치 관리가 자동화장애 발생 시 자동 Failover 지원 (보통 수 분 이내 복구)단점내부 복제 구조나 장애 전환 로직에 대한 제어가 어려움특정 확장 기능이나 커스텀 파라미터 설정에 제약비용 측면에.. 2025. 6. 18. 이전 1 2 다음