Tableau Conference 2015 at Las Vegas [レポート] Climate社とNetflix社 のTableau Server on AWSにおけるデプロイチェックリスト #data15
Tableau Conference 2015@Las Vegasのセッション参加レポート:3本目はClimate社とNetflix社の事例紹介エントリです。AWS環境にTableau Serverを導入する上で押さえておいたほうが良いポイントを『チェックリスト』としてまとめたものになります。
ちなみにセッション紹介文は以下の内容となっています。
This session will present best practices for architecting and deploying a Tableau Server environment with Amazon AWS. We will provide a detailed list of what to consider, look for, think about, and avoid for stability, connectivity, and performance of Tableau Server.
Climate社とNetflix社について
まずは今回の事例発表者の所属企業の紹介から。Climate社はビッグデータによる気候予測のスタートアップ。Netflix社は最近ではすっかり有名になった定額制動画配信サービスのあの会社ですね。
- Climate Corporation | Data services for yield maximization
- ビッグデータによる気候予測のスタートアップ、Climate Corporationをアグリビジネスの巨人モンサントが11億ドルで買収 | TechCrunch Japan
- Netflix (ネットフリックス) - 大好きな映画やドラマを楽しもう!
Tableau他各種環境について
- Netflix社:
- 利用ユーザー規模:Tableauユーザー800名(大半が米国で他には欧州、アジア)
- 可視化ツール:Tableau、Microstrategy
- データソース:Presto、Hive、Teradata、Redshift
- Tableau Serverスペック:R3.4xlarge/ゲートウェイ:1台、ワーカー:3台構成
- Climate社:
- 利用ユーザー規模:Tableauユーザー150名、米国に5つのオフィス
- 可視化ツール:Tableau、PeriscopeData
- データソース:RDS(PostgreSQL)、Redshift
- Tableau Serverスペック:R3.2xlarge/ゲートウェイ:1台、ワーカー:3台構成
Tableau Server導入に関する基本事項
AWSの環境: EC2-VPC vs EC2 Classic
- EC2-VPC: プライベートクラウドサブネット、会社ネットワークへのトンネリングが可能
- EC2-Classic: フラットなパブリックネットワーク構成
単一サーバ構成 vs クラスタサーバ構成
- 単一サーバ構成
- セットアップが容易
- Active Directoryを必要としない、コアライセンスユーザーに適している
- リソースの競合が問題になることがある
- クラスタサーバ構成
- 構成が複雑化 - Active Directoryを必要とする、セキュリティグループの権限
- 最高のパフォーマンスを発揮させるためにサーバ間でのロールの割当てを行なう事が出来る
インスタンスの選択
インスタンスタイプ
- インスタンスタイプ - Amazon EC2(スケーラブルなクラウド上の仮想サーバー) | アマゾン ウェブ サービス(AWS 日本語)
- TableauはRAMを多く使う
- そのため、実戦ではメモリ最適化のインスタンス(R3シリーズ)を活用したとの事。
アベイラビリティゾーン(AZ)
- リージョンとアベイラビリティーゾーン - Amazon Elastic Compute Cloud
- 全てのサーバを同じAZに配置する事で低レイテンシを実現出来る。(※とは言うものの、AWS側の観点からすると(冗長構成等を考えて)AZは分けるべきと言うのが一般的な考え方となるかと思います。この辺りは状況に応じてメリットデメリットを天秤に掛け、同一AZで良しという判断が下せれば...という感じなのでしょうか。う〜む...)
プレイスメントグループ
- プレイスメントグループ - Amazon Elastic Compute Cloud
- 10Gbps、サーバ間ネットワーキングの低レイテンシを実現(ただし、マスター・ワーカー構成を用いるのであればあまり恩恵には預かれない?)
ユーザー管理
Tableauでの選択肢
- Active Directory:容易だがユーザーにパスワード入力が求められる
- SAMLでのシングルサインオン:より複雑、IDPサービスも必要
- ローカル認証:容易だが管理面で手間が掛かる
Climate社の場合
- VPCを会社ネットワークと接続、AD認証を利用
Netflix社の場合
- SAML認証を利用 - Meechum(PingFederateプラットフォーム上のSSO)
社内にAD環境を持っていない場合はどうする?
- Amazon Directory Serviceがある!
- AWS Directory Service(クラウド上の管理型ディレクトリ) | アマゾン ウェブ サービス (AWS 日本語)
アクセス+セキュリティグループの管理について
以下の用途でグループとルールを作成
- サーバホストへのアクセスを管理(RDP)
- サーバ間通信
- サーバからデータソースへのアクセス
- ユーザーからサーバへのアクセス
推奨構成
- EC2セキュリティグループ: サーバ間アクセス+RDP管理
- EC2セキュリティグループ: ユーザーアクセス
- RDS/Redshiftセキュリティグループ: Tableau Serverアクセス
落とし穴
- クロスアカウントセキュリティグループはトリッキーな構成に成り得る
- サーバはパブリッシャーのデータ接続として同じDNS名とポートを利用する
- 全てのサーバがデータソースへのアクセス権限を持っているかを確認する
AWS ELB(Elastic Load Balancer)
ELBとは
- サーバアクセスに際しての信頼出来るDNS名及びIPを提供するサービス。
- Elastic Load Balancing(クラウドネットワークのロードバランサー) | アマゾン ウェブ サービス(AWS 日本語)
- サーバの入れ替えや更新を容易に
- HA or 複数のゲートウェイサーバ設定に必要
- HA/複数ゲートウェイの更新をいつでも出来るように
- 落とし穴: gateway.public.hostとgateway.public.portの設定オプションに注意
- プロの為のヒント: SSLオフロードの為にELBを使う
サーバーのアップグレードが容易に
- 事前に新しいサーバを構築しておける
- ELB配下の構成から古いサーバを取り除く
- バックアップの取得
- 新規メインサーバの複製とリストア
- 新しいサーバのELBへの追加
デプロイの自動化について
完全自動化は可能か?
- 100%完全自動化は現状不可能。以下の部分については手動で行わざるを得ない為。
- ライセンス認証の部分
- 管理者ユーザーの作成
- ワーカーサーバの設定及び追加
リストアに必要な時間の削減
- AWS CLIの活用: GUIの代わりにAWS CLIを使う
- describe-instances — AWS CLI 1.9.4 Command Reference
- describe-load-balancers — AWS CLI 1.9.4 Command Reference
- 各種ドライバやインストール環境を備えたカスタムAMIを作成
- tabadminコマンドで生成されたバックアップファイルをs3へアップロード
落とし穴
古いTableau Serverインスタンスの非アクティベートについて
- インスタンスをTerminateする前に非アクティベート作業を行なう事。terminateしてからでは遅いです。
EBSボリュームを使う
- エフェメラルなストレージはステートレスなサービスには向いていますが、Tableau Serverには向いていません。
- AWS EC2 Ephemeral Disk(揮発性ディスク)の利用 - Qiita
- AWS(EC2)でEphemeral Disk(揮発性ディスク)を使ってみた | takemikami's note
Cドライブにはインストールしない事
- Windows OSの諸々が入っているCドライブにインストールしてしまうと後々諸々面倒に。
ヒューマンエラー防止策
- EC2インスタンス作成時の設定を以下の様にしておくこと。ヒューマンエラーは100%防ぎ切れるものでは無い。
- Shutdowm Behavior: Shutdown
- Termination Protection: On
監視+オペレーション
監視
- 閾値の設定+Eメールによるアラート
- CPU監視(デフォルト)
- より多くのメトリクス・アラートを得るためのホストOS内でのスクリプトの実行
- Amazon EC2 Linux インスタンスのメモリとディスクのメトリックスのモニタリング - Amazon CloudWatch
- サービスやアプリケーションのダウンによる通知は重要
バックアップ
- tabadminによるバックアップ→S3へのアップロード
- Upload Objects to an Amazon S3 Bucket - AWS Tools for Windows PowerShell
AWSでの長期間のサーバ稼働
インスタンスタイプのアップグレード
- AWSでは数クリックでRAMやCPUの追加が可能(インスタンス停止→インスタンスタイプ変更→インスタンス起動)
ディスクスペースが不足した場合は?
- ボリュームのスナップショットを取得
- より大きいボリュームを復元
- Windowsディスク管理ツールを使ってパーティションを拡張
実験と微調整
- サーバプロセスの割当に関する実験を繰り返す。
- データソースのチューニング:Tuning your Amazon Redshift and Tableau Software Deployment for Better Performance/April 2014(PDF)
まとめ
- データソースやユーザーの面から見て、AWSが適しているのかどうかを確認
- 管理システムを使う
- セキュリティグループは重要
- ELBを活用
- 100%フル自動化は無理だが、処理の効率化はCLI等で実現可能
- Tableau Serverの監視とバックアップ
- ひたすら検証、実験実施!
最後に
以上、AWS環境におけるTabelau Server導入のためのチェックリストをまとめたセッションレポートでした。私としてもこれまで導入を行なって来た中で得てきた知識の再確認を出来る所もあったり、新しい発見が出来たポイントもあったりで情報の整理が良い感じで行なえました。これらをベースに今後の構築・運用の為の情報を洗練させて行きたいところですね。こちらからは以上です。