Tableau Conference 2015 at Las Vegas [レポート] Climate社とNetflix社 のTableau Server on AWSにおけるデプロイチェックリスト #data15

tableau-conference-2015-logo

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Tableau Conference 2015@Las Vegasのセッション参加レポート:3本目はClimate社とNetflix社の事例紹介エントリです。AWS環境にTableau Serverを導入する上で押さえておいたほうが良いポイントを『チェックリスト』としてまとめたものになります。

tc15-report-tableauserver-deploy-checklist_01

ちなみにセッション紹介文は以下の内容となっています。

Tableau Server on Amazon AWS at The Climate Corporation and Netflix: A Checklist for Deployment

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社は最近ではすっかり有名になった定額制動画配信サービスのあの会社ですね。

Tableau他各種環境について

tc15-report-tableauserver-deploy-checklist_02

  • 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を必要とする、セキュリティグループの権限
    • 最高のパフォーマンスを発揮させるためにサーバ間でのロールの割当てを行なう事が出来る

インスタンスの選択

tc15-report-tableauserver-deploy-checklist_06

インスタンスタイプ

アベイラビリティゾーン(AZ)

  • リージョンとアベイラビリティーゾーン - Amazon Elastic Compute Cloud
  • 全てのサーバを同じAZに配置する事で低レイテンシを実現出来る。(※とは言うものの、AWS側の観点からすると(冗長構成等を考えて)AZは分けるべきと言うのが一般的な考え方となるかと思います。この辺りは状況に応じてメリットデメリットを天秤に掛け、同一AZで良しという判断が下せれば...という感じなのでしょうか。う〜む...)

プレイスメントグループ

ユーザー管理

Tableauでの選択肢

  • Active Directory:容易だがユーザーにパスワード入力が求められる
  • SAMLでのシングルサインオン:より複雑、IDPサービスも必要
  • ローカル認証:容易だが管理面で手間が掛かる

Climate社の場合

  • VPCを会社ネットワークと接続、AD認証を利用

Netflix社の場合

  • SAML認証を利用 - Meechum(PingFederateプラットフォーム上のSSO)

社内にAD環境を持っていない場合はどうする?

アクセス+セキュリティグループの管理について

以下の用途でグループとルールを作成

  • サーバホストへのアクセスを管理(RDP)
  • サーバ間通信
  • サーバからデータソースへのアクセス
  • ユーザーからサーバへのアクセス

推奨構成

  • EC2セキュリティグループ: サーバ間アクセス+RDP管理
  • EC2セキュリティグループ: ユーザーアクセス
  • RDS/Redshiftセキュリティグループ: Tableau Serverアクセス

落とし穴

  • クロスアカウントセキュリティグループはトリッキーな構成に成り得る
  • サーバはパブリッシャーのデータ接続として同じDNS名とポートを利用する
  • 全てのサーバがデータソースへのアクセス権限を持っているかを確認する

AWS ELB(Elastic Load Balancer)

ELBとは

サーバーのアップグレードが容易に

  • 事前に新しいサーバを構築しておける
  • ELB配下の構成から古いサーバを取り除く
  • バックアップの取得
  • 新規メインサーバの複製とリストア
  • 新しいサーバのELBへの追加

デプロイの自動化について

完全自動化は可能か?

  • 100%完全自動化は現状不可能。以下の部分については手動で行わざるを得ない為。
    • ライセンス認証の部分
    • 管理者ユーザーの作成
    • ワーカーサーバの設定及び追加

リストアに必要な時間の削減

落とし穴

古いTableau Serverインスタンスの非アクティベートについて

  • インスタンスをTerminateする前に非アクティベート作業を行なう事。terminateしてからでは遅いです。

EBSボリュームを使う

Cドライブにはインストールしない事

  • Windows OSの諸々が入っているCドライブにインストールしてしまうと後々諸々面倒に。

ヒューマンエラー防止策

  • EC2インスタンス作成時の設定を以下の様にしておくこと。ヒューマンエラーは100%防ぎ切れるものでは無い。
    • Shutdowm Behavior: Shutdown
    • Termination Protection: On

監視+オペレーション

tc15-report-tableauserver-deploy-checklist_12

監視

バックアップ

AWSでの長期間のサーバ稼働

tc15-report-tableauserver-deploy-checklist_13

インスタンスタイプのアップグレード

  • AWSでは数クリックでRAMやCPUの追加が可能(インスタンス停止→インスタンスタイプ変更→インスタンス起動)

ディスクスペースが不足した場合は?

  • ボリュームのスナップショットを取得
  • より大きいボリュームを復元
  • Windowsディスク管理ツールを使ってパーティションを拡張

実験と微調整

まとめ

tc15-report-tableauserver-deploy-checklist_14

  • データソースやユーザーの面から見て、AWSが適しているのかどうかを確認
  • 管理システムを使う
  • セキュリティグループは重要
  • ELBを活用
  • 100%フル自動化は無理だが、処理の効率化はCLI等で実現可能
  • Tableau Serverの監視とバックアップ
  • ひたすら検証、実験実施!

最後に

以上、AWS環境におけるTabelau Server導入のためのチェックリストをまとめたセッションレポートでした。私としてもこれまで導入を行なって来た中で得てきた知識の再確認を出来る所もあったり、新しい発見が出来たポイントもあったりで情報の整理が良い感じで行なえました。これらをベースに今後の構築・運用の為の情報を洗練させて行きたいところですね。こちらからは以上です。