パート 3 - Tableau Server を企業環境へ導入する準備
パート 3 では、Tableau Server の参照アーキテクチャの導入に必要なインフラストラクチャ要件について説明します。始める前に、「パート 2 - Tableau Server 導入の参照アーキテクチャ」を確認することをお勧めします。
このトピックでは、要件の説明に加えて、AWS 環境で参照アーキテクチャを実装する例についても説明します。本ガイドの残りの部分では、このトピックで説明する AWS 参照アーキテクチャの例を基にして説明を行います。
参照アーキテクチャで基本としている指針は、データセンターのセキュリティのベストプラクティスに基づく標準化です。具体的には、このアーキテクチャでは、保護されたネットワーク サブネットにサービスを分離するように設計されています。サブネット間のやりとりは、特定のプロトコルとポートの通信に制限されます。
次の図は、オンプレミス展開またはお客様が管理するクラウド展開におけるリファレンス アーキテクチャのサブネット設計を示しています。クラウドでの導入の例については、以下のセクション例: AWS でサブネットとセキュリティ グループを構成するを参照してください。
サブネット
3 つのサブネットを作成します。
- Web 層
- アプリケーション層
- データ サブネット
ファイアウォール/セキュリティ グループのルール
以下のタブでは、データセンターの各層のファイアウォール ルールについて説明します。AWS 固有のセキュリティ グループのルールについては、このトピックの後半部分を参照してください。
Web 層は、インバウンドの HTTPS 要求を受け付け、その要求をアプリケーション層に代理転送する公開 DMZ サブネットです。この設計では、組織を狙う可能性のあるマルウェアからの防御層を設けます。Web 層は、アプリケーション層やデータ層へのアクセスをブロックします。
トラフィック | タイプ | プロトコル | ポート範囲 | 接続元 |
---|---|---|---|---|
インバウンド | SSH | TCP | 22 | 要塞サブネット (クラウド展開用) |
インバウンド | HTTP | TCP | 80 | インターネット (0.0.0.0/0) |
インバウンド | HTTPS | TCP | 443 | インターネット (0.0.0.0/0) |
アウトバウンド | すべてのトラフィック | すべて | すべて |
アプリケーション サブネットは、Tableau Server を導入する場所です。アプリケーション サブネットには、Tableau アプリケーション サーバー (ノード 1 とノード 2) が含まれます。Tableau アプリケーション サーバーは、データ サーバーに対するユーザー要求を処理し、コア ビジネス ロジックを実行します。
アプリケーション サブネットには、Tableau データ サーバー (ノード 3 とノード 4) も含まれます。
アプリケーション層へのクライアントからのすべてのトラフィックは、Web 層で認証されます。アプリケーション サブネットへの管理アクセスは、要塞ホストを経由して認証され、ルーティングされます。
トラフィック | タイプ | プロトコル | ポート範囲 | 接続元 |
---|---|---|---|---|
インバウンド | SSH | TCP | 22 | 要塞サブネット (クラウド展開用) |
インバウンド | HTTPS | TCP | 443 | Web 層サブネット |
アウトバウンド | すべてのトラフィック | すべて | すべて |
データ サブネットは、外部 PostgreSQL データベース サーバーが存在する場所です。
トラフィック | タイプ | プロトコル | ポート範囲 | 接続元 |
---|---|---|---|---|
インバウンド | SSH | TCP | 22 | 要塞サブネット (クラウド展開用) |
インバウンド | PostgreSQL | TCP | 5432 | アプリケーション層サブネット |
アウトバウンド | すべてのトラフィック | すべて | すべて |
ほとんどのエンタープライズ セキュリティ チームでは、オンプレミスの管理システムからクラウド上に展開されたノードへの直接通信は許可されていません。代わりに、クラウド ノードへのすべての管理 SSH トラフィックは、要塞ホスト (「ジャンプ サーバー」とも呼ばれます) を介してプロキシされます。クラウドへの導入では、参照アーキテクチャのすべてのリソースへの接続に要塞ホスト プロキシを使用することをお勧めします。これは、オンプレミス環境向けのオプションの構成です。
要塞ホストでは管理アクセスの認証を行い、SSH プロトコルのトラフィックのみを許可します。
トラフィック | タイプ | プロトコル | ポート範囲 | 接続元 | 接続先 |
---|---|---|---|---|---|
インバウンド | SSH | TCP | 22 | 管理コンピューターの IP アドレス | |
アウトバウンド | SSH | TCP | 22 | Web 層サブネット | |
アウトバウンド | SSH | TCP | 22 | アプリケーション層サブネット |
例: AWS でサブネットとセキュリティ グループを構成する
このセクションでは、AWS で Tableau Server 参照アーキテクチャを展開するための VPC とネットワーク環境を作成および構成する方法を手順を追って説明します。
以下のスライドは、4 層の参照アーキテクチャを示しています。スライドを進めると、コンポーネント要素がトポロジ マップに階層化されます。
- VPC サブネット トポロジと EC2 インスタンス (1 つの要塞ホスト、2 つのリバース プロキシ サーバー、4 つの Tableau サーバー、および少なくとも 1 つの PostgreSQL サーバー)。
- プロトコルの流れとインターネット接続。すべてのインバウンド トラフィックは、AWS インターネット ゲートウェイ経由で管理されます。インターネットへのトラフィックは、NATを介してルーティングされます。
- アベイラビリティー ゾーン。プロキシ、Tableau Server、PostgreSQL などのホストは、2 つのアベイラビリティー ゾーンに均等に展開されます。
- セキュリティ グループ。4 つのセキュリティ グループ (パブリック、プライベート、データ、要塞) は、各層をプロトコル レベルで保護します。
AWS アベイラビリティーゾーンと高可用性
このガイドに記載されている参照アーキテクチャでは、単一のホストに障害が発生した場合に冗長性を通じて可用性を提供する展開を指定しています。ただし、リファレンス アーキテクチャが 2 つのアベイラビリティー ゾーンにまたがって展開されている AWS の場合、非常にまれなケースでアベイラビリティー ゾーンに障害が発生すると、可用性が低下します。
VPC を構成する
このセクションでは、次の方法について説明します。
- VPC をインストールして構成する
- インターネット接続を構成する
- サブネットを構成する
- セキュリティ グループを作成して構成する
VPC を構成する
このセクションの手順は、"クラシック" VPC エクスペリエンスの UI にマッピングされます。AWS VPC ダッシュボードの左上隅にある [New VPC Experience (新しい VPC エクスペリエンス)] をオフにすると、UI を切り替えてクラシック ビューを表示できます。
VPC ウィザードを実行して、既定のプライベート サブネットとパブリック サブネット、既定のルーティングとネットワーク ACL を作成します。
- VPC を構成する前に、Elastic IP を作成する必要があります。すべての既定を使用して割り当てを作成します。
- [Run VPC wizard (VPC ウィザードの実行)] > "パブリック サブネットとプライベート サブネットを使用した VPC"
- ほとんどのデフォルト設定を受け入れます。ただし、以下を設定する必要があります。
- VPC 名を入力します。
- Elastic IP 割り当て ID を指定します。
- 次の CIDR マスクを指定します。
- パブリック サブネットの IPv4 CIDR は 10.0.1.0/24 です。このサブネットの名前を
Public-a
に変更します。 - プライベート サブネットの IPv4 CIDR は 10.0.30.0/24 です。このサブネットの名前を
Private-a
に変更します。
- パブリック サブネットの IPv4 CIDR は 10.0.1.0/24 です。このサブネットの名前を
- アベイラビリティー ゾーン: どちらのサブネットにも、現在の地域の a オプションを選択します。
注: この例では、所定の AWS データセンター内でアベイラビリティ ゾーンを区別するために a と b を使用しています。AWS では、アベイラビリティー ゾーン名がここで示した例とは異なる場合があります。たとえば、データセンター内に c ゾーンと d ゾーンがアベイラビリティー ゾーンとして含まれる場合もあります。
- [Create VPC (VPC の作成)] をクリックします。
- VPC が作成されたら、
Public-b
、Private-b
、Data
、およびBastion
サブネットを作成します。サブネットを作成するには、[サブネット] > [サブネットの作成] をクリックします。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 です。
- サブネットが作成されたら、Public サブネットと Bastion サブネットのルート テーブルを編集して、関連付けられたインターネット ゲートウェイ (IGW) 用に構成されたルート テーブルを使用します。また、Private サブネットと Data サブネットを編集して、ネットワーク アドレス変換 (NAT) 用に構成されたルート テーブルを使用します。
- IGW または NATで 設定されているルート テーブルを確認するには、AWS ダッシュボードの [ルート テーブル] をクリックします。2 つのルート テーブル リンクのいずれかを選択して、[プロパティ] ページを開きます。[ルート] > [Destination (宛先)] > [0.0.0.0/0] でターゲット値を確認します。ターゲット値はルートのタイプを区別し、文字列
igw-
またはnat-
のいずれかで始まります。 - ルート テーブルを更新するには、[VPC] > [サブネット] > [サブネット名] > [ルート テーブル] > [ルート テーブルの関連付けの編集] で更新します。
- IGW または NATで 設定されているルート テーブルを確認するには、AWS ダッシュボードの [ルート テーブル] をクリックします。2 つのルート テーブル リンクのいずれかを選択して、[プロパティ] ページを開きます。[ルート] > [Destination (宛先)] > [0.0.0.0/0] でターゲット値を確認します。ターゲット値はルートのタイプを区別し、文字列
セキュリティ グループを構成する
VPC ウィザードで作成する単一のセキュリティ グループは使用しません。以下のセキュリティ グループを作成します ([セキュリティ グループ] > [セキュリティ グループの作成])。EC2 ホストは、上のスライド図に示すように、2 つのアベイラビリティー ゾーンにまたがるこれらのグループにインストールされます。
- 新しいセキュリティ グループ Private を作成します。ここに Tableau Server の 4 つのノードをすべてインストールします。インストール プロセスの後の方で、Private のセキュリティ グループは、10.0.30.0/24 サブネットと 10.0.31.0/24 サブネットに関連付けられます。
- 新しいセキュリティ グループの Public を作成します。ここにプロキシ サーバーをインストールします。インストール プロセスの後の方で、Public のセキュリティ グループは、10.0.1.0/24 サブネットと 10.0.2.0/24 サブネットに関連付けられます。
- 新しいセキュリティ グループの Data を作成します。ここに Tableau 外部リポジトリである PostgreSQL をインストールします。インストール プロセスの後の方で、Data のセキュリティ グループは、10.0.50.0/24 (およびオプションで 10.0.51.0/24) サブネットに関連付けられます。
- 新しいセキュリティ グループ Bastion (要塞) を作成します。ここに要塞ホストをインストールします。インストール プロセスの後の方で、要塞セキュリティ グループは、10.0.0.0/24 サブネットに関連付けられます。
インバウンド ルールとアウトバウンド ルールの指定
AWS では、セキュリティ グループはオンプレミス環境のファイアウォールに類似しています。セキュリティ グループの出入りを許可するトラフィックのタイプ (https、http など)、プロトコル (TCP または UDP)、ポートまたはポート範囲 (80、443 など) を指定する必要があります。プロトコルごとに、送信先トラフィックまたは送信元トラフィックも指定する必要があります。
Public セキュリティ グループ ルール
インバウンド ルール | |||
---|---|---|---|
タイプ | プロトコル | ポート範囲 | 接続元 |
HTTP | TCP | 80 | 0.0.0.0/0 |
HTTPS | TCP | 443 | 0.0.0.0/0 |
SSH | TCP | 22 | 要塞セキュリティ グループ |
アウトバウンド ルール | |||
---|---|---|---|
タイプ | プロトコル | ポート範囲 | 接続先 |
すべてのトラフィック | すべて | すべて | 0.0.0.0/0 |
Private セキュリティ グループ ルール
Private セキュリティグ ループには、Public セキュリティ グループからの HTTP トラフィックを許可するインバウンド ルールが含まれています。接続を検証するために、展開プロセス中に HTTP トラフィックのみが許可されます。リバース プロキシの展開と Tableau への SSL の構成が完了したら、HTTP インバウンド ルールを削除することをお勧めします。
インバウンド ルール | |||
---|---|---|---|
タイプ | プロトコル | ポート範囲 | 接続元 |
HTTP | TCP | 80 | Public セキュリティ グループ |
HTTPS | TCP | 443 | Public セキュリティ グループ |
PostgreSQL | TCP | 5432 | Data セキュリティ グループ |
SSH | TCP | 22 | 要塞セキュリティ グループ |
すべてのトラフィック | すべて | すべて | Private セキュリティ グループ |
アウトバウンド ルール | |||
---|---|---|---|
タイプ | プロトコル | ポート範囲 | 接続先 |
すべてのトラフィック | すべて | すべて | 0.0.0.0/0 |
PostgreSQL | TCP | 5432 | Data セキュリティ グループ |
SSH | TCP | 22 | 要塞セキュリティ グループ |
Data セキュリティ グループ ルール
インバウンド ルール | |||
---|---|---|---|
タイプ | プロトコル | ポート範囲 | 接続元 |
PostgreSQL | TCP | 5432 | Private セキュリティ グループ |
SSH | TCP | 22 | 要塞セキュリティ グループ |
アウトバウンド ルール | |||
---|---|---|---|
タイプ | プロトコル | ポート範囲 | 接続先 |
すべてのトラフィック | すべて | すべて | 0.0.0.0/0 |
PostgreSQL | TCP | 5432 | Private セキュリティ グループ |
SSH | TCP | 22 | 要塞セキュリティ グループ |
要塞ホスト セキュリティ グループ ルール
インバウンド ルール | |||
---|---|---|---|
タイプ | プロトコル | ポート範囲 | 接続元 |
SSH | TCP | 22 | AWS へのログインに使用するコンピューター (管理コンピューター) の IP アドレスとネットマスク。 |
SSH | TCP | 22 | Private セキュリティ グループ |
SSH | TCP | 22 | Public セキュリティ グループ |
アウトバウンド ルール | |||
---|---|---|---|
タイプ | プロトコル | ポート範囲 | 接続先 |
SSH | TCP | 22 | AWS へのログインに使用するコンピューター (管理コンピューター) の IP アドレスとネットマスク。 |
SSH | TCP | 22 | Private セキュリティ グループ |
SSH | TCP | 22 | Public セキュリティ グループ |
SSH | TCP | 22 | Data セキュリティ グループ |
HTTPS | TCP | 443 | 0.0.0.0/0 (オプション: 要塞ホストにサポート ソフトウェアをダウンロードするためにインターネットにアクセスする必要がある場合は、このルールを作成します) |
パブリック IP の自動割り当てを有効にする
これにより、プロキシ サーバーと要塞ホストに接続するための IP アドレスが割り当てられます。
パブリック サブネットと要塞サブネットの場合:
- サブネットを選択します
- [アクション] メニューで、[Modify auto-assign IP settings (IP 設定の自動割り当てを変更する)] を選択します。
- [Enable auto-assign public IPv4 addresses (パブリック IPv4 アドレスの自動割り当てを有効にする)] をクリックします。
- [保存] をクリックします。
ロード バランサー
注: AWS にインストールし、このガイドの展開例に従う場合は、パート 5 - Web 層の構成で説明されているように、展開プロセスの後の方で、AWS ロード バランサーをインストールして構成する必要があります。
オンプレミス展開では、ネットワーク管理者と協力してロードバランサーを展開し、参照アーキテクチャの Web 層をサポートします。
- Tableau クライアントから HTTPS 要求を受け入れ、リバース プロキシ サーバーと通信する Web 用アプリケーション ロード バランサー。
- リバース プロキシ:
- 冗長性とクライアント負荷の処理のために、少なくとも 2 台のプロキシ サーバーを使用することをお勧めします。
- ロード バランサーから HTTPS トラフィックを受け取ります。
- Tableau ホストへのスティッキー セッションをサポートします。
- ゲートウェイ プロセスを実行している各 Tableau Server へのラウンド ロビン負荷分散用のプロキシを構成します。
- 外部 IdP からの認証要求を処理します。
- フォワード プロキシ: Tableau Server は、ライセンス認証とマップ機能のためにインターネットへアクセスできる必要があります。フォワード プロキシ環境によっては、Tableau サービス URL のフォワード プロキシの許可リストを構成する必要がある場合があります。「インターネットとの通信」 (Linux(新しいウィンドウでリンクが開く)) を参照してください。
ホスト コンピューターを構成する
推奨される最小ハードウェア
以下の推奨事項は、参照アーキテクチャでテストした実際のデータに基づいています。
アプリケーション サーバー:
- CPU: 8 つの物理コア (16 vCPU)
- RAM: 128 GB (物理コアあたり 16 GB)
- 空きディスク領域: 100 GB
データ サーバー
- CPU: 8 つの物理コア (16 vCPU)
- RAM: 128 GB (物理コアあたり 16 GB)
- 空きディスク領域: 1 TB。Tableau ファイル ストアとして外部ストレージを使用する場合は、適切なディスク容量を計算する必要があります。「外部ファイル ストアを使用して Tableau Server をインストールする (Linux(新しいウィンドウでリンクが開く))」を参照してください。
プロキシ サーバー
- CPU: 2 つの物理コア (4 vCPU)
- RAM: 8 GB (物理コアあたり 4 GB)
- 空きディスク領域: 100 GB
外部リポジトリ データベース
- CPU: 8 つの物理コア (16 vCPU)
- RAM: 128 GB (物理コアあたり 16 GB)
- ディスク容量の要件は、データ負荷とそれがバックアップに与える影響によって異なります。トピック「ディスク容量の要件」 (Linux(新しいウィンドウでリンクが開く)) の「バックアップと復元のプロセス」セクションを参照してください。
ディレクトリ構造
リファレンス アーキテクチャでは、Tableau Server パッケージとデータを既定以外の場所にインストールすることをお勧めします。
- パッケージのインストール先:
/app/tableau_server
: Tableau Server パッケージをインストールする前にこのディレクトリ パスを作成し、インストール時にこのパスを指定します。 - Tableau データのインストール先:
/data/tableau_data
このディレクトリは、Tableau Server をインストールする前に作成しないでください。代わりに、インストール中にパスを指定する必要があります。これにより、Tableau Setup によってパスが適切に作成され、許可されます。
実装の詳細については、「インストール パッケージの実行と TSM の初期化」を参照してください。
例: AWS にホスト コンピューターをインストールして準備する
このセクションでは、Tableau Server 参照アーキテクチャの各サーバー タイプに EC2 ホストをインストールする方法について説明します。
参照アーキテクチャには、次の 8 つのホストが必要です。
- Tableau Server 用の 4 つのインスタンス
- プロキシ サーバー用の 2 つのインスタンス (Apache)
- 要塞ホスト用の 1 つのインスタンス
- 1 つまたは 2 つの EC2PostgreSQL データベース インスタンス
ホスト インスタンスの詳細
以下の詳細に従って、ホスト コンピューターをインストールします。
Tableau Server
- Amazon Linux 2
- インスタンス タイプ: m5a.8xlarge
- セキュリティ グループ ID: Private
- ストレージ: EBS、150 GiB、gp2 ボリューム タイプTableau ファイル ストアとして外部ストレージを使用する場合は、適切なディスク容量を計算する必要があります。「外部ファイル ストアを使用して Tableau Server をインストールする (Linux(新しいウィンドウでリンクが開く))」を参照してください。
- ネットワーク: 各プライベート サブネット (10.0.30.0/24 および 10.0.31.0/24) に 2 つの EC2 ホストをインストールします。
- Tableau ダウンロード ページ(新しいウィンドウでリンクが開く)から、Tableau Server 2021.2 以降の rpm パッケージの最新メンテナンス リリースを各 Tableau ホストにコピーします。
要塞ホスト
- Amazon Linux 2
- インスタンス タイプ: t3.micro
- セキュリティ グループ ID: Bastion
- ストレージ: EBS、50 GiB、gp2 ボリューム タイプ
- ネットワーク: 要塞サブネット 10.0.0.0/24
Tableau Server の独立したゲートウェイ
- Amazon Linux 2
- インスタンス タイプ: t3.xlarge
- セキュリティ グループ ID: Public
- ストレージ: EBS、100 GiB、gp2 ボリューム タイプ
- ネットワーク: 各パブリック サブネット (10.0.1.0/24 および 10.0.2.0/24) に 1 つの EC2 インスタンスをインストールします。
PostgreSQL EC2 ホスト
- Amazon Linux 2
- インスタンス タイプ: r5.4xlarge
- セキュリティ グループ ID: Data
- ストレージ: ディスク容量の要件は、データ量とそれがバックアップに与える影響によって異なります。トピック「ディスク容量の要件」 (Linux(新しいウィンドウでリンクが開く)) の「バックアップと復元のプロセス」セクションを参照してください。
- ネットワーク: Data サブネット 10.0.50.0/24(HA クラスターで PostgreSQL を複製する場合は、2 番目のホストを 10.0.51.0/24 サブネットにインストールします)
検証: VPC 接続
ホスト コンピューターをインストールしたら、ネットワーク構成を検証します。要塞セキュリティ グループのホストから各サブネットのホストに SSH で接続して、ホスト間の接続を検証します。
例: AWS の要塞ホストに接続する
管理コンピューターを ssh-agent 用に設定します。これにより、EC2 インスタンスに秘密キー ファイルを配置せずに AWS のホストに接続できます。
Mac で ssh-agent を設定するには、次のコマンドを実行します。
ssh-add -K myPrivateKey.pem
、または最新の Mac OS の場合はssh-add --apple-use-keychain myPrivateKey.pem
Windows の場合は、「プライベート Amazon VPC で実行されている Linux インスタンスに安全に接続する」(新しいウィンドウでリンクが開く)のトピックを参照してください。
次のコマンドを実行して、要塞ホストに接続します。
ssh -A ec2-user@<public-IP>
VPC 内の他のホストへは、プライベート IP アドレスを使用して要塞ホストから接続できます。次に例を示します。
ssh -A ec2-user@10.0.1.93