Friday, September 25, 2015
We are running a number of Simple DNS Plus instances in two locations (Europe and California).
Since May 2014 we have been using Microsoft Azure virtual machines for this, and generally we have been very happy (also using Azure web-sites, blob storage, SQL database, and other services).
However running a DNS server requires a static (fixed) public IP address. Changing this IP address requires updating DNS host records, re-configuration of primary / secondary synchronization, updating zone glue with the domain name registrar / TLD, and downtime (if you don't know ahead of time).
Unfortunately it turns out that under certain circumstances, an Azure VM will have to be completely shut down ("de-commissioned" - not just "stopped") and then re-started - which assigns a new public IP address to the VM.
In defense of Microsoft, it is possible to get "reserved IP addresses" for Azure VMs - which in theory should solve this problem. However to do so, you need to install some PowerShell kit and write a bunch of cryptic command lines. And apparently you cannot assign such an IP address to an existing VM, you have to create a new VM for this - also through some cryptic command line.
Sorry Microsoft - not good enough!
Luckily I have been using Amazon AWS before and know how to setup VMs (EC2) there. So I was able to get up and running very quickly.
Amazon's "elastic IP" concept is just right. You simply reserve a public IP address (elastic IP) and can then freely assign / re-assign this to any VM within the same data-center - all through the web UI.