Alteryx Server in the Cloud
Deploying your infrastructure into the Cloud, of whatever provider you want, gives you a lot of flexibility in the resources you apply and what you can achieve. It allows for simple configuration changes depending on who you want to have access.
The challenge is that if you are not careful in your configuration, you can expose your servers and data creating a significant problem. One way to manage this exposure issue is to apply a load balancer to your instance, which is great but Alteryx hasn’t documented this process very well.
Why have a load balancer?
When you start deploying your servers in the cloud, by default they don’t have public IP addresses assigned to them. Additionally, trying to access an Alteryx server by the host name or an IP address, is not a good experience. So to solve this issue there are two options (both using a custom domain), direct a DNS A record directly to the server and assign a public IP address (this might result in additional costs for the IP address), or use a load balancer and direct it at the instance rather than an IP address (if you think there are better options please let us know in the comments)
Using a load balancer in cloud environments is much more flexible and robust. Because you are using an Instance name for the load balancer (rather than IP) then changing the IP doesn’t matter. It also allows you put the server in a private subnet and manage access to the server host.
It also gives you different options for upgrading your server, for example rather than upgrading in place, you can create a new, upgraded instance migrate the Mongo Database (or direct the server to the self-hosted Mongo) then redirect users when the server is up and ready. So you now have a near zero downtime option.
Configuring the Alteryx Server for a Load Balancer
While there is no automated command or Alteryx Server Settings option to configure the Alteryx for an external load balancer the process is relatively simple. It does require making a manual edit to the RuntimeSettings.xml file and Alteryx recommends not manually editing this file, so you should always make a copy before making edits. That said here we go.
Editing the RuntimeSettings.xml
First up you just need to find the location for RuntimeSettings.xml file, by default it is located:
Once you have found this file, we want to look for the Gallery Section of the xml. This is were all the configurations for gallery are found (Base URL, authentication etc).
Next the base URL should be set to the hostname of your server (e.g. ALTWINSERV) or the FDQN. Remember that Alteryx needs the path to be included in the base URL (usually /gallery).
The next bit is what we need to add. We need to add a node called <CanonicalBaseAddress>. The canonical base address needs to be set to whatever the alias of the load balancer is, so that ends up being the URL you want to access (alteryx.yourdomain.com/gallery).
More Complex Configurations
This works well when you’re using the built in authentication and not bothering with SSL. However, if you have got past the stage of having more than one user, you really should configure SSL and possibly change the authentication method. I cover these options in a more detailed post over on my personal blog. If you want more information on that please head on over.