In my travels and talks about global load balancing with potential customers, I have frequently heard requests to narrow down where traffic is sent to, either to a specific country or set of countries. The reasons vary quite a bit: language-specific sites, products and services offered only to certain locales, security concerns and a multitude of other possible applications.
The good news today is that our top of the line engineers and operations staff listened and we are currently in beta for a new DynECT Managed DNS feature called Geo Traffic Management Service. Here’s a primer on how it works currently and how it will work when ‘beta’ is removed in 2012.
How It Works
At its base, the service allows you to set up as many groups of countries (a group being one country or more) as you want and associate a set of records with this country group. Once you have that set up, you can associate the groups in Geo Traffic Management with any fully qualified domain name (fqdn) that you wish. Traffic going to that fqdn will be routed at the DNS level to the locations your corresponding country group maps to.
Of course, if you are reading one of my blogs and you follow me on Twitter (if not, what are you waiting for?), you probably already guessed that like all other features available in DynECT Managed DNS, it’s fully configurable via our API. Here is a small sample script which will show you how to control it through the API
The example is written in Python (using a great DynECT utility library written by DynECT/Python expert Cole Tuininga) and is written such that all the parameters needed are passed in through the command line. The basic walk through is when called, the script takes in all the parameters that would be needed to set up the service from scratch.
If you read the script, you will see that if the service already exists it will update the current service, this would not need all the parameters but for this simple sample, we always take them in as parameters. The parameters are the zone and fqdn, the region is the name of the group of countries you want to update, the IP address is what you want to add as an A record to this region and the list of countries is what you wish to be in the region.
The countries are all based on the ISO-3166 two letter abbreviations and both the service and each region you set up must be named uniquely. The code for the script is commented inline and the README gives a quick how to use of the script. Note that if anything between beta and the full release, the scripts will be updated and this post will still be relevant…even if you’re reading it a year from now.