Cloud computing business customers now have new advantages which can be leveraged against on – premise systems. Companies can now implement additional infrastructure through cloud consoles without lengthy hardware procurement. Large investments of capital for IT projects are no longer a hurdle with cloud-based technology. Database as a Service (DBaaS) is now the important factor for applications in the business community.
With the cloud in mind, it is important to understand the differences between major providers such as Amazon RDS and Microsoft Azure SQL. Both of these offerings can be surprisingly similar and different at the same time. Here is an exploration of what you can expect between the two.
Microsoft Azure SQL is clearly intended for enterprise class business applications of 5 GB or less. There are more details to Azure SQL than targeted customers so what may seem limiting but this is actually more than meets the eye.
Amazon RDS admittedly targets a wider range of business customers. However, the Amazon offering does have its own limitations and drawbacks when all factors are considered.
Microsoft’s cloud-based DBaaS product was designed for the cloud specifically in mind. As such, Azure SQL runs natively as a service on the Microsoft cloud platform and leverages the cloud specifically because of this design.
Amazon RDS does not run natively on the cloud platform and is instead cloud capable. Most applications which were developed in MySQL will likely run without problems in Amazon RDS. But there is a big difference between the two in this respect.
Azure SQL server database instances are not actually individual virtual servers. Since Azure SQL runs as a service natively on the cloud, these database instances are logical containers provisioned and customized for the customer’s needs. This leverages cost and performance on the part of Microsoft and only the customers databases are hosted in these instances. This is based on a multi-tenant hardware architecture which does not allow for specific server level customization. Instead of focusing on hardware, Microsoft’s DBaaS product focuses on cloud performance to fully leverage the intended advantages of cloud computing as previously noted. Microsoft focuses on only charging for what a customer needs, so sharding is advocated through the use of elastic pools and databases are therefore limited to 10 GB so that performance and cost can be achieved.
Azure RDS also works on multi-tenant architecture which is the key element of cloud-based computing. However, RDS uses EC2 instances for its relational database services. This design allows RDS to allocate compute resources to databases while provisioning storage capacity separately. Since RDS charges storage separate from compute, there is a different cost to be factored versus Microsoft Azure SQL. The RDS standard level provides up to 6 TB of storage, and while RDS does not provide automatic resizing, Amazon’s Aurora does scale automatically in 10 GB increments up to a total of 64 TB.
Not only are Microsoft Azure SQL and Amazon RDS different in terms of deployment, they are also different in approaches to performance.
Microsoft Azure SQL includes storage units price, charging for different tiers and performance levels. While services do allow for a database size of 1 TB and up to 2.9 TB total storage elastic pools, it is important to remember that Microsoft advocates the use of sharding with elastic pools in order to achieve performance and cost goals. Since SQL database on Azure is tiered, each level is suited to different workloads and broken down into further different performance levels ranked by Microsoft’s Database Transaction Units (DTU). It is with DTU and elastic pools that Microsoft customers can address performance at cost. With the elastic pools, fluctuations in workload are shared over collective resources for hosted databases and can be spread across a single customer’s databases for maximum utilization that also reduce costs.
Amazon Relational Database Services works on the EC2 concept. Database instances are allocated to compute resources with storage provisioned separately. As mentioned earlier, RDS charges separately for storage and compute so that cost is approached very differently. To achieve improved query performance, Amazon RDS allows for added replicas in its supported read-only horizontal scaling. In this way, performance is achieved. However, in comparison to Microsoft Azure SQL, there are fewer tiers and separate pricing for storage and compute. It is more likely that an Amazon RDS customer may switch to improved database instances and not use the full amount of resources.
Microsoft Azure SQL includes storage in its tiered pricing and performance levels. While it seems limiting that Microsoft allows for a limit of only 10 GB per database, it reduces the likelihood of performance issues from a single bloated database server. For this reason, Azure SQL is highly scalable and very price sensitive. With the latest introduction of elastic pools, Microsoft’s concept of sharing databases means that growth and performance with cost in mind is as highly available as Azure itself.
Amazon RDS, as mentioned previously, charges separately for storage and compute. It is very easy to scale the size of a database on the Amazon platform. Aurora as a database product is easily scalable in automatic increments, making RDS single database growth easy to achieve.
Perhaps the best way to approach making choices between Microsoft Azure SQL and Amazon RDS as cloud-based database platforms is to actually measure performance. Since each platform measures performance differently, it may be important for prospective customers to use free offerings of these products in tandem with third-party performance measurement tools in order to clearly measure and compare corresponding resource performance for identical databases.
Additionally, it is also important to keep in mind what technologies are in use in a particular organization. Amazon is not a software developer, so they offer a wider variety of database engines including Microsoft SQL server. Meanwhile, Microsoft Azure SQL is a specific product from the software developer, so they offer it exclusively as a DBaaS product.
It is reasonable to expect that organizations which already use other database products than Microsoft SQL Server may well find Amazon RDS friendlier to their specific needs. On the other hand, organizations which are already Microsoft houses will find that Azure SQL will suit their needs best. However, it is important to consider how cost and performance are achieved on each platform and whether it suitably meets budgetary goals.