---
schema_version: "1"
id: 593c2d44a9c79fdb73587fc1ad7b1f2c65f7a640431ca18bf944e3b5878f4ec2
title: Self-Deploy Tableau Server on AWS in a Distributed Environment
collection: tableau
version: current
locale: en-us
portal_url: https://docs.salesforce.com/tableau/current/en-us/server/ts_aws_multiple_server.md
canonical_url: https://help.tableau.com/current/server/en-us/ts_aws_multiple_server.htm
source_site: help.tableau.com
content_type: documentation
content_hash: ca131fd401b29b393a62bb124527a276d225a03a91014e0846b9611871976911
description: Deployments on public clouds continue to be supported but the content for third-party public cloud deployments is no longer updated
---
[Skip to main content](#main-content)

# Self-Deploy Tableau Server on AWS in a Distributed Environment

## This is archived content

Deployments on public clouds continue to be supported but the content for third-party public cloud deployments is no longer updated.

For the latest Tableau Server deployment content, see the [Deploy](https://help.tableau.com/current/server/en-us/install.htm) section of Tableau Server help.

For those customers who have access, we recommend Tableau Cloud. For more details, see:

- [Tableau Cloud Manual Migration Guide](https://help.tableau.com/current/guides/migration/en-us/emg_intro.htm)
- [Tableau Cloud Trial for Admin](https://help.tableau.com/current/server-linux/en-us/install.htm)
- [Tableau Cloud: Get Started for Admin](https://www.tableau.com/learn/get-started/online-admin)

## Introduction

You can run Tableau Server on two virtual machines (VMs) in a distributed environment, also known as a cluster. However, if you want to run Tableau Server in a highly available (HA) distributed environment, you need to launch three or more Amazon EC2 instances of the same type and capacity to your Amazon Virtual Private Cloud (VPC) and configure them as additional nodes.

The following scenario assumes that you have three Amazon EC2 instances with Tableau Server installed on each instance. One instance is configured as the initial node, and the other two instances are configured as additional nodes.

The following steps show how to install and deploy Tableau Server on a cluster of three Amazon EC2 instances in a highly available and scalable configuration.

## Step 1: Create a Virtual Private Cloud (VPC)

The following steps assume that you have an Amazon VPC with at least six subnets (three public and three private) in different Availability Zones, as shown below. Be sure to use static IP addresses when setting up your IP addresses. For information about how to create a VPC with public and private subnets, see [Scenario 2: VPC with Public and Private Subnets](http://docs.aws.amazon.com/AmazonVPC/latest/UserGuide/VPC_Scenario2.html) in the _Amazon Virtual Private Cloud User Guide_ at the AWS website.

![Diagram of a virtual private cloud with three availability zones.](/tableau/current/en-us/server/en-us/Img/ts_aws_three_az.png)

Launch one EC2 instance into each of the three subnets in your VPC for use as Remote Desktop gateways.

For more information about how to launch and connect to a Windows instance, see [Getting Started with Amazon EC2 Windows Instances](http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/EC2Win_GetStarted.html) in the _Amazon EC2 User Guide for Windows Instances_ at the AWS website.

## (Optional) Step 2: Create an AWS Directory Service for the VPC

Follow the steps in the [Create a Simple AD Directory](https://docs.aws.amazon.com/directoryservice/latest/admin-guide/how_to_create_simple_ad.html) section, in the _AWS Directory Service Administration Guide_ at the AWS website, to create a fully-managed Samba-based directory in AWS. When you create a directory with Microsoft AD, the AWS Directory Service creates two directory servers and DNS servers. The directory servers are created in different subnets in your Amazon VPC for redundancy, so that your directory remains accessible even if a failure occurs.

Use the two private subnets available within your Amazon VPC to create the Microsoft AD so that you can run Tableau Server across Availability Zones.

## Step 3: Deploy Three Amazon EC2 Instances

Deploy three Amazon EC2 instances across three Availability Zones, as shown in the following figure. You’ll install Tableau Server on the first node as the initial server and install Tableau Server on the remaining two nodes as additional servers. All of the instances should be of the same type and capacity.

These Amazon EC2 instances can be auto-joined to the Simple AD domain created in step 2 either via the console or by following the steps in [Joining a Windows Instance to an AWS Directory Service Domain](http://docs.aws.amazon.com/AWSEC2/latest/WindowsGuide/ec2-join-aws-domain.html) in the _Amazon EC2 User Guide for Windows Instances_ at the AWS website.

![Diagram of a multi-zone architecture on AWS.](/tableau/current/en-us/server/en-us/Img/ts_aws_three_az_primary_worker_691x603.png)

After you have launched the EC2 instances, connect to them from one of the Remote Desktop Gateway (RDGW) instances by using the credentials that you decrypted for the local administrator account.

## Step 4: Install and Configure Tableau Server

You’ll install Tableau Server on the Amazon EC2 instances you launched in [Self-Deploy Tableau Server on AWS in a Distributed Environment](#Step3) and configure the instances as an initial server and the rest as additional servers. For more information about installing and configuring Tableau Server on an initial server and additional servers, see [Install Tableau Server on Additional Nodes](https://help.tableau.com/current/server/en-us/install_additional_nodes.htm).

**Note:** When adding additional nodes in Amazon Web Services (AWS), it may be necessary to edit the Windows hosts file to add an entry for each of the additional nodes. This is because DNS cannot resolve Elastic Compute Cloud (EC2) instance names.

To edit the Windows host file:

1. Run Notepad as an administrator.
2. Open the `C:\Windows\system32\drivers\etc\hosts` file.
3. Add an entry in the hosts file for each of the nodes. Each entry should include the IP address of the node followed by the domain name.
4. Save the file.

## Step 5: Create a Load Balancer for the Tableau Server Cluster

Follow the steps outlined in [Getting Started with Elastic Load Balancing](http://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/load-balancer-getting-started.html) in the _Elastic Load Balancing User Guide_ at the AWS website to launch a load balancer within your VPC.

1. In [Step 1: Select a Load Balancer Type](http://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/load-balancer-getting-started.html#select-load-balancer-type), if you want the load balancer to be publicly accessible, select the two public subnets. Otherwise, select the **Create an internal load balancer** check box and choose the two private subnets.
    
    If you choose to expose the load balancer with a public endpoint, make sure that you configure Elastic Load Balancing with SSL, as explained in [Create a Classic Load Balancer with an HTTPS Listener](http://docs.aws.amazon.com/elasticloadbalancing/latest/classic/elb-create-https-ssl-load-balancer.html) in the _Elastic Load Balancing Classic Load Balancer Guide_ at the AWS website.
2. In [Step 2: Configure Your Load Balancer and Listener](http://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/load-balancer-getting-started.html#configure-load-balancer) of the instructions, in the _Elastic Load Balancing User Guide_ at the AWS website, ensure that your security group is configured to allow access on port 80 or 443 only, with the source limited to hosts or ranges of hosts that will access Tableau Server.
3. In [Step 4: Configure Your Target Group](http://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/load-balancer-getting-started.html#configure-target-group), you can specify the ping path as /.
4. In [Step 5: Register Targets with Your Target Group](http://docs.aws.amazon.com/elasticloadbalancing/latest/userguide/load-balancer-getting-started.html#add-targets), select the Tableau Server instances and ensure that **Enable CrossZone Load Balancing** is selected so that the load balancer can load-balance the traffic across the instances in multiple Availability Zones.
5. Update Tableau Server to use the load balancer. For more information, see [Add a Load Balancer](https://help.tableau.com/current/server/en-us/distrib_lb.htm) in the Tableau Server Help.

Alternatively, you can configure Tableau Server to work with a load balancer by performing the following steps.

1. Create a subnet for your load balancer that has a CIDR block with a /27 bitmask, for 32 IP addresses.
    
    **Note:** The IP addresses provided by Elastic Load Balancing are dynamic, and Tableau Server needs a list of static IP addresses for this configuration. To make this work, we’re creating a subnet with the smallest possible CIDR range so that the IP addresses the load balancer has are limited to a finite set.
    
    For the next steps we’ll use the tsm command line interface, which is installed with Tableau Server by default. You can use tsm to perform administrative tasks from the command line on Tableau Server. For a general overview, see [tsm Command Line Reference](https://help.tableau.com/current/server/en-us/tsm.htm) in the Tableau Server Help.
2. In the Tableau Server bin directory, enter the following command, where name is the URL that will be used to reach Tableau Server through the load balancer:
    
    `tsm configuration set gateway.public.host "name"`
3. Enter the following command, where server1, server2, and so on are the IP addresses for the given CIDR range of subnets for Elastic Load Balancing:
    
    `tsm configuration set gateway.trusted "server1,server2,..,server30"`
4. Apply the changes:
    
    `tsm apply-pending-changes`
    
    If the pending changes require a server restart, the `pending-changes apply` command will display a prompt to let you know a restart will occur. This prompt displays even if the server is stopped, but in that case there is no restart. You can suppress the prompt using the `--ignore-prompt` option, but this does not change the restart behavior. If the changes do not require a restart, the changes are applied without a prompt. For more information, see [tsm pending-changes apply](https://help.tableau.com/current/server/en-us/cli_pending-changes.htm#pending-changes-apply).
5. Start the server so the changes can take effect.
    
    `tsm start`