The cloud is accelerating past terrestrial hosting!
Today, Amazon unveiled some major upgrades to its service: Elastic IP addresses, Availability Zones, and selectable kernels. The first two are particularly important because they not only eliminate one of the remaining deficiencies of the service, but provide better functionality than what is currently available in common hosting services. RightScale supports the new features concurrently with Amazon's launch. Not only that, but we've added the new features to the free developer edition as well, which means that RightScale is hands-down the easiest way to experiment with the new Amazon EC2 features. Here's a quick review of what's available now through RightScale:
Create "Static IPs" on EC2 with Amazon's Elastic IPs
The Elastic IPs provide persistent IP addresses that can be assigned to instances. Many people have been asking us for "static IPs" - this is it. Through the RightScale interface you can allocate a static IP and give it a nickname, say "web server 1." When you launch your web server instance, you can then associate the IP with the instance once you have everything configured and running, and shortly, packets sent to that IP address get routed to the new instance.
If you then launch a fresh instance for an upgrade of your website, you can bring the new instance up separately from your production site, and set up the new version of your site and test it thoroughly. When you're happy with everything, you can reassign the IP address from the old instance to the new one, and within seconds your users will be accessing the new version of the site. (For a more in-depth description, see an earlier blog post.)
Should there be a problem, you can always reassign the IP back to the old instance while you fix the problem. This, by the way, is the power of cloud computing: you don't upgrade your server in place, you grab a new one, and you leave the old one running until you're sure the new one is stable and ready for production.
The Elastic IPs also provide a solution for numerous other situations where a fixed IP address is required. One example is when interfacing with third-party services such as data feeds where it is impractical to change the destination IP address of the feed whenever there is an instance change. Now, using an Elastic IP, the external feed can be configured once and for all. Another example is SMTP (email) traffic, which pretty much requires a static IP address. For inbound SMTP traffic the static IP address ensures that mailers around the world can safely deliver the traffic across instance changes. For outbound SMTP traffic the static IP ensures that spam filters don't discard the email because the IP is listed as dynamic or because of a prior user that sent out spam.
Better Fault Tolerance with Availability Zones
Availability Zones are a terrific new feature that gives you control over the fault tolerance of your server deployment. Each Availability Zone is a data center or a portion of a data center engineered such that the probability that more than one zone fails at a time is extremely small. Basically, if you have two servers in two different zones then they will not go down at the same time, barring a major catastrophe of regional extent. So power going out and generators failing, or a data center fire, or border router screwup will not affect multiple Availability Zones.
Users can use Availability Zones to engineer their deployments for an amazing degree of reliability. The most typical usage we foresee is to place the master database with all the app servers into one zone, and the slave (replica) database in a different zone. Should the primary zone fail, it's straightforward to promote the slave to master and relaunch the app servers in the same zone. (For a more in-depth example, see the earlier blog post.) Of course we will automate that in RightScale so our users don't have to worry about promoting these databases manually.
What's really exciting is that the combination of Elastic IPs and Availability Zones brings cloud computing to a different level. In the above example, when the app servers get relaunched in a new zone, EC2 allows the Elastic IPs that were associated with the app servers to be reassigned from the old servers in the failed zone to the new ones. So now traffic doesn't just get routed to new instances, it actually gets routed to a different data center. From the outside this may seem straightforward, but in reality the degree of engineering that is necessary to support this type of technical feature is staggering. Even if you had servers in multiple co-location facilities it is not easy to make the colos independent of one another. If they are close by physically they may well share regional Internet routes. Or worse, your own basic setup may introduce dependencies, for example at the DNS level, where one colo going down has impact on DNS used by the other colo. Being able to then move IP addresses from one colo to another one without residual dependencies requires sophisticated network engineering. With Amazon and RightScale, it's now just a drop-down menu away.
Support for Multiple Linux Kernels
The selectable kernels feature introduced by Amazon allows users to choose from more than the single Linux kernel that has been available thus far. It's one more step towards making EC2 a more flexible platform and keeping up with the Linux evolution.