Choosing the right database in the cloud

Problem Background

You build a new application in the cloud, and you want to select proper database for your application. There are many choices for database deployment. Today we will discuss tips to choose the right database for your cloud environment. Let's get started!

What are the Issues?

When choosing the database in the cloud, you will have a lot of option such as self-managed database in the cloud or full managed database in the cloud. Although you already have a good benefit when implement a cloud such as scalability, operational simplicity (sharding, backup, recovery, updates), and cost efficiency when implement in the cloud. However, design consideration will become the main issues in the cloud.

The Tips

Tips 1 – Leveraging the On-Premises database to the Virtual Machine

When I use this:

  • You have on-premises database that hosted on a VM. Doing this will make you easy to lift-and-shift
  • You have legacy database that not compatible with the full managed database services provided by your cloud provider.
  • You want to manage your database engine by yourself

Tips 2 – Using the full managed database

When I use this:

  • You don't have time and resources to manage your database. Ease of administration.
  • You have a compatible database with the cloud provider. Available, durable, and up to date.
  • You build a new application that use modern infrastructure that leverage the power of the cloud. High performance and good scalability

Tips 3 – Taking Care the cost

Self-managed database will give you lower cost than full-managed database. For the same size, you will get 50% higher cost by using full-managed database vs self-managed database.

Tips 4 – Using the Cloud Optimized Database

Today the cloud provider provides you a modern and serverless cloud optimized database such as Azure Database SQL Serverless or AWS Aurora serverless. These cloud optimized database is managed database just like SQL Azure or RDS. But it has more performance, more modern, more cost (23% higher than full managed database). If you have data intensive transaction you can choose cloud optimized database.

Tips 5 – Using the Non-Relational Database (NoSQL)

Beside the relational database, you will have non-relational database that work more simple, more high performance, and key-value access pattern. If your data can be developed in non-relational way you can use the NoSQL engine such as Cosmo DB or DynamoDB. Please make sure

  • The cost to store the data in non-relational is higher than relational database. i.e., 1 TB will cost 250 USD / month in DynamoDB while in Aurora will cost you about 100 USD
  • The availability of NoSQL (99.999) is higher than full managed database (99.99).
  • Is schema less database, so you don't need database schema only table.

Personal Conclusion

So, what the conclusion so far

  • For small and cost-effective, you should choose to self-manage is the cheapest option and full control
  • For more demanding performances you should choose full managed database.
  • When in doubt or high transaction database you can choose NoSQL
blog comments powered by Disqus

Topics Highlights

About @ridife

This blog will be dedicated to integrate a knowledge between academic and industry need in the Software Engineering, DevOps, Cloud Computing and Microsoft 365 platform. Enjoy this blog and let's get in touch in any social media.

Xbox

Month List

Visitor