Editor’s note: Many thanks to the Azure Web Sites product team for contributing to and reviewing the content in this post.
Azure Traffic Manager (ATM) is a DNS-based service for managing traffic to Azure services, and it’s recently been made available to Web Sites users. You can use ATM to:
In this post, I’ll walk you through how you can configure ATM to work with Web Sites.
In order to use ATM with Web Sites, you will need to have two or more sites and each of them must be running in a different region. You can only add one website per region to ATM, so this requirement is important.
In the screenshot below, you can see that I’ve created two sites, one in East US and one in Japan West. Both of these sites are running in Standard mode. (You must run your sites in Standard mode or Basic mode in order to use ATM with Web Sites.)
ATM will route traffic based on a profile that you create. You can create a ATM profile from the Azure portal. ATM is available as a node on the left side of the portal.
In the screenshot below, I am creating a new Traffic Manager profile. I have chosen “cheshire” as my DNS prefix and you can see that my ATM URL will be cheshire.trafficmanager.net.
I’ve selected Performance for my load balancing method. I can change the load balancing after I’ve created my ATM profile in case my needs change after I create the profile. (For details on the different load balancing methods, see Load Balancing Methods later in this blog post.)
Once you’ve created your ATM profile, you’ll want to add your endpoints. You can do that by clicking on the ATM profile and then clicking the Endpoints link at the top of the portal. As you can see in the screenshot below, I’ve selected Web Site as the service type and then checked each of the websites I want included in my ATM profile.
It’s important to note that your endpoints can be a mix of websites and cloud services. Using this method, you can have your application seamlessly transition from Web Sites to a Web Role or vice versa.
If you click the Configure link for your ATM profile in the portal, you can configure the settings for the ATM profile. You can change settings such as the DNS time to live and the load balancing method. You can also specify the protocol, port and path that you want the ATM profile to use when monitoring your endpoint for availability.
One important note at this point. ATM will use the path in the Monitoring Settings section to check the endpoints you configured. It performs that check once every 30 seconds, and only an HTTP 200 status is considered healthy. Therefore, if your application is designed in a way that causes a non-200 response to the root of the site (e.g. an ASP.NET forms authentication site that might return a 302 redirect to the login page), you’ll want to configure a path and file name for your ATM profile that points to an unprotected file so that a 200 response is returned.
You now have a ATM profile that points to your sites running on Azure Web Sites. If you browse to the ATM URL (cheshire.trafficmanager.net in my case), you will hit your Azure Web Sites site. The specific site that your request is routed to depends on the load balancing method that you have configured for your ATM profile.
Web Sites knows how to route the ATM URL to your site because it adds your ATM URL to the custom domains for your site automatically. In the screenshot below, you can see that my ATM URL is listed as a custom domain in my Azure Web Sites site. This was added automatically when I added the site as an endpoint in my ATM profile.
You can see your ATM profile in action using any tool that does a DNS lookup. In my test, I have configured ATM so that users will be automatically directed to the website with the best performance. I can use nslookup to see how that works. Below is a DNS lookup from a client that is in the United States. Notice that the yellow text shows that ATM returned a DNS location of my website located in the East US data center.
Here’s the same DNS lookup, but this time, it’s on a VM that’s running in the Southeast Asia Azure data center. Notice that the yellow text shows that a client in Asia is directed to the site that’s running in the Japan West region.
This test illustrates the DNS-based nature of ATM.
You’ll likely want to use a custom domain name for your websites. This is quite easy to do when using ATM. You will first need to create a www CNAME entry at your domain registrar that points to your ATM URL. You’ll then simply add your custom domain name to the Azure Web Sites site.
In the screenshot below, you can see that I’ve created a www CNAME record at my domain registrar that points to my ATM URL, cheshire.trafficmanager.net.
Note: Your subdomain may not be “www”. In that case, create a CNAME record for the subdomain you want to use. For example, you might want to use blog.mycustomdomain.com. In that case, you’d create a “blog” CNAME record that points to your ATM URL.
Once this change propagates, it will result in a 404 error page until I add my domain name to all of the sites that are configured as endpoints in ATM. I can use the Manage Domains dialog accessible from the Configure page for my site to do that. Notice here that I’ve added my custom domain to my site.
If you’re already familiar with the process used for adding a custom domain to a site in Azure Web Sites, it’s important to understand that the typical steps aren’t relevant when configuring a custom domain for use with ATM. You do not have to (and should not) perform any steps other than adding the domain name as I have in the screenshot above.
Note: ATM is CNAME based and doesn’t support A records. Therefore, you can’t use a naked domain (mydomain.com) with ATM. It requires that you set up a CNAME record.
As I said before, you can change the load balancing method your ATM profile uses whenever you choose. Here are the options that are available on the Configure page in the portal for your WATM profile.
Kevin Williamson, a senior escalation engineer at Microsoft, has posted a couple of blog posts specific to ATM that may help you if you run into problems.
Windows Azure Traffic Manager Degraded Status
Windows Azure Traffic Manager Performance Impact
Traffic Manager is a feature that Web Sites customers have been looking forward to for quite some time. I hope this post helps you to take advantage of this powerful new functionality. If you have any questions, please comment!