Tableau Server for Linux is now available for beta testing. I subscribed to this program many months and back then I decided that the day when the beta version becomes available I will deploy it on Amazon Web Services (AWS). It is a good exercise to get familiar with the architecture in AWS and also look into configuration of Tableau Server. I want to share my experiences of the installation process.
I have several year’s experience of using Tableau Server as a site administrator for multiple sites in a large organization, but I really haven’t been involved with server administration and the technical side of it. So, installing Tableau Server Beta for Linux on AWS, how difficult can it be?
AWS CloudFormation script
It turned out to be quite straightforward. Tableau provides an AWS CloudFormation script which makes installation of Tableau Server extremely easy for those using AWS. There is a script for a single-node installation and for a cluster install. I decided to go for a single-node installation so I downloaded the standalone JSON file.
Tableau Online help guides through the installation process on AWS via CloudFormation. Prerequisites for deploying Tableau Server on AWS are an AWS account, an EC2 key-pair and a product key for Tableau Server. After setting up my AWS-account and creating a new key-pair I created a new CloudFormation stack by uploading the installation script to AWS.
Specifying details and parameters
Next page contains all the properties and parameters that requires user input. Please look carefully Tableau Online help for further info. I will not go through all the required fields and I will only focus on EC2 instance type, disk volume, and the CIDR address.
This template lets you to choose between 3 different EC2 hardware configurations: m4.2xlarge, m4.4xlarge, m4.10xlarge. I chose the minimum recommended configuration for this trial to keep costs down. Hourly price of EC2 instance with recommended instance type is somewhere between $ 0.4 – $ 2.3 per hour. Check the actual on-demand prices from AWS webpage.
Size for the server volume needs to be defined where 50 GB is a minimum requirement for installation. I tried with 30 GB and the installation failed as you can see later on in this blog post.
Source CIDR for Access lets you specify the CIDR address from which you will connect to the Tableau Server. For security reasons it is recommended to restrict access to IP addresses from only your network. You may also specify 0.0.0.0/0 which lets the instance to be accessed from anywhere which is not secure. This IP address range can be restricted afterwards.
(Optional) If you want to have another instance type, I guess you could edit the JSON-file before you begin creating a CloudFormation stack and add another instance such as memory optimized instance r4.2xlarge into AllowedValues.
Last two steps in creation of CloudFormation stack lets you add some tags and finally review the setup before deploying it.
A great thing about the script is the roll-back property which rolls back the installation if the something goes wrong during the installation. This happened when to me because I had adjusted the disk volume too low (30GB) which caused the installation to fail. CloudFormation stack rolled back the changes and terminated the instance for good.
I made another try and I set the disk volume size to 50 GB. Tableau Server installed within 25 minutes and booted successfully.
Installation script deploys an EC2 instance of your choice into the default Virtual Private Network (VPC) and sets up the Security Group allowing inbound and outbound access for the instance.
After these completing these steps the Tableau Server for Linux was up and running on AWS and the whole process took less than an hour.
Inside AWS after deployment
After the script was executed I took a look how the Tableau Server was deployed to AWS and which changes were made.
Instance with type m4.2xlarge was deployed. It was attached with a volume and a new security group.
A new volume storage size of 50 GB is attached to the EC2 instance. Volume type has been set to io1 which is a provisioned IOPS SSD disk set to support 2000 I/O operations per second. Provisioned SSD is more expensive than general purpose SSD, but provides better performance. Tableau’s CloudFormation script doesn’t allow adjusting these parameters during the installation but the disk volume size and type can be modified after installation.
Networking and Security groups
The security group associated with Tableau Server enables HTTP access via ports 80 and 8850, and SSH access from the network CIDR specified in creation of CloudFormation stack. If CIDR for inbound traffic was specified as 0.0.0.0/0 (all IP addresses), the security group can be edited here to restrict the traffic from your network only.
Play with a penguin is not free
Installation and a few hours play with Tableau Server for Linux on AWS has a price tag of 6$. The EC2 instance m4.2xlarge has a fixed hourly rate of $0.444 whenever the instance is running. The 50 GB provisioned disk with 2000 IOPS is currently costing $0.138 per GB-month and $0.072 per provisioned IOPS-month so it may become bit pricey in a longer run. I’m considering to scale it down to a cheaper general purpose SSD with lower IOPS value. On the other hand I didn’t need to invest in any physical hardware and I can get rid of the allocated resources on AWS anytime I want to.
Tableau Server for Linux is pretty easy and fast to install on AWS. However, it is good to have some basic knowledge about AWS infrastructure such as Virtual Private Clouds and EC2 instances. CloudFormation script from Tableau does all the hard work for those who do not have prior experience from AWS and who haven’t installed of Tableau Server before.
For organizations Tableau Server for Linux means lower cost, better control and also more secure way to run Tableau Server in the cloud. Moving to Linux from Windows based Tableau Server can be done by restoring the server backup to Linux. Tableau Server for Linux is currently supported by CentOS 7, Oracle Linux 7, Red Hat Enterprise (RHEL) 7 and Ubuntu 16.04 LTS distributions. The CloudFormation script installed Tableau Server on CentOS 7.
My first impressions of Tableau Server for Linux are very good. There are only a few datasources that are not currently supported by the Linux version of Tableau Server but otherwise I haven’t yet experienced any other significant differences to the Windows version.