Have you considered moving computer workloads to the cloud? You probably have. In the studies we’ve seen, over 90% of companies are now using cloud computing services.1 If you are considering moving your infrastructure to Amazon Web Service (AWS), or Azure, or some other cloud computing service, there are a few things you should know before taking the plunge. We’ll look at these potential pitfalls and give you the information you’ll need to make an informed decision.
Moving to Azure: A Case Study
Recently, a customer decided to move their databases from a managed IT provider to Microsoft’s Azure. They had a large, home-grown CRM-style database to move, plus several more databases that we helped manage for their email marketing purposes. They carefully studied the Azure website to determine which package would meet their needs, and how the cost compared to that of their current provider. They concluded it would be cheaper and more reliable to switch to Azure. However, things didn’t go as planned.
The first question everyone asks is how much will it cost, but that’s difficult to estimate. Even careful scrutiny of the configuration pricing using Azure or AWS won’t necessarily answer this question. When you buy a server from Dell or others, many factors determine the performance, but the cost is relatively upfront. The speed and number of cores determines the base speed and how much RAM can have a significant impact. In the case of a database server, the speed and size of the storage system is critical. There are other factors but these are the main considerations. It’s a relatively straightforward process.
Compare that with the purchase of a cloud database. For Azure, you start by determining if you want a managed instance, an Elastic Pool, or a single database. Go down the route of a managed instance, and you choose from Windows Virtual Machines, SQL Database Managed Instance, or a SQL Server virtual machine. The Elastic Pool is closest to owning your own server that hosts multiple databases and that pricing path has you choose between the vCore (virtual core) and the Database Transaction Unit (DTU) model. Choosing the DTU model has you then select your elastic Database Transaction Units (eDTUs) per pool, which determines the per-hour pricing. But what is an elastic Database Transaction Unit, and how many units do you need for a viable database? Microsoft defines a DTU as “…a blended measure of CPU, memory, and data I/O and transaction log I/O in a ratio determined by an OLTP benchmark workload designed to be typical of real-world OLTP workloads,” but they provide little information on how these factors are “blended” or the specifications of the OLTP numbers used. Microsoft does offer a DTU calculator, but it involves running either a Command Line Utility or a PowerShell script to capture CPU and IOPS at the server level and create a CSV file, which is then uploaded to the Azure website.
It’s also tricky to verify that the configuration you’ve chosen will actually work. The customer initially picked a mix of a single vCore and the other databases in an Elastic Pool. However, they learned later that this setup does not allow SQL jobs to run or cross-database joins, things that their current database allowed and were fundamental to their design. There were also resource limits that Azure imposed that caught them by surprise. An estimated nine-hour overnight transfer of the data ended up taking thirty hours because of Azure-imposed resource limits.
Azure vs. AWS
Although Microsoft’s Azure cloud offering is growing in popularity, Amazon’s AWS is still the market leader. How would you estimate the costs for their system? To us, AWS pricing seems more straightforward than Microsoft’s. You still get these cryptic descriptions like db.m5.xlarge and db.r5.8xlarge that you must individually look up, but when you do, the abbreviation stands for a computer with a certain number of cores running at a specific speed, and an amount of RAM. Much more like what you get when buying your own computer. You must also estimate costs for data transfers and database and backup storage, which can be hard to determine.
The customer ran into several issues in attempting to migrate their databases to Azure that further increased their costs, but once they worked through those technical issues the migration was performed overnight. However, when they brought their systems back online the next day, they found the performance was unacceptably slow. They rolled back to their existing managed provider and looked over the website pricing options again. With their increased knowledge of the requirements, they recalculated the monthly pricing. Now they estimated a figure that was twelve times their initial cost!
Needless to say, this was unacceptable, so they’ve stayed with their current managed provider. But how could the price be so far off? We looked over the options they had initially selected. In our opinion, the eDTUs for the Azure DTU model was a bit low, but not unreasonably so. It’s easy to see how someone performing a diligent and thoughtful analysis of the pricing could come up with this price.
If you’re considering moving your infrastructure to the cloud, you need to be aware that the benefits don’t always outweigh the costs. Goolara’s Symphonie email marketing solution can use a database hosted by a cloud provider, or with AWS, the entire system can be installed on their computers. If you are considering a cloud provider for your database or entire email marketing system, contact us, and we’ll be happy to help you estimate the costs.
1. According to Flexera’s 2020 State of the Cloud Report.
© Goolara, LLC, 2020. Unauthorized use and/or duplication of this material without express and written permission from this site’s author and/or owner is strictly prohibited. Excerpts and links may be used, provided that full and clear credit is given to Goolara, LLC and the Goolara Blog with appropriate and specific directions (i.e., links) to the original content.