---
schema_version: "1"
id: dc4030177047e87fbe5db031ea5575a548265469b613666bcad725a6f37f9c30
title: 付録 - AWS Deployment Toolbox
collection: tableau
version: current
locale: ja-jp
portal_url: https://docs.salesforce.com/tableau/current/ja-jp/guides/enterprise-deployment/edg_part_app-aws.md
canonical_url: https://help.tableau.com/current/guides/enterprise-deployment/ja-jp/edg_part_app-aws.htm
source_site: help.tableau.com
content_type: documentation
content_hash: 7513f857f5ee4f9a5d999f0d6df6f3067ebb5c038d313be18b771252515f5313
description: AWS deployment toolbox with the TabDeploy4EDG script and Terraform automation examples.
---
[メイン コンテンツに進む](#main-content)

# 付録 - AWS Deployment Toolbox

**注**: Tableau は、企業環境への導入ガイドの更新を終了しました。AWS での Tableau Server の有効な導入モデルとして、ここで説明されているリファレンス アーキテクチャは引き続き推奨されていますが、具体的な構成手順が前回の更新時から変更されている可能性があります。必ず最新の [Tableau Server ヘルプ](https://help.tableau.com/current/server/ja-jp/get_started_server.htm) ドキュメントと照らし合わせて、正確な手順を確認してください。

このトピックには、AWS に展開したときのリファレンス アーキテクチャのツールと代替デプロイ オプションが含まれています。具体的には、このトピックでは、EDG 全体で説明されている AWS 展開の例を自動化する方法について説明します。

## TabDeploy4EDG 自動インストール スクリプト

[TabDeploy4EDG スクリプト](https://help.tableau.com/samples/en-us/edg/tabdeploy4edg.txt)は、「[パート 4 - Tableau Server のインストールと構成](https://help.tableau.com/current/guides/enterprise-deployment/ja-jp/edg_part4.htm)」で説明されている 4 ノードの Tableau 展開の実装を自動化します。このガイドで説明されている AWS の実装例に従うと、TabDeploy4EDG を実行できます。

**要件:** スクリプトを実行するには、「[パート 3 - Tableau Server を企業環境へ導入する準備](https://help.tableau.com/current/guides/enterprise-deployment/ja-jp/edg_part3.htm)」の実装例に従って、AWS 環境を準備して設定する必要があります。

- VPC、サブネット、およびセキュリティグループが、記載通りに設定されている。IP アドレスは、実装例の記載と同じである必要はありません。
- 4 つの EC2 インスタンスで、AWS Linux2 の最新の更新ビルドを実行している。
- PostgreSQL がインストールされ、[PostgreSQL のインストール、構成、および tar バックアップ](https://help.tableau.com/current/guides/enterprise-deployment/ja-jp/edg_part4.htm#Install,)の記載通りに構成されている。
- ステップ 1 の tar バックアップ ファイルは、PostgreSQL がインストールされている EC2 インスタンスにあります。詳しくは、[PostgreSQL ステップ 1 の tar バックアップを取得する](https://help.tableau.com/current/guides/enterprise-deployment/ja-jp/edg_part4.htm#Take)を参照してください。
- Tableau Server 展開のノード 1 を実行する EC2 インスタンスが、PostgreSQL と通信できるように[パート 4 - Tableau Server のインストールと構成](https://help.tableau.com/current/guides/enterprise-deployment/ja-jp/edg_part4.htm#Configur)の記載通りに構成されている。
- 要塞ホストから SSH セッションを使用して各 EC2 インスタンスにログインしました。

スクリプトは、おおよそ 1 時間半から 2 時間かけて、4 つの Tableau サーバーをインストールして構成します。Tableau は、参照アーキテクチャに規定された設定に従って構成されます。スクリプトが実行するアクションは次のとおりです。

- PostgreSQL ホストの tar ファイルへのパスを指定すると、PostgreSQL ホストのステージ 1 バックアップが復元されます。
- すべてのノードで既存の Tableau インストールを消去します。
- すべてのノードで `sudo yum update` を実行します。
- 各ノードに Tableau rpm パッケージをダウンロードしてコピーします。
- 各ノードに依存関係をダウンロードしてインストールします。
- `/app/tableau_server` を作成して、すべてのノードにパッケージをインストールします。
- ローカル ID ストアを使用してノード 1 をインストールし、PostgreSQL を使用して外部リポジトリを構成します。
- ノード 2 ～ノード 4 の bootstrap のインストールと初期設定を行います。
- TabDeploy4EDG の bootstrap ファイルと構成ファイルを削除します。
- リファレンス アーキテクチャの仕様に従って、Tableau クラスター全体でサービスを構成します。
- インストールを検証し、各ノードのステータスを返します。

**スクリプトのダウンロードと要塞ホストへのコピー**

1. [TabDeploy4EDG サンプル ページ](https://help.tableau.com/samples/en-us/edg/tabdeploy4edg.txt)からスクリプトをコピーし、`TabDeploy4EDG` というファイルにコードを貼り付けます。
2. 要塞ホストとして稼働している EC2 ホストのホーム ディレクトリにファイルを保存します。
3. 次のコマンドを実行して、ファイルのモードを実行可能に変更します。
    
     sudo chmod +x TabDeploy4EDG

**TabDeploy4EDG の実行**

TabDeploy4EDG は、要塞ホストで実行する必要があります。スクリプトは、[例: AWS の要塞ホストに接続する](https://help.tableau.com/current/guides/enterprise-deployment/ja-jp/edg_part3.htm#Example:)に記載のとおり、ssh フォワード エージェントのコンテキストで実行していることを前提に記述されています。ssh フォワード エージェントのコンテキストで実行していない場合は、インストール プロセスの間ずっとパスワードの入力を求められます。

1. 登録ファイル (`registration.json`) を作成、編集、保存します。ファイルは適切にフォーマットされた JSON ファイルである必要があります。次のテンプレートをコピーしてカスタマイズします。
    
    {
    	"zip" : "97403",
    	"country" : "USA",
    	"city" : "Springfield",
    	"last\_name" : "Simpson",
    	"industry" : "Energy",
    	"eula" : "yes",
    	"title" : "Safety Inspection Engineer",
    	"phone" : "5558675309",
    	"company" : "Example",
    	"state" : "OR",
    	"department" : "Engineering",
    	"first\_name" : "Homer",
    	"email" : "homer@example.com"
    }
2. 次のコマンドを実行して、テンプレート構成ファイルを生成します。
    
    ./TabDeploy4EDG -g edg.config
3. 編集する構成ファイルを開きます。
    
    sudo nano edg.config              
    
    少なくとも、各 EC2 ホストの IP アドレス、登録ファイルへのファイル パス、および有効なライセンス キーを追加する必要があります。
4. 構成ファイルの編集が完了したら、保存して閉じます。
5. TabDeploy4EDG を実行するには、次のコマンドを実行します。
    
    ./TabDeploy4EDG -f edg.config

## 例: Terraform を使用して AWS インフラストラクチャの展開を自動化する

このセクションでは、Terraform を構成して実行し、AWS に EDG リファレンス アーキテクチャをデプロイする方法について説明します。ここに示す Terraform 構成の例では、「[パート 3 - Tableau Server を企業環境へ導入する準備](https://help.tableau.com/current/guides/enterprise-deployment/ja-jp/edg_part3.htm)」で説明されているサブネット、セキュリティ グループ、EC2 インスタンスを使用して AWS VPC をデプロイしています。

Terraform のサンプル テンプレートは、Tableau サンプル Web サイト ([https://help.tableau.com/samples/en-us/edg/edg-terraform.zip](https://help.tableau.com/samples/en-us/edg/edg-terraform.zip)) で入手できます。これらのテンプレートは、組織に合わせて構成およびカスタマイズする必要があります。このセクションで提供する構成コンテンツでは、デプロイするためにカスタマイズする必要がある最小限のテンプレート変更について説明します。

### 目標

ここで提供される Terraform テンプレートとコンテンツは、開発テスト環境で EDG を迅速にデプロイできるようにする作業サンプルとして使用することを意図しています。

Terraform 展開の例をテストして文書化することには最善を尽くしていますが、Terraform を使用して本番環境で EDG をデプロイおよび維持するには、この例の範囲を超える Terraform の専門知識が必要です。Tableau は、ここに記載されている Terraform ソリューションの例をサポートしていません。

### 目的とする状態

このセクションの手順に従って、「[パート 3 - Tableau Server を企業環境へ導入する準備](https://help.tableau.com/current/guides/enterprise-deployment/ja-jp/edg_part3.htm)」で指定されている VPC と機能的に同等の VPC を AWS に設定します。

![Tableau Server の AWS アーキテクチャ図。](/tableau/current/ja-jp/guides/enterprise-deployment/ja-jp/Img/edg-vpc-terraform.png)

このセクションの Terraform サンプル テンプレートとサポート コンテンツ:

- 上記のように、Elastic IP アドレス、2 つのアベイラビリティー ゾーン、サブネット組織を使って VPC を作成します (IP アドレスは異なります)。
- Bastion、Public、Private、および Data セキュリティ グループを作成します。
- セキュリティ グループに大部分の入力ルールと出力ルールを設定します。Terraform の実行後に、セキュリティ グループを編集する必要があります。
- 次の EC2 ホスト (各ホストが AWS Linux2 を実行) を作成します: bastion、proxy 1、proxy 2、Tableau node 1、Tableau node 2、Tableau node 3、Tableau node 4
- PostgreSQL の EC2 ホストは作成されません。Data セキュリティ グループに EC2 を手動で作成してから、「[PostgreSQL のインストール、構成、および tar バックアップ](https://help.tableau.com/current/guides/enterprise-deployment/ja-jp/edg_part4.htm#Install,)」の説明に従って PostgreSQL をインストールして構成する必要があります。

### 要件

- AWS アカウント - VPC を作成できる AWS アカウントにアクセスできる必要があります。
- Windows コンピューターから Terraform を実行している場合は、AWS CLI をインストールする必要があります。
- AWS アカウントで使用可能な Elastic IP アドレス。
- AWS Route 53 に登録されているドメイン。Terraform は、Route 53 に DNS ゾーンと、関連する SSL 証明書を作成します。したがって、Terraform が実行されるプロファイルには、Route 53 の適切なパーミッションも必要です。

### はじめる前に

- この手順のコマンド ラインの例は、Apple OS を実行するターミナル用です。Windows で Terraform を実行している場合は、必要に応じて、ファイル パスを使用してコマンドを調整する必要がある場合があります。
- Terraform プロジェクトは、多くのテキスト構成ファイル (.tf ファイル拡張子) で構成されています。これらのファイルをカスタマイズして Terraform を構成します。堅牢なテキスト エディターがない場合は、Atom または Text++ をインストールしてください。
- Terraform プロジェクトを他のユーザーと共有する場合は、変更管理のためにプロジェクトを Git に保存することをお勧めします。

### ステップ 1 - 環境の準備

#### A. Terraform をダウンロードしてインストールする

[https://www.terraform.io/downloads](https://www.terraform.io/downloads)

#### B. 秘密キーと公開キーのペアを生成する

これは、AWS とその結果の VPC 環境にアクセスするために使用するキーです。Terraform を実行するときに、公開キーを含めます。

Terminal を開き、次のコマンドを実行します。

1. Create a private key. For example, `my-key.pem`:
    
    openssl genrsa -out my-key.pem 1024
2. 公開キーを作成します。Terraform では、このキー形式は使用されません。この手順の後半で、このキーを ssh キーに変換します。
    
    openssl rsa -in my-key.pem -pubout > my-key.pub
3. 秘密キーにパーミッションを設定します。
    
    sudo chmod 0600 my-key.pem
    
    Windows でパーミッションを設定するには、次の手順を実行します。
    
    - Windows エクスプローラーでファイルを見つけて右クリックし、\[プロパティ\] を選択します。\[セキュリティ\] タブに移動し、\[詳細\] をクリックします。
    - 所有者を自分に変更し、継承を無効にして、すべてのパーミッションを削除します。自分自身に \[Full control (フル コントロール)\] を付与し、\[保存\] をクリックします。ファイルを読み取り専用としてマークします。
4. ssh 公開キーを作成します。これは、プロセスの後半で Terraform にコピーするキーです。
    
    ssh-keygen -y -f my-key.pem >my-key-ssh.pub

#### C. プロジェクトをダウンロードして state ディレクトリを追加する

1. [EDG Terraform プロジェクト](https://help.tableau.com/samples/en-us/edg/edg-terraform.zip)をダウンロードして解凍し、ローカル コンピューターに保存します。ダウンロードを解凍すると、最上位のディレクトリである edg-terraform と一連のサブディレクトリが作成されます。
2. 最上位の `edg-terraform` ディレクトリのピアとして `state` というディレクトリを作成します。

### ステップ 2 - Terraform テンプレートのカスタマイズ

AWS および EDG 環境に合わせて Terraform テンプレートをカスタマイズする必要があります。ここでの例は、ほとんどの組織が行う必要がある最小限のテンプレート カスタマイズを提供します。特定の環境では、他のカスタマイズが必要になる可能性があります。

このセクションはテンプレート名別に構成されています。

「_ステップ 3 - Terraform の実行_」に進む前に、すべての変更を保存してください。

#### versions.tf

There are three instances of `versions.tf` files where the `required_version` field must match the version of terraform.exe you're using. Check the version of terraform (`terraform.exe -version`) and update each of the following instances:

- `edg-terraform\versions.tf`
- `edg-terraform\modules\proxy\versions.tf`
- `edg-terraform\modules\tableau_instance\versions.tf`

#### key-pair.tf

1. ステップ 1.B で生成した公開キーを開き、キーをコピーします。
    
     less my-key-ssh.pub
    
    Windows: 公開キーのコンテンツをコピーします。
2. 公開キーの文字列を public\_key 引数にコピーします。例は次のとおりです。
    
    resource "aws\_key\_pair" "tableau" {
    key\_name = "my-key"
    public\_key = "ssh-rsa AAAAB3NzaC1yc2EAAAADAQABAAAAgQ (truncated example) dZVHambOCw=="

Ensure that the `key_name` value is unique in the datacenter or `terraform apply` will fail.

#### locals.tf

Update `user.owner` to your name or alias. The value you enter here will be used for the "Name" tag in AWS on the resources that Terraform creates.

#### providers.tf

1. 組織の要件に従ってタグを追加します。例は次のとおりです。
    
    default\_tags {
      tags = {
          
       "Application" = "tableau",
       "Creator" = "alias@example.com",
       "DeptCode" = "8675309",
       "Description" = "EDG",
       "Environment" = "test",
       "Group" = "itcloud@example.com"
      }
    }
2. If using `provider`, comment out the `assume_role` lines:
    
    /\* assume\_role {
    role\_arn     = "arn:aws:iam::310946706895:role/terraform-backend"
    session\_name = "terraform"
    }\*/

#### elb.tf

Under `'resource "aws_lb" "tableau" {'` choose a unique value to use for `name` and `tags.Name`.

If another AWS load balancer has the same name in the datacenter, then `terraform apply` will fail.

Add `idle_timeout`:

resource "aws\_lb" "tableau" {
name                       = "edg-again-alb"
load\_balancer\_type         = "application"
subnets                    = \[for subnet in aws\_subnet.public : subnet.id\]
security\_groups            = \[aws\_security\_group.public.id\]
drop\_invalid\_header\_fields = true
idle\_timeout               = 400
tags = {
Name = "edg-again-alb"
}
			}

#### variables.tf

ルート ドメイン名を更新します。この名前は、Route 53 に登録したドメインと一致する必要があります。

variable "root\_domain\_name" {
 default = "example.com"
 }

デフォルトでは、サブドメイン `tableau` が VPC DNS ドメイン名に指定されています。これを変更するには、`subdomain` を更新します。

variable "subdomain" {
 default = "tableau"
}

#### modules/tableau\_instance/ec2.tf

There are two ec2.tf files in the project. This customization is for the Tableau instance of the ec2.tf in the directory: `modules/tableau_instance/ec2.tf`.

- 必要に応じて、blob タグを追加します。
    
    tags = { 
     "Name" : var.ec2\_name,
     "user.owner" = "ALIAS",
     "Application" = "tableau",
     "Creator" = "ALIAS@example.com",
     "DeptCode" = "8675309",
     "Description" = "EDG",
     "Environment" = "test",
     "Group" = "itcloud@example.com"
     }
    }
- 必要に応じて、オプションで、ストレージを更新して、データ要件を処理します。
    
    ルート ボリューム:
    
    root\_block\_device {
     volume\_size = 100
     volume\_type = "gp3"
    }
    
    アプリケーション ボリューム:
    
    resource "aws\_ebs\_volume" "tableau" {
     availability\_zone = data.aws\_subnet.tableau.availability\_zone
     size              = 500
     type              = "gp3"
    }

### ステップ 3 - Terraform の実行

#### A. Terraform を初期化する

Terminal で、`edg-terraform` ディレクトリに変更し、次のコマンドを実行します。

terraform init

初期化が成功した場合は、次のステップに進みます。初期化が失敗した場合は、Terraform 出力の指示に従います。

#### B. Terraform を計画する

同じディレクトリから、次の plan コマンドを実行します。

terraform plan

このコマンドは複数回実行できます。必要に応じて何度でも実行して、エラーを修正します。このコマンドがエラーなしで実行されたら、次のステップに進みます。

#### C. Terraform を適用する

同じディレクトリから、次の apply コマンドを実行します。

terraform apply

Terraform will prompt you to verify deployment, type `Yes`.

#### オプション: Terraform を破棄する

destroy コマンドを実行すると、VPC 全体を破棄できます。

terraform destroy

destroy コマンドは、作成した VPC のみを破棄します。AWS の一部のオブジェクト (セキュリティ グループやサブネットなど) を手動で変更した場合、`destroy` コマンドは失敗します。失敗/ハングしている destroy の操作を終了するには、「`Control + C`」と入力します。次に、VPC を手動でクリーンアップして、Terraform が最初に VPC を作成したときの状態にする必要があります。その後、`destroy` コマンドを実行することができます。

### ステップ 4 - bastion に接続する

すべてのコマンド ライン接続は、TCP 22 (SSH プロトコル) の bastion ホストを介して行われます。

1. AWS で、Bastion セキュリティ グループ (**\[AWS\]** > **\[セキュリティ グループ\]** > **\[Bastion SG\]** > **\[Edit inbound rules (インバウンド ルールの編集)\]**) に移動してインバウンド ルールを作成し、ターミナル コマンドを実行する IP アドレスまたはサブネット マスクからの SSH (TCP 22) 接続を許可するルールを作成します。
    
    オプション: 展開中に Private グループと Public グループの EC2 インスタンス間でファイルのコピーを許可すると役立つ場合があります。インバウンド SSH ルールを作成します。
    
    - Private: Public からの SSH を許可するインバウンド ルールを作成します
    - Public: Private と Public からの SSH を許可するインバウンド ルールを作成します。
2. ステップ 1.B で作成した pem キーを使用して、bastion ホストに接続します。
    
    **Mac ターミナルの場合:**
    
    pem キーが保存されているディレクトリから次のコマンドを実行します。
    
    ssh-add —apple-use-keychain <keyName>.pem
    
    If you get a warning about private key being accessible by others, then run this command: `chmod 600 <keyName.pem>` and then run the `ssh-add` command again.
    
    Connect to the bastion host with this command: `ssh -A ec2-user@IPaddress`
    
    たとえば、`ssh -A ec2-user@3.15.12.112`。
    
    **PuTTY と Pageant を使用する Windows の場合:**
    
    1. pem キーから ppk を作成するには、PuTTY Key Generator を使用します。ステップ 1.B で作成した pem キーを読み込みます。キーがインポートされたら、**\[Save private key (秘密キーを保存)\]** をクリックします。これにより、ppk ファイルが作成されます。
    2. PuTTY で構成を開き、次の変更を加えます。
        
        - \[セッション\] > \[ホスト名\]: bastion ホストの IP アドレスを追加します。
        - \[セッション\] > \[ポート\]: 22
        - \[接続\] > \[データ\] > \[Auto-login username (自動ログイン ユーザー名)\]: ec2-user
        - \[接続\] > \[SSH\] > \[認証\] > \[エージェントの転送を許可する\]
        - \[接続\] > \[SSH\] > \[認証\] > \[For private key (秘密キー用)\] で、\[参照\] をクリックして、作成した .ppk ファイルを選択します。
    3. Pageant をインストールし、アプリケーションに ppk を読み込みます。
    
    ### ステップ 5 - PostgreSQL のインストール
    
    Terraform テンプレートは、外部リポジトリとして使用するために PostgreSQL をインストールしません。ただし、関連するセキュリティ グループとサブネットは作成されます。PostgreSQL を実行している EC2 インスタンスに外部リポジトリをインストールする場合は、「[パート 3 - Tableau Server を企業環境へ導入する準備](https://help.tableau.com/current/guides/enterprise-deployment/ja-jp/edg_part3.htm)」説明に従って、EC2 インスタンスをデプロイする必要があります。
    
    次に、「[パート 4 - Tableau Server のインストールと構成](https://help.tableau.com/current/guides/enterprise-deployment/ja-jp/edg_part4.htm)」説明に従って、PostgreSQL をインストールして構成し、tar バックアップを作成します。
    
    ### ステップ 6 - (オプション) DeployTab4EDG の実行
    
    TabDeploy4EDG スクリプトによって、パート 4 で説明されている 4 ノード Tableau 展開の実装が自動化されます。「[TabDeploy4EDG 自動インストール スクリプト](#EDGSetup)」を参照してください。