As of August 2022, AWS provides 10+ services for databases and as innovation pushes cloud providers to optimize operations and increase efficiency, that number will keep increasing. Although it might get confusing at first, different services give special benefits to its user. Discover Financial Services facilitates millions of daily transactions while working to drive value and adapt quickly to support new business partnerships. By using AWS DynamoDB, a fully managed, serverless, key-value NoSQL database designed to run high-performance applications at any scale, Discover was able to process a day’s worth of files and payment processors in 1.5hrs. This also helped them process four million transactions in 9 minutes. For a digital banking company, this meant increasing the transaction processing speed by 66%.
We will be working our way through databases in 3 steps, each step discussed in a separate article. The first step is to analyze your business case and what characteristics of databases are desirable for you to deliver maximum business value. There are several factors to consider and we have compiled a list of some factors which would help you in making the right choice.
1. Do you need Structured or Unstructured data modelling?
AWS has services for both structured and unstructured databases but you need to first make a selection between the two. Has your application been using a structured database? Do you want to stick with it or switch to unstructured? While structured databases have their own advantage and easily scale vertically, unstructured databases have been known to increase flexibility and reduce frequent maintenance of relations within the data. This is one of the key questions in terms of migrating on-prem setups.
If you’re developing a new application, then the answer becomes clearer. Suppose you’re building a social media platform. While organized information like name, email ID, date of birth and so on can be stored in structured databases, information such as news feed posts can be stored in unstructured databases. So, your first step is to really figure out the level of organization required for your data based upon which appropriate service can be selected.
2. Which one should you prioritize: Availability/Consistency/Partitioning?
Depending on your use case, you prioritize two features while sacrificing one. In our experience, trying to achieve all three can lead to really messy outcomes.
Consistency and Availability – Ideal for non-distributed systems that can sacrifice partition tolerance that is mostly used by traditional databases.
Availability and Partition Tolerance – Ideal for distributed systems that can sacrifice consistency of data between nodes and prefer availability over universal consistency. Such criteria are used by most NoSQL database users.
Consistency and Partition Tolerance – Ideal for distributed systems that want a consistent view of data over all the systems.
3. What are the costs associated with the database?
Economics plays a huge factor when choosing a service for your application and you might have to cut some corners in your expectations. So, it is recommended that you do not choose a solution with high prices and premiums, but the one that provides maximum value for the budget you have. While selecting any database, one should also take into account the indirect costs associated with database failures. The revenue loss, customer dissatisfaction and other factors arising from failures may result in unforeseen losses.
Furthermore, data splitting comes at a cost. MySQL and Postgres charge extra for splitting the data while AWS Aurora lets the user scale read-only nodes, leaving you with limited write-only nodes. Further database-related costs can result from changes in application, hardware or instances.
These are some of the most fundamental questions that one needs to ask when selecting the type of database for your application. Over the next two weeks, we will be looking at a step-by-step guide to select the right database and also some use case-appropriate database templates. Stanra Tech Solutions is a Select AWS Consulting Partner that can help with your business problems arising in cloud development. Connect with us or visit us on our website.