3부 - Tableau Server 엔터프라이즈 배포 준비

3부에서는 Tableau Server 참조 아키텍처를 배포할 인프라를 준비할 때의 요구 사항을 설명합니다. 시작하기 전에 2부 - Tableau Server 배포 참조 아키텍처 이해를 검토하는 것이 좋습니다.

이 항목에서는 요구 사항에 대한 설명 외에도 AWS 환경에서 참조 아키텍처의 구현 예를 제공합니다. 이 가이드의 나머지 부분은 이 항목에서 처음 설명된 AWS 참조 아키텍처 예를 기반으로 합니다.

이 참조 아키텍처의 핵심 원칙은 데이터 센터 보안 모범 사례를 통한 표준화입니다. 이 아키텍처는 서비스를 보호되는 네트워크 서브넷으로 분리하도록 설계되었습니다. 서브넷 간 통신은 특정 프로토콜 및 포트 트래픽으로 제한됩니다.

다음 다이어그램은 온프레미스 배포 또는 고객 관리형 클라우드 배포에 대한 참조 아키텍처 서브넷 설계를 보여줍니다. 클라우드 배포 예제는 아래의 예: AWS에서 서브넷 및 보안 그룹 구성 섹션을 참조하십시오.

서브넷

3개의 서브넷을 만듭니다. 

  • 웹 계층
  • 응용 프로그램 계층
  • 데이터 서브넷

방화벽/보안 그룹 규칙

아래 탭은 데이터 센터의 각 계층에 대한 방화벽 규칙을 설명합니다. AWS별 보안 그룹 규칙에 대해서는 이 항목의 뒷부분에 있는 섹션을 참조하십시오.

웹 계층은 인바운드 HTTPS 요청을 처리하고 응용 프로그램 계층으로 요청을 중계하는 공개 DMZ 서브넷입니다. 이 설계는 조직을 표적으로 할 수 있는 악성 프로그램으로부터의 방어 계층을 제공합니다. 웹 계층은 응용 프로그램/데이터 계층에 대한 액세스를 차단합니다.

트래픽유형프로토콜포트 범위원본

인바운드

SSHTCP22배스천 서브넷(클라우드 배포용)
인바운드HTTPTCP80인터넷(0.0.0.0/0)
인바운드HTTPSTCP443인터넷(0.0.0.0/0)
아웃바운드모든 트래픽전체전체 

응용 프로그램 서브넷은 Tableau Server 배포가 상주하는 위치입니다. 응용 프로그램 서브넷에는 Tableau 응용 프로그램 서버(노드 1 및 노드 2)가 포함됩니다. Tableau 응용 프로그램 서버는 데이터 서버에 대한 사용자 요청을 처리하고 핵심 비즈니스 논리를 실행합니다.

응용 프로그램 서브넷에는 Tableau 데이터 서버(노드 3 및 노드 4)도 포함됩니다.

응용 프로그램 계층에 대한 모든 클라이언트 트래픽은 웹 계층에서 인증됩니다. 응용 프로그램 서브넷에 대한 관리 액세스는 인증되고 배스천 호스트를 거쳐 라우팅됩니다.

트래픽유형프로토콜포트 범위원본

인바운드

SSHTCP22배스천 서브넷(클라우드 배포용)
인바운드HTTPSTCP443웹 계층 서브넷
아웃바운드모든 트래픽전체전체 

데이터 서브넷은 외부 PostgreSQL 데이터베이스 서버가 상주하는 위치입니다.

트래픽유형프로토콜포트 범위원본

인바운드

SSHTCP22배스천 서브넷(클라우드 배포용)
인바운드PostgreSQLTCP5432응용 프로그램 계층 서브넷
아웃바운드모든 트래픽전체전체 

대부분의 기업 보안 팀은 온프레미스 관리 시스템에서 클라우드에 배포된 노드로의 직접 통신을 허용하지 않습니다. 대신, 클라우드 노드로 가는 모든 관리 SSH 트래픽에 대한 프록시로 배스천 호스트를 사용합니다(“점프 서버”라고도 함). 클라우드 배포의 경우 참조 아키텍처의 모든 리소스에 대한 배스천 호스트 프록시 연결을 사용하는 것이 좋습니다. 온프레미스 환경에서 이 구성은 선택 사항입니다.

배스천 호스트는 관리 액세스를 인증하고 SSH 프로토콜을 통한 트래픽만 허용합니다.

트래픽유형프로토콜포트 범위원본대상

인바운드

SSHTCP22관리 컴퓨터 IP 주소 
아웃바운드SSHTCP22 웹 계층 서브넷
아웃바운드SSHTCP22 응용 프로그램 계층 서브넷

예: AWS에서 서브넷 및 보안 그룹 구성

이 섹션은 AWS의 Tableau Server 참조 아키텍처 배포에 대한 VPC 및 네트워크 환경을 만들고 구성하기 위한 단계별 절차를 제공합니다.

아래 슬라이드에서는 4개 계층의 참조 아키텍처를 보여 줍니다. 슬라이드를 진행하면서 구성 요소가 토폴로지 맵에 계층화됩니다.

  1. VPC 서브넷 토폴로지 및 EC2 인스턴스: 배스천 호스트 1개, 역방향 프록시 서버 2개, Tableau Server 4개 및 PostgreSQL 서버 1개 이상
  2. 프로토콜 흐름 및 인터넷 연결: 모든 인바운드 트래픽은 AWS 인터넷 게이트웨이를 통해 관리됩니다. 인터넷 트래픽은 NAT를 통해 라우팅됩니다.
  3. 가용성 영역: 프록시, Tableau Server 및 PostgreSQL 호스트는 두 가용성 영역에 균등하게 배포됩니다.
  4. 보안 그룹: 네 개의 보안 그룹(공용, 사설, 데이터 및 배스천)이 프로토콜 수준에서 각 계층을 보호합니다.

AWS 가용성 영역 및 고가용성

이 가이드에 나온 참조 아키텍처는 단일 호스트에 장애가 발생할 경우 중복성을 통해 가용성을 제공하는 배포를 명시합니다. 그러나 두 가용성 영역에 참조 아키텍처를 배포하는 AWS 사례에서는 가용성 영역에 장애가 발생하는 매우 드문 경우에만 가용성이 손상됩니다.

VPC 구성

이 섹션에서는 다음을 수행하는 방법을 설명합니다.

  • VPC 설치 및 구성
  • 인터넷 연결 구성
  • 서브넷 구성
  • 보안 그룹 생성 및 구성

VPC 구성

이 섹션의 절차는 클래식 VPC 경험의 UI에 매핑됩니다. AWS VPC 대시보드의 왼쪽 위에서 새 VPC 경험을 해제하여 클래식 뷰를 표시하도록 UI를 전환할 수 있습니다.

VPC 마법사를 실행하여 기본적인 사설 및 공용 서브넷과 기본적인 라우팅 및 네트워크 ACL을 만듭니다.

  1. VPC를 구성하기 전에 탄력적 IP를 만들어야 합니다. 모든 기본값을 사용하여 할당을 만듭니다.
  2. VPC 마법사 실행 > "공용 및 사설 서브넷이 있는 VPC"
  3. 대부분의 기본값을 수락합니다. 다음은 예외입니다. 
    • VPC 이름을 입력합니다.
    • 탄력적 IP 할당 ID를 지정합니다.
    •  다음 CIDR 마스크를 지정합니다.
      • 공용 서브넷의 IPv4 CIDR: 10.0.1.0/24, 이 서브넷의 이름을 Public-a로 바꿉니다.
      • 사설 서브넷의 IPv4 CIDR: 10.0.30.0/24, 이 서브넷의 이름을 Private-a로 바꿉니다.
    • 가용성 영역: 두 서브넷에 대해 현재 지역에 해당하는 a 옵션을 선택합니다.

      참고: 이 예에서는 특정 AWS 데이터 센터의 가용성 영역을 서로 구분하기 위해 ab를 사용합니다. AWS에서 가용성 영역 이름이 여기에 표시된 예와 일치하지 않을 수 있습니다. 예를 들어 일부 가용성 영역에는 데이터 센터 내에 cd 영역이 포함됩니다.

  4. VPC 만들기를 클릭합니다.
  5. VPC가 만들어지면 Public-b, Private-b, DataBastion 서브넷을 만듭니다. 서브넷을 만들려면 서브넷 > 서브넷 만들기를 클릭합니다.
    • Public-b: 가용성 영역의 경우 현재 지역에 해당하는 b 옵션을 선택합니다. CIDR 블록: 10.0.2.0/24

    • Private-b: 가용성 영역의 경우 현재 지역에 해당하는 b 옵션을 선택합니다. CIDR 블록: 10.0.31.0/24
    • Data: 가용성 영역의 경우 현재 지역에 해당하는 a 영역을 선택합니다. CIDR 블록: 10.0.50.0/24. 선택 사항: PostgreSQL 클러스터 전체의 외부 데이터베이스를 복제하려는 경우 CIDR 블록이 10.0.51.0/24인 가용성 영역 b에 Data-b 서브넷을 만듭니다.
    • Bastion: 가용성 영역의 경우 영역 중 하나를 선택합니다. CIDR 블록: 10.0.0.0/24
  6. 서브넷이 만들어지면 연결된 IGW(인터넷 게이트웨이)에 대해 구성된 라우팅 테이블을 사용하도록 공용 및 배스천 서브넷의 라우팅 테이블을 편집합니다. 그런 다음 NAT(네트워크 주소 변환기)에 대해 구성된 라우팅 테이블을 사용하도록 사설 및 데이터 서브넷을 편집합니다.
    • IGW 또는 NAT에 구성된 라우팅 테이블을 확인하려면 AWS 대시보드에서 라우팅 테이블을 클릭합니다. 두 라우팅 테이블 링크 중 하나를 선택하여 속성 페이지를 엽니다. 라우팅 > 대상> 0.0.0.0/0에서 대상 값을 확인합니다. 대상 값에 따라 라우팅 유형이 달라지며 igw- 또는 nat- 문자열로 시작됩니다.
    • 라우팅 테이블을 업데이트하려면 VPC서브넷 > [subnet_name] > 라우팅 테이블 > 라우팅 테이블 연결 편집으로 이동합니다.

보안 그룹 구성

VPC 마법사는 단일 보안 그룹을 만들지만 이는 사용되지 않습니다. 다음 보안 그룹을 만듭니다(보안 그룹보안 그룹 만들기). EC2 호스트는 위의 슬라이드 다이어그램과 같이 두 가용성 영역에 걸쳐 이러한 그룹에 설치됩니다.

  • 새 보안 그룹 사설을 만듭니다. Tableau Server의 노드 4개가 모두 여기에 설치됩니다. 설치 프로세스의 나중에 사설 보안 그룹은 10.0.30.0/24 및 10.0.31.0/24 서브넷에 연결됩니다.
  • 새 보안 그룹 공용을 만듭니다. 여기에는 프록시 서버가 설치됩니다. 설치 프로세스의 나중에 공용 보안 그룹은 10.0.1.0/24 및 10.0.2.0/24 서브넷에 연결됩니다.
  • 새 보안 그룹 데이터를 만듭니다. PostgreSQL용 외부 Tableau 리포지토리가 모두 여기에 설치됩니다. 설치 프로세스의 나중에 데이터 보안 그룹은 10.0.50.0/24(선택적으로 10.0.51.0/24) 서브넷에 연결됩니다.
  • 새 보안 그룹 배스천을 만듭니다. 여기에는 배스천 호스트가 설치됩니다. 설치 프로세스의 나중에 배스천 보안 그룹은 및 10.0.0.0/24 서브넷에 연결됩니다.

인바운드 및 아웃바운드 규칙 지정

AWS에서 보안 그룹은 온프레미스 환경의 방화벽과 같은 역할을 합니다. 보안 그룹의 송/수신에 허용되는 트래픽 유형(예: https, https 등), 프로토콜(TCP 또는 UDP) 및 포트 또는 포트 범위(예: 80, 443 등)를 지정해야 합니다. 각 프로토콜에 대해 대상 또는 원본 트래픽도 지정해야 합니다.

공용 보안 그룹 규칙

인바운드 규칙
유형프로토콜포트 범위원본
HTTPTCP800.0.0.0/0
HTTPSTCP4430.0.0.0/0
SSHTCP22배스천 보안 그룹

 

아웃바운드 규칙
유형프로토콜포트 범위대상
모든 트래픽전체전체0.0.0.0/0

사설 보안 그룹 규칙

사설 보안 그룹에는 공용 보안 그룹의 HTTP 트래픽을 허용하는 인바운드 규칙이 포함됩니다. 연결을 확인하기 위해 배포 프로세스 중에만 HTTP 트래픽을 허용합니다. 역방향 프록시 배포를 마치고 Tableau에 대한 SSL을 구성한 후에는 HTTP 인바운드 규칙을 제거하는 것이 좋습니다.

인바운드 규칙
유형프로토콜포트 범위원본
HTTPTCP80공용 보안 그룹
HTTPSTCP443공용 보안 그룹
PostgreSQLTCP5432데이터 보안 그룹
SSHTCP22배스천 보안 그룹
모든 트래픽전체전체사설 보안 그룹

 

아웃바운드 규칙
유형프로토콜포트 범위대상
모든 트래픽전체전체0.0.0.0/0
PostgreSQLTCP5432데이터 보안 그룹
SSHTCP22배스천 보안 그룹

데이터 보안 그룹 규칙

인바운드 규칙
유형프로토콜포트 범위원본
PostgreSQLTCP5432사설 보안 그룹
SSHTCP22배스천 보안 그룹

 

아웃바운드 규칙
유형프로토콜포트 범위대상
모든 트래픽전체전체0.0.0.0/0
PostgreSQLTCP5432사설 보안 그룹
SSHTCP22배스천 보안 그룹

배스천 호스트 보안 그룹 규칙

인바운드 규칙
유형프로토콜포트 범위원본
SSHTCP22AWS(관리 컴퓨터)에 로그인하는 데 사용할 컴퓨터의 IP 주소 및 넷 마스크입니다.
SSHTCP22사설 보안 그룹
SSHTCP22공용 보안 그룹

 

아웃바운드 규칙
유형프로토콜포트 범위대상
SSHTCP22AWS(관리 컴퓨터)에 로그인하는 데 사용할 컴퓨터의 IP 주소 및 넷 마스크입니다.
SSHTCP22사설 보안 그룹
SSHTCP22공용 보안 그룹
SSHTCP22데이터 보안 그룹
HTTPSTCP4430.0.0.0/0(선택 사항: 배스천 호스트에서 지원 소프트웨어를 다운로드하기 위해 인터넷에 연결해야 하는 경우 이 규칙을 만들어야 함)

공용 IP 자동 할당 사용

프록시 서버 및 배스천 호스트에 연결하기 위한 IP 주소를 제공합니다.

공용 및 배스천 서브넷의 경우:

  1. 서브넷을 선택합니다.
  2. 동작 메뉴에서 "IP 자동 할당 설정 수정"을 선택합니다.
  3. "공용 IPv4 주소 자동 할당 사용"을 클릭합니다.
  4. 저장을 클릭합니다.

부하 분산 장치

참고: 이 가이드의 예제 배포에 따라 AWS에 설치하는 경우 배포 프로세스의 나중에 5부 - 웹 계층 구성에 설명된 대로 AWS 부하 분산 장치를 설치하고 구성해야 합니다.

온프레미스 배포의 경우 네트워크 관리자와 협력하여 참조 아키텍처의 웹 계층을 지원할 부하 분산 장치를 배포하십시오.

  • Tableau 클라이언트의 HTTPS 요청을 수락하고 역방향 프록시 서버로 전달하는 웹용 응용 프로그램 부하 분산 장치
  • 역방향 프록시: 
    • 중복성을 구현하고 클라이언트 부하를 처리할 수 있도록 최소 2개의 프록시 서버를 구성하는 것이 좋습니다.
    • 부하 분산 장치의 HTTPS 트래픽을 수신합니다.
    • Tableau 호스트에 대한 고정 세션을 지원합니다.
    • 게이트웨이 프로세스를 실행하는 각 Tableau Server에 대한 라운드 로빈 부하 분산을 위한 프록시를 구성합니다.
    • 외부 IdP의 인증 요청을 처리합니다.
  • 정방향 프록시: 라이선스 및 맵 기능을 위해 Tableau Server에서 인터넷에 액세스할 수 있어야 합니다. 사용하는 정방향 프록시 환경에 따라 Tableau Service URL에 대한 정방향 프록시 허용 목록을 구성해야 할 수 있습니다. 인터넷 통신(Linux(링크가 새 창에서 열림))을 참조하십시오.

호스트 컴퓨터 구성

최소 권장 하드웨어

다음 권장 사항은 참조 아키텍처에서 실제 데이터로 수행한 테스트 결과를 기준으로 합니다.

응용 프로그램 서버:

  • CPU: 물리적 코어 8개(16vCPU)
  • RAM: 128GB(16 GB/물리적 코어)
  • 디스크 공간: 100 GB

데이터 서버

  • CPU: 물리적 코어 8개(16vCPU)
  • RAM: 128GB(16 GB/물리적 코어)
  • 디스크 공간: 1TB. 배포에서 Tableau 파일 저장소에 대해 외부 저장소를 사용할 경우 적절한 디스크 공간을 계산해야 합니다. Tableau Server에 외부 파일 저장소 설치(Linux(링크가 새 창에서 열림))를 참조하십시오.

프록시 서버

  • CPU: 물리적 코어 2개(4vCPU)
  • RAM: 8 GB(4 GB/물리적 코어)
  • 디스크 공간: 100 GB

외부 리포지토리 데이터베이스

  • CPU: 물리적 코어 8개(16vCPU)
  • RAM: 128GB(16 GB/물리적 코어)
  • 디스크 공간 요구 사항은 데이터 부하 및 백업에 미치는 영향에 따라 다릅니다. 디스크 공간 요구 사항(Linux(링크가 새 창에서 열림)) 항목에서 백업 및 복원 프로세스 섹션을 참조하십시오.

디렉터리 구조

이 참조 아키텍처는 Tableau Server 패키지 및 데이터를 기본이 아닌 위치에 설치할 것을 권장합니다.

  • /app/tableau_server에 패키지 설치: Tableau Server 패키지를 설치하기 전에 이 디렉터리 경로를 만든 다음 설치 중에 이 경로를 지정합니다.
  • /data/tableau_data에 Tableau 데이터를 설치합니다. Tableau Server를 설치하기 전에 이 디렉터리를 만들지 마십시오. 대신, 설치 중에 경로를 지정한 다음 Tableau 설치 프로그램을 통해 경로를 만들고 적절한 사용 권한을 설정합니다.

구현 세부 정보는 설치 패키지 실행 및 TSM 초기화를 참조하십시오.

예: AWS에서 호스트 컴퓨터 설치 및 준비

이 섹션에서는 Tableau Server 참조 아키텍처의 각 서버 유형에 대한 EC2 호스트를 설치하는 방법을 설명합니다.

이 참조 아키텍처에는 8개의 호스트가 필요합니다.

  • Tableau Server용 인스턴스 4개
  • 프록시 서버용 인스턴스 2개(Apache)
  • 배스천 호스트용 인스턴스 1개
  • EC2 PostgreSQL 데이터베이스 인스턴스 1개 또는 2개

호스트 인스턴스 세부 정보

아래의 세부 정보에 따라 호스트 컴퓨터를 설치합니다.

Tableau Server

  • Amazon Linux 2
  • 인스턴스 유형: m5a.8xlarge
  • 보안 그룹 ID: 사설
  • 저장소: EBS, 150GiB, gp2 볼륨 유형. 배포에서 Tableau 파일 저장소에 대해 외부 저장소를 사용할 경우 적절한 디스크 공간을 계산해야 합니다. Tableau Server에 외부 파일 저장소 설치(Linux(링크가 새 창에서 열림))를 참조하십시오.
  • 네트워크: 각 사설 서브넷(10.0.30.0/24 및 10.0.31.0/24)에 두 개의 EC2 호스트 설치
  • Tableau 다운로드 페이지(링크가 새 창에서 열림)에서 최신 Tableau Server 2021.2 이상 rpm 패키지의 최신 유지 관리 버전을 각 Tableau 호스트에 복사합니다.

배스천 호스트

  • Amazon Linux 2
  • 인스턴스 유형: t3.micro
  • 보안 그룹 ID: 배스천
  • 저장소: EBS, 50GiB, gp2 볼륨 유형
  • 네트워크: 배스천 서브넷 10.0.0.0/24

Tableau Server 독립 게이트웨이

  • Amazon Linux 2
  • 인스턴스 유형: t3.xlarge
  • 보안 그룹 ID: 공용
  • 저장소: EBS, 100GiB, gp2 볼륨 유형
  • 네트워크: 각 공용 서브넷(10.0.1.0/24 및 10.0.2.0/24)에 한 개의 EC2 인스턴스 설치

PostgreSQL EC2 호스트

  • Amazon Linux 2
  • 인스턴스 유형: r5.4xlarge
  • 보안 그룹 ID: 데이터
  • 저장소: 디스크 공간 요구 사항은 데이터 부하 및 백업에 미치는 영향에 따라 다릅니다. 디스크 공간 요구 사항(Linux(링크가 새 창에서 열림)) 항목에서 백업 및 복원 프로세스 섹션을 참조하십시오.
  • 네트워크: 데이터 서브넷 10.0.50.0/24 (HA 클러스터에서 PostgreSQL을 복제하는 경우 10.0.51.0/24 서브넷에 두 번째 호스트 설치)

확인: VPC 연결

호스트 컴퓨터를 설치한 후 네트워크 구성을 확인합니다. 배스천 보안 그룹의 호스트에서 SSH를 통해 각 서브넷의 호스트에 연결하여 호스트 간 연결성을 확인합니다.

예: AWS의 배스천 호스트에 연결

  1. SSH 에이전트로 사용할 관리 컴퓨터를 설정합니다. 이렇게 하면 개인 키 파일을 EC2 인스턴스에 배치하지 않고도 AWS의 호스트에 연결할 수 있습니다.

    Mac에서 SSH 에이전트를 구성하려면 다음 명령을 실행합니다.

    ssh-add -K myPrivateKey.pem 또는 최신 Mac OS의 경우 ssh-add --apple-use-keychain myPrivateKey.pem

    Windows의 경우 사설 Amazon VPC에서 실행되는 Linux 인스턴스에 안전하게 연결(영문)(링크가 새 창에서 열림) 항목을 참조하십시오.


  2. 다음 명령을 실행하여 배스천 호스트에 연결합니다.

    ssh -A ec2-user@<public-IP>

  3. 그런 다음 배스천 호스트에서 사설 IP 주소를 사용하여 VPC의 다른 호스트에 연결할 수 있습니다. 예를 들면 다음과 같습니다.

    ssh -A ec2-user@10.0.1.93

피드백을 제공해 주셔서 감사합니다!귀하의 피드백이 제출되었습니다. 감사합니다!