Databases in the Cloud?

by Leroy Altman

You’ve probably already heard about “Cloud” technology, where a server can be hosted for you at some remote location.  Did you know that the Cloud has more than just servers?  You can also get a very easy-to-use database.  Amazon — yes, the same ones that sell you books and BBQ grills — has a service called Amazon Web Services (AWS).  And within this service is something they call Relational Database Services (RDS).  This means that you can have a Microsoft SQL database without having to bother with all the hassle of running a database server.

The cool part is that everything is done behind-the-scenes for you.  You simply need to provision a database and Amazon RDS takes care of the rest of the technical details.   You get a database username, a password and a URL to connect to.  With this information your application “sees” and uses it just as if it was a regular Microsoft SQL server.

The beauty of using these remote databases is that a lot of the day-to-day server database administration is handled for you.  For example, you can make a single click in a check box requesting “Multi-AZ” (Multiple Availability Zones), you can make your server fault tolerant.  This simple act has the same effect as building a redundant SQL server cluster, which (speaking from personal experience) is a pretty complicated undertaking.

Database backups are now a simple thing, too.  In the past, you would need to use your SQL database administration skills to create and configure a maintenance job to protect your data in the event of a disaster.   Then you’d have to continuously monitor and maintain these jobs to ensure that backups were happening as expected and transaction logs were being truncated properly.  But now, with a couple of clicks in a setup wizard screen, you can simply and easily take care of all of your database backup needs.  RDS handles the technical details for you… even purging older copies that you no longer need.  Database restores are just as easy, as well.  With just a few clicks in the AWS console you can revert to an earlier database copy if needed.

Your database “server” sizing is flexible, also.  In the past, SQL servers were typically very large and powerful machines purchased to handle your estimated peak user load.  This would leave you with underutilized resources, especially if your initial load estimates were incorrect.  Using Amazon RDS you do not need to purchase a database “machine” up front, instead you can easily start with a small-sized machine and then add more RAM, CPU or disk performance as your business needs require it.  This is done by increasing the “class” of server to something larger and requires just a few minutes of downtime.  Even your data storage disk size can be easily expanded on the fly.

This “pay only for the resources used” model works exceptionally well if you need to an extra database server to do additional database testing.  You would simply provision a new RDS instance, copy a backup of your database using Amazon’s S3 storage “buckets” feature and import it into your new system.  And then simply decommission it when you are done and you stop getting billed for it within the hour.  This model also allows you to test out new things like the brand new Microsoft SQL Server version 2016.

Amazon’s RDS is not just limited to simple administrative tasks.  For those database administrators that have more hands on requirements, RDS lets you do that too.  You would install Microsoft SQL Server Management Studio (SSMS) on another server and then connect to your RDS-based SQL database.  Once that is connected, you can do tasks such as running SQL queries, creating or dropping tables, or even deleting the entire database contents if required.

Amazon has placed a great deal of thought and effort into security so that you can be comfortable putting your information in an Internet-based database.  User access to your data is tightly controlled with permissions.  And by using AWS’s firewalls and private network ranges your database can be completely hidden from the public Internet with access restricted to only your dedicated application or web server.  So just because your data “lives” in the cloud, that does not make it any less secure.

Another great thing about this RDS offering is that Amazon handles all the upgrades to the SQL application in the background and you rarely have to worry about it.  Security patches and other SQL updates are done in a routine and timely fashion, and in most cases these updates will be online and will be transparent to your database.  And in those rare cases where an outage is required, Amazon goes to great lengths to make the outage as small as possible, typically just a few minutes.

Microsoft SQL is not the only Amazon relational database offering, they also provide other databases such as Oracle and the open source MySQL database, including Amazon’s own MySQL implementation called “Aurora”.  While Amazon is currently the biggest player in the  cloud market right now, they are certainly not the only ones.  Microsoft themselves have their own Internet-based database offering called “Azure”.  But that’s a topic for a future technology article.