Amazon SQL Server in the Cloud
Over the last year or so, I’ve had several opportunities to get my hands dirty with Microsoft’s SQL Server cloud offerings, including taking a Train-the-Trainer class with Dandy Weyn. Now working with DB Best, I realized I needed to broaden my horizons a bit, so I was grateful that I had a chance this week to attend an online webinar called Introduction to Microsoft SQL Server in AWS.
Amazon Web Services (AWS) provides two different kinds of services for using SQL Server in the cloud, very compatible to Microsoft’s Azure offerings, which provide Microsoft Azure Virtual Machines and Azure SQL Database.
The differences between the kinds of services have to do with how much control you want to have or how much of the underlying maintenance you want to have responsibility for. The service types are frequently referred to as Infrastructure as a Service (IAAS) and Platform as a Service (PAAS). I’ll show up my favorite illustration of the difference between IAAS and PAAS, which also includes SAAS, and the traditional on-premises computing. However, instead of basing the distinction on SQL Server, it bases it on another of my favorite topics: pizza! The awesome graphic below comes from Albert Barron at IBM. He introduced it here.
On the one end, shown on the left, on-premises pizza requires you be responsible for everything, from all the ingredients to the eating utensils. On the other end, at the right is SAAS pizza, or dining out, with which a vendor takes care of everything for you, including the table. But there are two choices in the middle, analogous to IAAS and PAAS. We don’t get everything provided, but it’s more than nothing. For pizza, we can order a pizza to be delivered, with which we have to provide the table most likely the utensils and plates. (I know, some places will deliver paper plates and plastic forks, and some places will also let you order drinks with your pizza.) Finally, we could order a bake-at-home pizza and we’ll need to provide the oven and fuel to cook the pizza, in addition to the table and utensils.
So the difference between IAAS and PAAS for SQL Server on AWS is how much we have to do, and how much Amazon does for us. The IAAS offering, using Elastic Cloud Compute (EC2), basically provides a virtual machine onto which we can install SQL Server just like we would onto our own on-premises machine. EC2 provides the storage, the compute power and operating system, but we provide SQL Server. (Actually, you can provision an EC2 machine with SQL Server already installed, to save you time. But it’s your SQL Server, and can be upgraded, or removed, just like you could do with a SQL Server instance you installed yourself.) We’re responsible for all of SQL Server’s patching, configuration and maintenance, as well as backups and monitoring. If we choose EC2 with just Windows Server installed, then we will need to do the installation of SQL Server.
If we choose the other alternative, Relational Database Service (RDS), we get SQL Server preinstalled and preconfigured. Backups and some of the monitoring are taken care of as well. Of course, that’s both good news and bad news. There’s less work we have to do, but there is some functionality that is missing.
Obviously, I’m glossing over many of the details, but I wanted to give you the general idea. For a complete comparison, take a look at this whitepaper from Amazon. Although it doesn’t refer to the latest versions of SQL Server, it is very informative. The best thing is the last few pages, which contain a big chart of the differences between SQL Server RDS and SQL Server on Amazon EC2. This chart allows you to see exactly what is provided by AWS and what is not.
I’m looking forward to getting some hands-on experience with Amazon RDS and EC2, and figuring out how they compare to the Microsoft Azure offerings.