Ivory 2.0: 데이터베이스 클러스터 관리를 위한 오픈 소스 자가 호스팅 UI
요약
오픈 소스 웹 UI인 Ivory v2.0.0이 출시되어 데이터베이스 클러스터 관리를 혁신했습니다. 이 업데이트는 플러그 가능한 아키텍처(Keeper)를 도입하여 PostgreSQL 외에도 MongoDB, Redis, ClickHouse 등 다양한 DB를 지원하며, 사용자 친화적인 배포 템플릿과 사용자 관리 기능도 추가되었습니다.
핵심 포인트
- PostgreSQL에 국한되지 않는 범용 클러스터 관리 UI 제공
- Keeper 아키텍처로 다중 데이터베이스(MongoDB, Redis 등) 지원 확장
- 배포 템플릿을 통한 엔드투엔드 클러스터 생성 기능 추가
- 사용자 및 권한 관리가 가능한 통합 대시보드 구현
안녕하세요 r/selfhosted 커뮤니티 여러분,
저는 사용자가 직접 운영하는 데이터베이스 클러스터를 관리하기 위한 오픈 소스 웹 UI인 Ivory의 제작자이자 유지보수자입니다. 이 도구는 몇 년 전 Patroni를 사용하는 Postgres 클러스터용으로 시작되었으며, 방금 가장 큰 변화를 담은 v2.0.0을 출시했습니다. 이곳은 자가 호스팅 서브레딧이므로, 이것이 무엇인지 그리고 어떻게 실행하는지에 대한 간략한 버전을 공유합니다.
Ivory란 무엇인가요?
하나의 Docker 컨테이너(Go 백엔드 + React 프론트엔드)로 구성되어 사용자의 클러스터를 한 곳에서 보고 관리할 수 있게 해줍니다. 여기에는 관리 UI, 쿼리 빌더, 기본 VM 통계 등이 포함됩니다. 이 도구는 사용자 자신의 머신이나 공유 사용을 위한 별도의 VM에 배포할 수 있습니다.
사용해 보기
docker run -p 80:80 --restart always veegres/ivory
http://localhost로 접속하면 Ivory가 초기 설정을 안내해 줄 것입니다.
2.0에서 새로워진 점
🔌 플러그 가능한 아키텍처(Pluggable architecture). 이전에는 Ivory가 Postgres/Patroni에 종속되어 있었습니다. v2에서는 클러스터 운영을 위한 범용 관리 계층인 Keeper를 도입했습니다. Keeper는 데이터베이스 옆에서 실행되는 독립형 에이전트일 수도 있고, 데이터베이스 엔진 자체에 내장된 관리 시스템일 수도 있습니다. 이제 Patroni는 단지 하나의 Keeper 구현체일 뿐이므로, 다른 데이터베이스와 HA(High Availability) 도구를 추가한다고 해서 핵심 코드를 변경할 필요가 없습니다.
🗄️ 새로운 데이터베이스의 첫 번째 웨이브
- PostgreSQL (Patroni): v1에서 가져온 오리지널 기능입니다.
- MongoDB: 레플리카셋(replica-set) HA 관리 기능을 지원합니다.
- Redis: 클러스터/복제(replication)에 대한 초기 지원을 제공합니다.
- ClickHouse: ZooKeeper를 통해 복제를 조정하는 초기 지원을 제공합니다.
- ZooKeeper: 자체 관리 가능한 앙상블(ensemble)로 사용하거나, 다른 Keeper들이 연결하는 외부 DCS(Distributed Coordination Service)로 사용할 수 있습니다.
- etcd: ZooKeeper 옆에 추가된 DCS 옵션입니다.
성숙도에 대해 솔직하게 말씀드리자면: Patroni가 가장 오래되었고 검증된 기능입니다. Redis와 ClickHouse는 초기 플러그인 단계이므로, 미흡한 부분이 있을 수 있습니다. 발견하시면 꼭 보고해 주시기 바랍니다.
🚀 UI에서 클러스터 배포. 이전에는 기존에 존재하는 클러스터를 등록하는 것만 가능했습니다. 이제 Ivory를 통해 엔드투엔드로 클러스터를 생성할 수 있습니다.
배포 템플릿(Deployment templates)을 사용하면 클러스터 구성을 한 번 정의하고 (자체 Docker 이미지 포함), 동일한 설정을 다시 입력할 필요 없이 새로운 클러스터를 실행할 수 있습니다.
👤 사용자 관리. 이제 관리자는 설정 페이지에서 추가 Ivory 사용자를 생성할 수 있습니다.
⚠️ 주요 변경 사항(Breaking change): v2.0.0은 새로 설치해야 합니다. Keeper 모델은 주요 아키텍처 변경이므로, v1.4.x와 호환된다는 보장이 없습니다. 업그레이드하기 전에:
- 클러스터 구성 및 자격 증명 내보내기(Export)
- 사용자 지정 쿼리 및 템플릿 백업
- 가능한 경우 설정의 백업/복원(Backup/Restore) 기능을 사용하고, 동일한 데이터 디렉토리를 재사용하기 전에 저장소의 하위 호환성 참고 사항을 확인하세요.
링크
GitHub: https://github.com/veegres/ivory
릴리스 노트(Release notes): https://github.com/veegres/ivory/releases/tag/v2.0.0
피드백을 받고 싶습니다
- 어떤 데이터베이스 또는 HA 도구가 Keeper를 다음으로 받아야 할까요?
- 홈랩에서 클러스터를 운영한다면, 이런 도구들에서 무엇이 부족한가요?
GitHub에 버그 보고 및 기능 요청을 주시면 대환영입니다. 질문에 답변하기 위해 댓글로 돌아다니겠습니다.
제출자: /u/aelsergeev
[링크] [댓글]
AI 자동 생성 콘텐츠
본 콘텐츠는 r/SelfHosted (AI filter)의 원문을 AI가 자동으로 요약·번역·분석한 것입니다. 원 저작권은 원저작자에게 있으며, 정확한 내용은 반드시 원문을 확인해 주세요.
원문 바로가기