- [Morgan] Next up on our list of topics to cover is, choose high-performing database solutions for a workload. There are many database solutions on AWS, and it can be tricky to know when to use each one. For the exam, you should have a knowledge that goes deeper than identification of which database service to use given a use case. You need to be able to identify which AWS Service to use for non-relational databases, relational databases, graph databases, and more. However, you should know more about how these services work and operate, and you should know more about some specific information about the AWS services to be able to answer questions that go beyond, do I need a relational database? For example, you should be able to choose a suitable database service that meets your performance needs. Amazon RDS can be a highly performant database, but if you have a use case that needs single-digit-millisecond response times, then Amazon DynamoDB would likely be a better choice for that solution. Another example is knowing the performance differences between databases, like Amazon Aurora and Amazon RDS. I would highly suggest studying the performance and storage limitations of both Amazon Aurora and Amazon RDS so that you can choose the most-appropriate database for a given scenario. Amazon RDS has different storage types that you can choose from to match performance needs. You can choose from General Purpose SSD, Provisioned IOPS, or Magnetic. I would suggest you understand use cases for each of these storage types. That is one example of a choice you can make when choosing solutions for databases, I would recommend you know the different configurations that impact performance, from a high level, for AWS database services. Beyond choosing services or features that best fit a use case and performance needs, you should also be able to choose appropriate scaling strategies to meet your scaling needs. For example, Amazon DynamoDB automatically scales storage under the hood, but you do control the scaling of the throughput for the table. You can provision throughput capacity, or you can use auto scaling for throughput. Knowing when to use each one, given a use case, is the type of knowledge that you should have for the exam. Other database services scale differently, like Amazon RDS, which allows you to use storage auto scaling for the underlying storage, but in order to scale for things like CPU usage, you have to update the DB instance. Selecting an appropriate database-scaling strategy depends on the type of database you are using and the scenario presented. So, make sure that you are studying up on how AWS database services scale up or down. You should also be able to determine when database caching is required for performance improvement. Sometimes, you don't want to scale up, but you still want the performance benefit, and you can do this for database reads by caching data. Different database services have different caching features that you should be familiar with. Then, there are services like Amazon ElastiCache, which can be used alongside applications for caching, or can be used alongside databases for caching. I recommend reading up on caching patterns and architectures using Amazon ElastiCache. There are a lot of different AWS database services. And the reason for this is because each database is purpose-built. This means they were built with specific use cases in mind. So, you wouldn't use the same database for every single use case. Some are more performant than others, given a use case. And sometimes, databases are highly specialized like Amazon Neptune, the graph database, for example. You should know, from a high level, what the AWS database services' purposes are. Why exactly were they built? Answering this question, and then diving into how they work and how they are configured, will help you prepare for the Solutions Architect - Associate Exam.