Server – 準備 (20%)

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

UX

UI

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

ナビゲーション

トポロジ

クライアント -> Tableau Server

・通信は標準でHTTPになっているため、すべての通信をSSL化してHTTPSにする。

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

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

Tableau Server -> 外部

・DBとの接続では、ネイティブ or 汎用ODBCドライバーを使う。

・ネットへの接続では、フォワードプロキシを使う。

・SMTPサーバーとの接続では、TLSで暗号化する。

(メールの送受信を行うには、SMTPサーバーを構築→イベント通知の設定が必要)

・外部の認証情報を保存した場合、Tableau 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の挙動に干渉する可能性がある。

解決策:Tabeau Serverが使用されていないときに該当ディレクトリをスキャンする。

ポート

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

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

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

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

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

専用サーバー

目的:パフォーマンス, セキュリティ, 運用性を高めるため。

◆パフォーマンス

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

◆セキュリティ

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

◆運用性

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

クラウドで稼働させる

◆メリット

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

◆デメリット

・インターネット回線の影響を受ける(混んでてアクセスしにくいなど)
・セキュリティやメンテナンスにおいて自社でカスタムできない。

ライセンス発行

ライセンスタイプ

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

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

サイトロールの割り当て

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

・ユーザーが複数サイトに属する場合、利用している最大のライセンスが消費される。
(サイト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用」「バックグラウンダー用」で専用ノードを追加する。(すべてのライセンスノードを追加したノードへ移行させる)

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)

目的:単一障害点をなくし、システムダウンタイムを最小限にする。

・3つ以上のノードと主要プロセスの複数インスタンスが異なるマシンに組み込まれる。

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

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

データソース

データベースドライバー

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

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

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

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

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

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

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

抽出 vs ライブ

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

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

・抽出とライブではどちらがパフォーマンスが良いか、ということは一概には言えない(場合による)ので、ユーザーはパフォーマンスを測定し、自分で判断しなければならない。

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

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

・他の人が整備した最新のデータを手軽に使える。

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

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

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

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