토토 꽁 머니 1.0의 일반 출시를 발표하게 되어 기쁘게 생각합니다. 이 자동화된 도구는 3노드 클러스터 설정 프로세스를 간소화하여 사용자가 PostgreSQL에서 고가용성을 훨씬 더 쉽게 설정하고 관리할 수 있게 해줍니다.
우리는 PostgreSQL 클러스터 구성이 복잡하고 시간이 많이 걸리는 작업이라는 것을 알고 있습니다. 이것이 바로 프로세스를 더 빠르고 효율적으로 만드는 데 도움이 되도록 토토 꽁 머니를 설계한 이유입니다.
기본, 대기 및 pgpool 노드에 대해 Ansible 플레이북을 실행하는 Python 래퍼 스크립트를 사용하여 구성 관리를 간소화했습니다. 인벤토리 및 변수 파일은 런타임 시 동적으로 생성됩니다. 또한 pg_cirrus는 기본 5432가 아닌 포트에 PostgreSQL 데이터베이스 서버를 설정할 수 있습니다.
우리는 pgpool을 사용하여 PostgreSQL 클러스터 내에서 적절한 로드 밸런싱을 보장했습니다. 즉, WRITE 요청은 기본 PostgreSQL 서버로 이동하고 READ 요청은 대기 PostgreSQL 서버로 이동합니다.
기본 노드가 실패하면 대기 노드 중 하나가 자동으로 새 기본 노드로 승격됩니다. 새로 승격된 기본 노드도 실패하면 세 번째 노드가 승격되어 읽기 및 쓰기 요청을 모두 처리합니다.
더 나은 사용자 경험을 위해 pg_cirrus에는 런타임에 사용자로부터 구성 세부 정보를 가져오는 명령줄 인터페이스가 있습니다. 또한 사용자에게 conf.yml.in, Vault.yml.in 및 Inventory.in 템플릿 파일을 제공했습니다. 사용자는 /var/log/pgpool_logs에 저장된 pgpool 로그를 볼 수도 있습니다. 잘못된 입력을 방지하기 위해 pg_cirrus에서 예외 처리가 사용되었습니다. 특정 플레이북 실행 중에 pg_cirrus가 실패하면 나머지 플레이북은 실행되지 않고 pg_cirrus가 정상적으로 종료됩니다.
pg_cirrus에서는 pg_basebackup을 사용하여 물리적 복제가 설정됩니다. 기본 노드의 모든 데이터는 대기 노드에 복제됩니다. 기본 노드가 설정되면 대기 노드에 대해 기본 노드에 복제 슬롯이 생성됩니다. 장애 조치 후 대기 노드가 새 기본 노드로 승격되면 새로 승격된 기본 노드에 복제 슬롯이 생성되고 나머지 대기 노드는 이 새 기본 노드에서 계속 복제됩니다.
토토 꽁 머니를 안전하게 만들기 위해 비밀번호는 앤서블 볼트를 사용하여 저장됩니다. 클러스터의 모든 노드는 동일한 서브넷으로 제한되는 반면 pgpool 노드만 비밀번호를 사용하여 서브넷 외부에서 액세스할 수 있습니다. 기본 및 대기 노드는 비밀번호를 사용하여 클러스터 내에서만 액세스할 수 있습니다.
토토 꽁 머니를 시작하는 데 도움이 되도록 다음 리소스를 제공했습니다.
Stormatics는 PostgreSQL에 대한 전문 서비스를 제공합니다. 우리의 임무는 기업이 미션 크리티컬 데이터를 위해 PostgreSQL을 안정적으로 확장할 수 있도록 돕는 것입니다.