2부 - Tableau Server 배포 참조 아키텍처 이해
다음 이미지에서는 관련 Tableau Server 프로세스와 참조 아키텍처에 이러한 프로세스가 배포되는 방식을 보여 줍니다. 이 배포는 엔터프라이즈에 적합한 최소 Tableau Server 배포로 간주됩니다.
이 항목의 프로세스 다이어그램은 각 노드의 주요 정의 프로세스를 보여 주기 위한 것입니다. 다이어그램에 표시되지 않은 노드에서도 실행되는 지원 프로세스가 많이 있습니다. 모든 프로세스 목록은 이 가이드의 구성 섹션에서 4부 - Tableau Server 설치 및 구성을 참조하십시오.
Tableau Server 프로세스
Tableau Server 참조 아키텍처는 PostgreSQL에 외부 리포지토리가 있는 4노드 Tableau Server 클러스터 배포입니다.
- Tableau Server 초기 노드(노드 1): 클러스터의 단일 노드에서만 실행할 수 있는 TSM 관리 및 라이선스 서비스가 필요합니다. 엔터프라이즈 환경에서 Tableau Server 초기 노드는 클러스터의 주 노드입니다. 이 노드는 노드 2에서도 중복 응용 프로그램 서비스를 실행합니다.
- Tableau Server 응용 프로그램 노드(노드 1 및 노드 2): 이 두 노드는 클라이언트 요청을 처리하고 데이터 원본 및 데이터 노드에 연결하여 쿼리를 수행합니다.
- Tableau Server 데이터 노드(노드 3 및 노드 4): 데이터 관리를 전담하는 노드입니다.
- 외부 PostgreSQL: 이 호스트에서는 Tableau Server 리포지토리 프로세스를 실행합니다. HA 배포를 위해서는 활성/비활성 중복성을 위해 PostgreSQL 호스트를 추가로 실행해야 합니다.
Amazon RDS에서 PostgreSQL을 실행할 수도 있습니다. RDS에서 리포지토리를 실행하는 경우와 EC2 인스턴스에서 리포지토리를 실행하는 경우 간의 차이점에 대한 자세한 내용은 Tableau Server 외부 리포지토리(Linux(링크가 새 창에서 열림))를 참조하십시오.
외부 리포지토리와 함께 Tableau Server를 배포하려면 Tableau Advanced Management 라이선스가 필요합니다.
사내 DBA 전문가가 없는 조직의 경우 기본 내부 PostgreSQL 구성에서 Tableau Server 리포지토리 프로세스를 선택적으로 실행할 수도 있습니다. 기본 시나리오에서 리포지토리는 PostgreSQL이 내장된 Tableau 노드에서 실행됩니다. 이 경우 전용 Tableau 노드에서 리포지토리를 실행하고, 리포지토리 장애 조치를 지원하기 위해 추가 전용 노드에서 비활성 리포지토리를 실행하는 것이 좋습니다. 리포지토리 장애 조치(Linux(링크가 새 창에서 열림))를 참조하십시오.
이 가이드에 예제로 설명된 AWS 구현은 EC2 인스턴스에서 실행되는 PostgreSQL에 외부 리포지토리를 배포하는 방법을 설명합니다.
선택 사항: 조직에서 외부 스토리지를 사용하는 경우 Tableau 파일 저장소를 외부 서비스로 배포할 수 있습니다. 이 가이드에서는 핵심 배포 시나리오에 외부 파일 저장소를 포함하지 않습니다. Tableau Server에 외부 파일 저장소 설치(Linux(링크가 새 창에서 열림))를 참조하십시오.
외부 파일 저장소와 함께 Tableau Server를 배포하려면 Tableau Advanced Management 라이선스가 필요합니다.
PostgresSQL 리포지토리
Tableau Server 리포지토리는 서버 데이터를 저장하는 PostgresSQL 데이터베이스입니다. 이 데이터에는 Tableau Server 사용자, 그룹 및 그룹 할당, 사용 권한, 프로젝트, 데이터 원본, 추출 메타데이터 및 새로 고침 정보와 관련된 정보가 포함됩니다.
기본 PostgresSQL 배포에는 시스템 메모리 리소스의 거의 50%가 사용됩니다. 사용 유형(프로덕션 및 대규모 프로덕션 배포)에 따라 리소스 사용량이 증가할 수 있습니다. 이러한 이유로 VizQL, 백그라운더 또는 데이터 엔진과 같은 다른 리소스 집약적 서버 구성 요소를 실행하지 않는 컴퓨터에서 리포지토리 프로세스를 실행하는 것이 좋습니다. 이러한 구성 요소와 함께 리포지토리 프로세스를 실행하면 IO 경합이 발생하여 리소스가 제약되고 배포의 전체 성능이 저하됩니다.
노드 1: 초기 노드
초기 노드는 소수의 중요한 프로세스를 실행하고 응용 프로그램 노드를 노드 2와 공유합니다.
Tableau를 설치한 첫 번째 컴퓨터인 "초기 노드"에는 몇 가지 고유한 특성이 있습니다. 라이선스 서비스(라이선스 관리자), 활성화 서비스 및 TSM 컨트롤러(관리 컨트롤러)의 세 프로세스는 초기 노드에서만 실행되며 장애 상황 이외에는 다른 노드로 이동할 수 없습니다.
노드 1 장애 조치 및 자동 복원
라이선스, 활성화 및 TSM 컨트롤러 서비스는 Tableau Server 배포의 상태에 매우 중요합니다. 노드 1에 장애가 발생해도 사용자가 Tableau Server 배포에 연결할 수 있습니다. 올바르게 구성된 참조 아키텍처가 요청을 노드 2로 라우팅하기 때문입니다. 그러나 이러한 코어 서비스가 없으면 배포가 심각한 장애 보류 상태에 있게 됩니다. 초기 노드 자동 복구를 참조하십시오.
노드 1 및 2: 응용 프로그램 서버
노드 1 및 2는 클라이언트 요청을 처리하고 데이터 원본을 쿼리하고 비주얼리제이션을 생성하며 콘텐츠 및 관리와 기타 핵심 Tableau 비즈니스 논리를 처리하는 Tableau Server 프로세스를 실행합니다. 응용 프로그램 서버는 사용자 데이터를 저장하지 않습니다.
참고: “응용 프로그램 서버”는 TSM에 나열되는 Tableau Sever 프로세스를 나타내는 용어이기도 합니다. “응용 프로그램 서버”의 기초 프로세스는 VizPortal입니다.
부하 분산 논리 실행의 요청을 역방향 프록시 서버에서 처리하도록 노드 1과 노드 2 병렬 실행을 확장합니다. 중복 노드로서 이러한 노드 중 하나에 장애가 발생하면 나머지 노드에서 클라이언트 요청 및 서비스를 처리합니다.
보조 응용 프로그램 프로세스가 동일한 컴퓨터에서 실행되도록 참조 아키텍처가 설계됩니다. 즉, 프로세스가 컴퓨팅 리소스를 놓고 경쟁하지 않고 경합을 유발하지 않는다는 의미입니다.
예를 들어 응용 프로그램 서버의 코어 처리 서비스인 VizQL은 CPU 및 메모리 제한이 높은 프로세스로, 컴퓨터 CPU 및 메모리의 거의 60~70%를 사용합니다. 이러한 이유로 이 참조 아키텍처는 다른 메모리 또는 CPU 제한 프로세스를 VizQL과 동일한 노드에서 실행하지 않도록 설계되었습니다. 테스트에서 부하의 양 또는 사용자 수는 VizQL 노드의 메모리 또는 CPU 사용량에 영향을 미치지 않는 것으로 밝혀졌습니다. 예를 들어 부하 테스트에서 동시 사용자 수를 줄이면 대시보드 또는 비주얼리제이션 로드 프로세스의 성능만 영향을 받고 리소스 사용률이 줄어들지는 않습니다. 따라서 사용량이 피크일 때의 가용 메모리 및 CPU에 따라 더 많은 VizQL 프로세스를 추가하는 것을 고려할 수 있습니다. 일반적인 통합 문서로 시작할 때는 VizQL 프로세스당 4개의 코어를 할당합니다.
응용 프로그램 서버 확장
참조 아키텍처는 사용 기반 모델에 따라 확장할 수 있도록 설계되었습니다. 일반적으로 최소 2개의 응용 프로그램 서버를 사용하는 것이 좋습니다. 각 서버는 최대 1000명의 사용자를 지원합니다. 사용자 기반이 증가하는 경우 1000명의 사용자를 추가할 때마다 응용 프로그램 서버를 추가할 계획을 세우십시오. 사용 현황 및 성능을 모니터링하여 조직의 호스트별 사용자 기반을 조정하십시오.
노드 3 및 4: 데이터 서버
파일 저장소, 데이터 엔진(Hyper) 및 백그라운더 프로세스는 다음과 같은 이유로 노드 3과 4에 함께 배치됩니다.
- 추출 최적화: 백그라운더, Hyper 및 파일 저장소를 동일한 노드에서 실행하면 성능 및 안정성이 최적화됩니다. 추출 프로세스 중에 백그라운더는 대상 데이터베이스를 쿼리하고 동일한 노드에 Hyper 파일을 만든 다음 파일 저장소에 업로드합니다. 이러한 프로세스를 동일한 노드에 함께 배치하면 추출 생성 워크플로우에서 다량의 데이터 스트림을 네트워크 또는 노드에 복사하지 않아도 됩니다.
- 보조 리소스 분산: 백그라운더는 대부분 CPU 집약적입니다. 데이터 엔진은 메모리 집약적인 프로세스입니다. 이러한 프로세스를 결합하면 각 노드의 리소스 활용률을 최대화할 수 있습니다.
- 데이터 프로세스 통합: 이러한 각 프로세스는 백엔드 데이터 프로세스이므로 가장 안전한 데이터 계층에서 실행하는 것이 적절합니다. 향후 버전의 참조 아키텍처에서는 응용 프로그램과 데이터 서버가 별도의 계층에서 실행됩니다. 그러나 Tableau 아키텍처의 응용 프로그램 종속성으로 인해 현재는 응용 프로그램 및 데이터 서버가 같은 계층에서 실행되어야 합니다.
데이터 서버 확장
응용 프로그램 서버와 마찬가지로 Tableau 데이터 서버에 필요한 리소스를 계획하려면 사용 기반 모델링이 필요합니다. 일반적으로 각 데이터 서버가 하루에 최대 2000개의 추출 새로 고침 작업을 지원할 수 있다고 가정합니다. 추출 작업이 늘어나면 파일 저장소 서비스 없이 데이터 서버를 더 추가하십시오. 일반적으로 로컬 파일 시스템을 파일 저장소 서비스로 사용하는 배포의 경우 2노드 데이터 서버 배포가 적합합니다. 응용 프로그램 서버를 더 추가해도 데이터 서버의 성능이나 선형 확장에는 영향을 미치지 않습니다. 실제로 추가 사용자 쿼리로 인한 오버헤드를 제외하고 응용 프로그램 호스트 및 사용자를 더 추가할 경우 미치는 영향은 매우 적습니다.