이 문서는 Confluence의 클러스터링 (node 2개) 설정 가이드를 공유하기 위해 작성되었다.
도구명 | Confluence Data Center |
---|---|
버전 | 9.2.3 |
OS | Linux(Rocky 8) |
비고 | PostgreSQL 15 Java 17 |
목차
0. 클러스터링 준비
1) 클러스터링의 이점
- 고가용성 및 장애 조치: 클러스터의 한 노드가 다운되면 다른 노드가 로드를 담당하므로 사용자가 중단 없이 Confluence에 액세스할 수 있습니다.
- 대규모 성능: 클러스터에 추가된 각 노드는 동시 사용자 용량을 늘리고 사용자 활동이 증가함에 따라 응답 시간을 향상시킵니다.
- 즉각적인 확장성: 다운타임이나 추가 라이선스 비용 없이 클러스터에 새 노드를 추가합니다. 인덱스와 앱은 자동으로 동기화됩니다.
- 재해 복구: 전체 시스템 중단 시에도 비즈니스 연속성을 위해 오프사이트 재해 복구 시스템을 구축합니다. 공유 애플리케이션 인덱스를 통해 빠르게 백업 및 실행이 가능합니다.
- 롤링 업그레이드: 다운타임 없이 기능 릴리스의 최신 버그 수정 업데이트로 업그레이드하세요. 사용자에게 Confluence에 대한 중단 없는 액세스를 제공하는 동시에 사이트에 중요한 버그 수정 및 보안 업데이트를 적용하세요.
2) 클러스터링 구성 아키텍처
이 가이드에서는 다음과 같은 구성으로 클러스터링을 설정했습니다.
- 기존에 사용 중이던 Confluence에 노드를 추가합니다.
- 기존 서비스를 node 1번으로 하고, 추가 서버를 node 2번으로 지칭합니다.
- Node 1번에 PostgreSQL DB를 구축하고, Node 2번에서 이 DB에 액세스합니다.
- 로드 밸런서로써 Node 1번에 설치한 Nginx를 이용합니다.
3) node 1, 2번의 8090번 등 클러스터링을 위한 포트 방화벽 열기
$ sudo firewall-cmd --permanent --add-port=8090/tcp // Confluence 기본 포트 $ sudo firewall-cmd --permanent --add-port=5701/tcp // Confluence용 Hazelcast 포트 $ sudo firewall-cmd --permanent --add-port=5801/tcp // Synchrony용 Hazelcast 포트 $ sudo firewall-cmd --permanent --add-port=25500/tcp // Synchrony를 위한 클러스터 기반 포트 $ sudo firewall-cmd --reload
1. Confluence 설치
1) node1에 Confluence 설치 및 실행
이미 설치되어 있다면 생략
설치 가이드 참조 Confluence Data Center 설치하기(Linux)
node1
- Install Directory : /app/atlassian/confluence
- Local Home Directory : /data/atlassian/confluence-data
2) node2에 JAVA 설치
node 1번과 같은 경로에, JAVA_HOME 환경 변수도 동일하게 설치
2. 클러스터링 활성화
1) 클러스터링 메뉴 활성화
관리자 메뉴 → 클러스터링 → 클러스터 모드 활성화
2) Confluence node 1번 수동 종료
# 서비스로 중지하는 경우 $ sudo systemctl stop confluence # stop.sh 파일 실행하는 경우 $ <install-directory>/bin/stop-confluence.sh
attachments 파일을 shared-home으로 이동
$ mv <home-directory>/attachments <home-directory>/shared-home
3) node2에 node1의 설치 디렉토리 및 home 디렉토리 복사
node 2번에 설치 및 home 디렉토리 생성
$ sudo mkdir -p /app/atlassian $ sudo mkdir -p /data/atlassian
node 1번의 설치 및 로컬 home 디렉토리를 node 2번으로 복사
# node 1번 서버에서 디렉토리를 2번 서버로 복사 전송 $ scp -r /app/atlassian/confluence root@<node2-ip-address>:/app/atlassian/confluence $ scp -r /data/atlassian/confluence-home root@<node2-ip-address>:/data/atlassian/confluence-home # node 2번에서 복사된 디렉토리 소유권 변경 $ chown -R confluence:confluence /app/atlassian/confluence/ $ chown -R confluence:confluence /data/atlassian/confluence-home/
- 로컬 홈 디렉토리를 복사하면 Confluence 검색 인덱스, 데이터베이스 및 클러스터 구성, 기타 모든 설정이 노드 2로 복사됩니다.
confluence.cfg.xml
파일 수정
$ vi /data/atlassian/confluence-home/shared-home/confluence.cfg.xml # 아래 각 노드에 맞게 추가 <property name="cluster.name">confluence-cluster</property> <property name="cluster.node.name">node-1</property> // node-2 <property name="confluence.cluster.node.id">1</property> // 2 <property name="setupStep">complete</property>
4) 로드밸런싱 설정
Confluence 클러스터 앞에 세션 친화성이 있는 load balancer를 사용합니다.
협업 편집에는 WebSockets 지원도 권장됩니다.
- 이 문서에서는 Apache loadbalancing을 설정한 가이드를 제공합니다.
- 로드밸런서가 특정 쿠키를 생성, 동일한 세션의 요청을 동일한 서버로 라우팅하는 방식
nginx 설정 파일에 로드 밸런서 설정 예시
5) DB 설정
PostgreSQL이 외부 IP에서 접속 가능한지 확인
$ vi /var/lib/pgsql/15/postgresql.conf # listen_addresses = 'localhost'로 설정되어 있다면 아래처럼 변경 listen_addresses = '*' # 방화벽 포트 오픈 $ sudo firewall-cmd --permanent --add-port=5432/tcp $ sudo firewall-cmd --reload
설정 파일 수정
$ vi /var/lib/pgsql/15/data/pg_hba.conf # 아래 코드 추가 host all all <node2-ip-address> md5 # 적용 후 PostgreSQL 재시작 $ sudo systemctl restart postgresql-15
3. Confluence 시작 및 클러스터링 구성 설정
1) Confluence 시작
- node 1번과 node 2번 차례로 시작
- 웹브라우저로 Confluence 접근
2) 클러스터 구성에 필요한 정보 입력
3) 클러스터 동작 확인
→ 일반 환경 설정 → 클러스터링