Server CA – 準備 (20%) 【Tableau】

この記事は約13分で読めます。
sponsored link

UX

UI

サイト上部のクイック検索ではサイト全体が対象となりますが、ページ右部のフィルター検索ではページ単位のフィルターになります。

ナビゲーション

トポロジ

クライアント -> Tableau Server

通信は標準で HTTP になっているため、すべての通信をSSL化して HTTPS にする必要があります。

ゲートウェイプロキシサーバーでインターネットから Tabelau Server へアクセスできるようにしましょう。

※ SSL化の手順:Tableau Server にSSL証明証をインストール → tsm でSSL適用 → Server 再起動

Tableau Server -> 外部

接続 接続方法
DB ネイティブ接続、汎用ODBCドライバー
インターネット フォワードプロキシ
SMTPサーバー TLS で暗号化
(メールの送受信には SMTPサーバー構築後にイベント通知の設定が必要)

外部の認証情報を保存して Tableau Server で使う場合、その情報は Server 内部で暗号化されます。

バージョン

[最新ver]:https://www.tableau.com/ja-jp/support/server-upgrade

[リリースノート]:https://www.tableau.com/ja-jp/support/releases/server

ハードウェア最小要件

概念実証 実稼働環境
4コア / 8 V CPU 8コア / 16 V CPU
16GB以上のメモリ 32GB以上のメモリ
15GB以上の空きディスク 50GB以上の空きディスク

すべての技術仕様書 (OS, ブラウザ, 仮想環境など)

ソフトウェア要件

ウイルス対策

ウイルス対策ソフトウェアは Tableau Server の挙動に干渉する可能性があります。

対処法の1つとして「Tabeau Serverが使用されていないときに該当ディレクトリをスキャンする」という方法があります。

ポート

ポート 使用用途
80 ゲートウェイ
443 SSL
8850 TSM
8060 PostgreSQL データベース
8061 PostgreSQL バックアップ検証
8000-9000 Tableauプロセスの動的マッピング
27000-27009 ライセンスサービス

TSM, Tableau Server はいずれも TCP ポートが必要なので、上の3つ (80, 443, 8850) は変えてはいけません。

ポート範囲をカスタムする場合、その範囲が狭すぎると使用可能なポートを見つけられないことがあります。

動的ポートマッピングを無効にすると、各ポートをすべて手動で割り当てなければいけないので推奨されていません。

手動で割り当てる場合インストールと同時に行う方が良いです。インストール後では各ノードの設定後に毎回 Serverを再起動しなければならないので手間がかかってしまいます。

専用サーバー

専用サーバーの目的は「パフォーマンス, セキュリティ, 運用性を高める」ことです。

パフォーマンス

サーバーのリソースを最大限使うことで、高速で安定した処理が実現できます。

セキュリティ

一般的にセキュリティを高めるには、サーバーアプリケーション (WEB, メール, DNS, etc.) をできるだけ隔離することが望ましいです。セキュリティリスクを減らすには他のサーバーソフトウェアを削除し、Tableau Serverが攻撃されないようにしましょう。

運用性

既に何らかのサービスが入っているサーバーに Tableau Server をインストールすると、そのサービスがポート80を使っている可能性があり、その場合手動で変更しなければならないものが増えるので運用に手間がかかります。

クラウドで稼働させる

メリット

クラウドに Tableau Server を設置する場合「コスト・稼働時間・安全性」の面でオンプレミスより高い効果を期待できます。
 (Tableau Online もクラウドに含まれます)

デメリット

インターネット回線の影響を受ける可能性(e.g. 混んでてアクセスしにくい)があり、セキュリティやメンテナンスにおいて自社でカスタムできません。

ライセンス発行

ライセンスタイプ

ライセンス できること
Viewer ワークブックの表示/操作, コメント, エクスポート, サマリデータのDL, (自分用)サブスク作成,
データドリブンアラートの受信(作成不可), Tableau Mobileへのアクセス
Explorer 全てのデータのDL, サブスク/データドリブンアラート作成, WEB編集/作成, Ask Data,
ユーザー/コンテンツの管理・認証 + Viewerでできること
Creator Tableauの全機能(新規データの用意, Desktop, Prepなど)

各ライセンスで利用できる機能一覧

サイトロールの割り当て

ライセンス 最大サイトロール
Viewer Viewer
Explorer サイト管理者Explorer, Explorer(パブリッシュ可能), Explorer
Creator サーバー管理者, サイト管理者Creator, Crator

ユーザーが複数サイトに属する場合、利用している最大のライセンスが消費されます。
(e.g. サイトAでCreator, サイトBでViewerのときはCreatorライセンスが消費)

管理者は常にそのライセンスレベルに適用できる全ての機能をもちます。

サーバープロセス

Tableau Serverプロセス

Tableau help(英語)の画像を意訳。上図の青で示されているのがサーバープロセス。

プロセス 目的 注意 同時インストール
アプリケーションサーバー
(vizpotal)
WEBアプリ, REST API, 参照と検索 データエンジン,
インタラクティブなコンテナサービス
Ask Data Ask Data データサーバ実行中の全ノードで自動的に実行
バックグラウンダー
(backgrounder)
抽出更新, サブスク, 今すぐ実行,
tabcmdのサーバータスク
単一スレッド。並列処理では
インスタンス追加, ノード拡張を行う。
インスタンス数の変更では再起動不要
データエンジン,
インタラクティブでないコンテナサービス
キャッシュサーバー
(cacheserver)
サーバクラスタ全体の
クエリキャッシュ
単一スレッド。
並列処理ではインスタンスを追加。
 –
クラスタコントローラ
(clustercontroller)
コンポーネントの監視,
障害検知, フェールオーバー
各ノードに必要。手動インストール。  –
 データエンジン データ抽出, クエリ処理 内部ファイルストア,
データサーバ,
Vizpotal,
VizQLサーバー,
バックグラウンダー
データサーバー
(dataserver)
データソースへの接続 データエンジン
データソースプロパティ
(tdsservice)
クライアントサービス
(Ask Data等)のメタデータ
初期ノードに追加。
Vizpotalノードに入れるとパフォーマンスUP
 –
Elastic Server
(elasticserver)
Ask Dataのインデックス クラスタの複数ノードで実行。
プロセス数は奇数が推奨。
 –
ファイルストア
(filestore)
データエンジンノード全体で
抽出を自動コピー
ローカルで実行するか、
SAN/NASストレージで実行
データエンジン
ゲートウェイ
(gateway)
WEBサーバからの要求を処理  Vizpotal, VizQLのノードで必要  –
内部データソースプロパティ
(tdsnativeservice)
データソースプロパティと通信  データソースプロパティの
各ノードで自動構成
 –
メッセージングサービス
(activemqserver)
マイクロサービスの通信  各ノードで自動インストール。
分散環境ではノードを移動できる。
 –
メトリクスサービス
(metrics)
メトリクスデータの読み書き  初期ノードに自動インストール。
各ノードへの追加が推奨。
 –
リポジトリ
(pgsql)
Serverの主なデータベース
(ほぼ全てのメタデータを保存)
 1クラスタにつき最大2インスタンス
(最低3ノード必要)
 –
SAMLサービス ServerとSAML IdP間のプロキシ 各ノードに自動でインストール
(手動では構成できない)
 –
検索と参照
(searchserver)
コンテンツメタデータの
検索/フィルター/取得/表示
–   –
Prep Conductor
(flowprocessor)
フローの更新を自動化,
Tableau Catalogへ取込み
バックグラウンダのノードで自動有効化,
Data Management Add-on不要。 
 –
Prepフロー作成
(floweditor)
ブラウザでPrepフロー実行  データエンジン,
Tableau Prepフローサービス
Prepフローサービス
(flowqueryservice)
Prepフロー作成で
データソースのクエリを実行
Prepフロー作成のノードで自動有効化  –
VizQLサーバー
(vizqlserer)
ビューのレンダリング, クエリ計算  再起動せずにインスタンス数を変更 データエンジン

Tableau のアーキテクチャーは、オンプレ, クラウド, データセンターなど柔軟に設置することが可能です。

マイクロサービスコンテナープロセスは Vizpotal, バックグラウンダ と一緒に追加されます。

Tableau Serverメンテナンスプロセスには「データベースメンテナンス, バックアップ/復元, サイトのインポート/エクスポート」の3つがあり、これらはジョブを実行しない限り stopped のステータスです。

Tableau Serverをマルチノードで大規模に展開する場合「Prep Conductor用」「バックグラウンダー用」で専用ノードを追加しましょう。(i.e. すべてのライセンスノードを追加したノードへ移行)

TSMプロセス

TSMプロセスは、Tableau Serverが停止しても実行し続けます。

プロセス 目的 注意
管理エージェント 構成, トポロジーの変更がないかを監視し、
古いものを削除して新サービス(構成)を展開
各ノードに自動インストール(手動では構成できない)
管理コントローラ TSMへの要求を処理。構成/トポロジの変更,
プロセス全体のフローを調整。
REST APIのHTTPSとしても機能。
最初のノードに自動インストール。
(障害時には別ノードに移動させ、手動で構成)
クライアントファイルサービス
(clientfileservice)
複数ノードのクラスタで共有ファイルを管理
(認証の証明証, キー, ファイルなど)
最初のノードに自動インストール(他のインスタンスは手動で構成)
各ノードでの構成が推奨。
WEB UIでは表示されず、出力には「tsm status -v」を使う。
インスタンスの表示/設定には「tsm topology」を使う。
調整サービス 唯一の真実として参照される  最初のノードに自動インストール(他のインスタンスは手動で構成)
サービスマネージャー サービスマネージャー  すべてのノードに自動インストール手動では構成できない)
ライセンスマネージャー ライセンス周りを扱う 最初のノードに自動インストール(基本的に1つで良く、障害時には手動で構成)

インストール直後のプロセス数

名称 プロセス数
VizQL サーバー コア数を4で割ったもの。(Max4)
バックグラウンダー 8コア以上の場合、2に設定。
キャッシュサーバー 8コア以上の場合、2に設定。
データサーバー 8コア以上の場合、2に設定。
その他 1に設定。

※ 初期ノードはコア数を4で割った数。

プロセス間のワークフロー

Tableau Publicの公式Vizでフィルターを切り替えて確認しましょう。

分散環境と高可用性環境(HA)におけるプロセス

分散環境 (マルチノード)

分散環境の目的は「マシンのパワーを上げ、かつ安全性を高めること」で、複数マシンの分散ノード上にサーバープロセスを展開します。

[抽出用] 最初のノードではバックグラウンダー以外のプロセスをインストール。追加ノードでは以下をインストール。

Gateway → Search & Browse → バックグラウンダー → Cluster Controller → Data Engine → Non-Interactive Microservice Container → Admin Agent → Service Manager

[フロー用] 最初のノードでは全てのプロセスをインストール。追加ノードでは以下をインストール。

Gateway → Search & Browse → バックグラウンダー(フロー専用)Prep Conductor →  Cluster Controller → Data Engine → Non-Interactive Microservice Container → Admin Agent → Service Manager

高可用性 (HA)

HAの目的は「単一障害点をなくしシステムダウンタイムを最小限にすること」で、3つ以上のノードと主要プロセスの複数インスタンスが異なるマシンに組み込まれます。

外部ロードバランサ →「ほぼ全てのプロセスが揃ったノード×3」(詳しくはこちら)

ロードバランサーの目的は「複数ノードのゲートウェイで処理を分散させ、障害時に処理を別サーバーで引き継がせること」です。

データソース

データベースドライバー

Server での接続でデータベースドライバーが必要な場合、各ユーザーの環境ではなく、サーバー上にのみドライバーをインストールするようにしましょう。

Serverクラスタでドライバーをインストールする場合は、最初のノードにインストールします。

※ 複数ノードでは「Vizportal, VizQLサーバー, バックグラウンダー, データサーバー」の全てにドライバーをインストールします。

ファイル / リレーショナル / キューブ

[ファイル]:情報が記録されたもの全般。(csv, json, textとか)

[リレーショナル データベース]:行と列の形式でデータが格納されたもの。(excel, AWSとか)

[キューブ(多次元) データソース]:パススルー関数をサポートしていないので、Tableau Desktopでしか使えません。

抽出 vs. ライブ

[抽出]:元データのスナップショットで、通常はライブよりも処理が速いです。ただ抽出の更新はプロセッサに負荷がかかるため、サーバーのパフォーマンス低下の原因となることがあります。

[ライブ]:データベース/参照元に直接クエリを発行したものです。最新のデータにアクセスする際や、機密データを扱う際に向いています。サーバー上にキャッシュが残ることがあるため、真に最新のデータをみたい場合はキャッシュの更新頻度を高めましょう。

抽出とライブでは「どちらがパフォーマンスが良いか」ということは一概には言えないため、ユーザーはパフォーマンスを測定し自分で判断しなければなりません。

データソースをパブリッシュする利点

1. 組織内にデータが乱立しなくなります。(作業の効率化, ユーザーの混乱を防ぐ)

2. 他の人が整備した最新のデータを手軽に使えます。

3. 個別のワークブック毎にデータソースを更新する手間が省けます。

インフラストラクチャネットワーク

ネットワーク遅延が起こる場合、Tableau Server に近いゲートウェイやデータソースを確認しましょう。

Tableau では静的IPアドレスが推奨されています。動的IPアドレスだと接続のたびにIPアドレスが変わるので、外部からアクセスできなくなるからです。