Architecting Modern Data Platforms 12

12장 고가용성

고가용성 아키텍처의 중요한 내용들을 알아보면서 개별 서비스를 보장하도록 고가용성을 설정하는 방법에 대해 살펴보자.

고가용성의 정의

수평적(Lateral)/서비스 고가용성
수직적(Vertical)/전체적(Systemic)고가용성

가용성의 측정

백분율
백분위수

고가용성의 운영

모니터링
지침서와 포스트모텀

고가용성 빌딩 블록

쿼럼
로드 밸런싱
DNS 라운드로빈
가상 IP
전용 로드 밸런서
보안 고려사항
  • 커버로스
  • TLS
데이터베이스 고가용성
클러스터링
복제
지원하는 데이터베이스
보조서비스
기본서비스
  • NTP
  • DNS
계정 관리 서비스
  • LDAP
  • 커버로스

일반적인 고려사항

마스터와 워커 프로세스의 분리
동일 서비스 역할의 분리
마스터 서버를 별개의 장애 도메인에 배포하기
균형잡힌 마스터 설정
서버 구성의 최적화

클러스터 서비스의 고가용성

주키퍼
장애조치
배포 고려사항
  • 홀수의 서버를 배포
  • 충분한 서버의 사용
  • 전용 디스크
HDFS
고가용성 설정
수동 장애 조치
자동 장애 조치
쿼럼 저널 매니저 모드
보안
  • 커버로스
  • 위임 토큰
배포 시 권고 사항
  • 마스터 노드 3개
  • 유일한 HDFS 네임 서비스 이름
  • 메타데이터는 RAID 1을 고려하자
  • 저널노드 전용 디스크
수동 장애 조치
자동 장애 조치
배포 시 고려 사항
  • ZKRMStateStore에 상태를 저장
  • 자동 장애 조치의 적용
  • 유일한 서비스 이름
HBase
HMaster 고가용성
리전 복제
배포 시 고려 사항
키 관리 서버
배포 시 고려사항
하이브
메타스토어
하이브서버2
고가용성 아키텍처
배포 시 고려사항
  • 하이브 메타스토어는 마스터 프로세스임을 이해하자
  • 고가용성 모드 데이터베이스를 사용하자
  • 영속 토큰 스토어를 사용하자
  • 키탭과 로드 밸런싱을 위한 인증서를 설정하자
  • 영속 세션을 지원하는 로드 밸런서를 제공하자
  • 테넌트별로 개별 고가용성 환경을 제공하자
임팔라
임팔라 데몬
카탈로그 서버
상태 스토어
고가용성을 위한 아키텍처 구축
배포 시 고려사항
  • 지원용 서비스는 마스터 노드에 설치하자
  • 코디네이터 역할을 제한하자
  • 로드 밸런서를 도입하자
  • 로드 밸런서에 인증서를 설치하자
  • 운영 계획을 수립하자
솔라
배포 시 고려사항
  • 다중 복제 서버를 사용하자
  • 복제 서버는 다른 랙에 설치하자
  • CloudSolrServer 클라이언트를 사용하자
카프카
배포 시 고려사항
  • 최소 3개의 브로커를 배포하자
  • 여러 랙에 분산해서 배포하자
  • 브로커 데이터 디스크의 스토리지 설정을 확인하자
  • 의존 서비스도 고가용성 모드로 운영하자
우지
배포 시 고려사항
  • 마스터 노드를 사용하자
  • 고가용성 데이터베이스를 사용하자
  • 고가용성을 위한 보안을 설정하자
배포 시 고려사항
  • 독립된 로드 밸런서의 사용
  • 휴 내장 로드 밸런서 도구의 사용
  • 하이브리드 방식
  • 적절한 보안을 설정하자
  • 멀티테넌시를 설정하자
  • 고가용성을 지원하도록 앱을 구성하자
다른 서비스
  • 센트리
  • 레인저
자동설정