12장 고가용성
고가용성 아키텍처의 중요한 내용들을 알아보면서 개별 서비스를 보장하도록 고가용성을 설정하는 방법에 대해 살펴보자.
고가용성의 정의
수평적(Lateral)/서비스 고가용성
수직적(Vertical)/전체적(Systemic)고가용성
가용성의 측정
백분율
백분위수
고가용성의 운영
모니터링
지침서와 포스트모텀
고가용성 빌딩 블록
쿼럼
로드 밸런싱
DNS 라운드로빈
가상 IP
전용 로드 밸런서
보안 고려사항
- 커버로스
- TLS
데이터베이스 고가용성
클러스터링
복제
지원하는 데이터베이스
보조서비스
기본서비스
- NTP
- DNS
계정 관리 서비스
- LDAP
- 커버로스
일반적인 고려사항
마스터와 워커 프로세스의 분리
동일 서비스 역할의 분리
마스터 서버를 별개의 장애 도메인에 배포하기
균형잡힌 마스터 설정
서버 구성의 최적화
클러스터 서비스의 고가용성
주키퍼
장애조치
배포 고려사항
- 홀수의 서버를 배포
- 충분한 서버의 사용
- 전용 디스크
HDFS
고가용성 설정
수동 장애 조치
자동 장애 조치
쿼럼 저널 매니저 모드
보안
- 커버로스
- 위임 토큰
배포 시 권고 사항
- 마스터 노드 3개
- 유일한 HDFS 네임 서비스 이름
- 메타데이터는 RAID 1을 고려하자
- 저널노드 전용 디스크
얀
수동 장애 조치
자동 장애 조치
배포 시 고려 사항
- ZKRMStateStore에 상태를 저장
- 자동 장애 조치의 적용
- 유일한 서비스 이름
HBase
HMaster 고가용성
리전 복제
배포 시 고려 사항
키 관리 서버
배포 시 고려사항
하이브
메타스토어
하이브서버2
고가용성 아키텍처
배포 시 고려사항
- 하이브 메타스토어는 마스터 프로세스임을 이해하자
- 고가용성 모드 데이터베이스를 사용하자
- 영속 토큰 스토어를 사용하자
- 키탭과 로드 밸런싱을 위한 인증서를 설정하자
- 영속 세션을 지원하는 로드 밸런서를 제공하자
- 테넌트별로 개별 고가용성 환경을 제공하자
임팔라
임팔라 데몬
카탈로그 서버
상태 스토어
고가용성을 위한 아키텍처 구축
배포 시 고려사항
- 지원용 서비스는 마스터 노드에 설치하자
- 코디네이터 역할을 제한하자
- 로드 밸런서를 도입하자
- 로드 밸런서에 인증서를 설치하자
- 운영 계획을 수립하자
솔라
배포 시 고려사항
- 다중 복제 서버를 사용하자
- 복제 서버는 다른 랙에 설치하자
- CloudSolrServer 클라이언트를 사용하자
카프카
배포 시 고려사항
- 최소 3개의 브로커를 배포하자
- 여러 랙에 분산해서 배포하자
- 브로커 데이터 디스크의 스토리지 설정을 확인하자
- 의존 서비스도 고가용성 모드로 운영하자
우지
배포 시 고려사항
- 마스터 노드를 사용하자
- 고가용성 데이터베이스를 사용하자
- 고가용성을 위한 보안을 설정하자
휴
배포 시 고려사항
- 독립된 로드 밸런서의 사용
- 휴 내장 로드 밸런서 도구의 사용
- 하이브리드 방식
- 적절한 보안을 설정하자
- 멀티테넌시를 설정하자
- 고가용성을 지원하도록 앱을 구성하자
다른 서비스
- 센트리
- 레인저