Hi guys welcome to another exam cram.
So I want to start this one off talking about the relational and non relational.
So again this was in the database is one I one lecture but I just want to make sure that is a couple
of facts here which are really key.
So remember you got relational and non relational. Relational things like RDS Oracle and MySQL and
non relational database is such as dynamoDB.
So those are the Amazon ones that you need to worry about Amazon RDS and DynamoDB and you scale a
relational database such as RDS vertically that means you choose a bigger instance size with more CPU
and memory whereas you scale DynamoDB horizontally that means it scales seamlessly and you can
just change the performance very easily through the console.
So I wanted to revisit this table as well.
So just remember the key facts here are that you would use a database on Amazon EC2 if you need
full control over the instance and the database or if you're installing a third party database engine.
So something that's not available in RDS. You would use RDS for traditional relational databases.
You can choose from Oracle, PostgreSQL, Microsoft SQL, and MariaDB and also Aurora, Amazon's
own proprietary database. And that's for well-formed structured data, for a NoSQL type of database
you would use DynamoDB and that's in memory performance,
great IO and dynamic scalability, so that's the horizontal scaling that can also be automatic for auto
scaling. RedShift is where you have a data warehouse.
So that's about aggregating data probably from an RDS database or something similar, operational or transactional
database and performing analytics queries on that and you would do so using SQL or business intelligence
tools.
We then have Elasticache for fast temporary storage for small amounts of data.
Remember that's in-memory.
So RDS is a managed service that makes it easy to setup operate and scale a relational database. RDS
uses EC2 instances.
So you have to choose your instance family and type.
It uses SQL it's an OLTP of database and its very easy to set up.
It can be highly available fault tolerant and scalable so you'd use this for your operational workloads,
your transactional systems. You can encrypt RDS and the snapshots that you create from RDS. So
your backups and you would do so using AWS key management service (KMS). RDS supports MySQL
.
Oracle, PostgreSQL, and Aurora as well as Maria DB. Scalability is by increasing
instances again that's about more compute and more storage for fault tolerance and disaster recovery.
with RDS use multi-AZ and that can be automatic failover. You use read replicas for offloading
read queries from the master database. DynamoDB is a fully managed NoSQL type of database that
provides fast and predictable performance and seamless scalability and that can be pushed button scalability
so there's no downtime when you scale it. Data's synchronously replicated across AZs in a region
and you can use global tables for a multi region multi master database. DynamoDB accelerator or DAX
is an in-memory cache for DynamoDB that improves performance. RedShift is a data warehouse.
So this is all about performing analytics on your data using standard SQL and business intelligence
tools.
So again data warehouse for analytics it's relational and it's the OLAP type of database you can
process very large amounts of data with redshift. Again redshift uses EC2 instances so you have to
choose the instance family and type. Analytics databases typically use columnar storage which improves
performance for complex queries. RedShift keeps three copies of your data and performs continuous and
incremental backups.
We then have ElastiCache. So this is where you have an in-memory database and you can use Memcached
or Redis compliant server nodes.
It's in memory caching and that improves performance especially for read heavy workloads.
This also runs on EC2 instances.
So again you have to choose your instance type. Use cases for ElastiCache include web session stores,
so session state stores, database caching where you might put it in front of RDS, leaderboards and
streaming data dashboards. So remember the two different types of engine Memcached which is the simplest
model and then Redis which is more complex supports encryption and high availability and cross AZ.
So that's it for this exam cram with the databases again it's all about understanding what the different
offerings are and just being able to work out which one to use in a specific scenario.