2022-02-10 Chapter 8 - Databases
February 13, 2022•579 words
service-rds-001; Relational Database Service (RDS) offers six different database engines: {{c1::SQL Server, PostgreSQL, Oracle, MariaDB, MySQL and Amazon Aurora}}.
service-rds-002; RDS offers multi-AZ, failovers and automated {{c1::backups}}.
service-rds-003; RDS is intended to support {{c1::online transaction}} processing {{c1::(OLTP)}} and is not really suitable for {{c1::online analytical}} processing {{c1::(OLAP)}}.
service-rds-004; Enabling the {{c1::multi-AZ}} feature in RDS creates an exact copy of your database in {{c1::another AZ}}. In this configuration, replication is managed by {{c1::AWS}}. Note that Amazon Aurora is always {{c1::multi-AZ}}. This feature is for {{c1::disaster recovery}} rather than for improving read performance. To improve read performance, instead use {{c1::read-replicas}}.
service-rds-005; A {{c1::read-replica}} in RDS is a read-only copy of your primary database to support improved read performance. These can be in different AZs or regions from the primary database. There can be multiple {{c1::read-replicas}} for a single primary database.
service-rds-006; Read-replicas in RDS are useful for read-heavy use cases like {{c1::BI reporting jobs}}.
service-rds-007; Each read-replica in RDS has it's own {{c1::DNS endpoint}}.
service-rds-008; Read-replicas in RDS can be promoted to be {{c1::distinct databases}}. Doing so breaks {{c1::the replication}}.
service-rds-009; {{c1::Automatic backups}} must be enabled to deploy read-replicas in RDS.
service-rds-010; Amazon Aurora is a {{c1::MySQL}} and {{c1::PostgreSQL}} compatible database engine developed by Amazon.
service-rds-011; Aurora databases start with {{c1::10 GB}} of storage capacity and scales in {{c1::10GB}} increments up to {{c1::128TB}}.
service-rds-012; Aurora always stores at least {{c1::six}} copies of your data ({{c1::2}} copies in a minimum of {{c1::3}} AZs).
service-rds-013; It's possible to share Aurora {{c1::snapshots}} with other {{c1::AWS accounts}}.
service-rds-014; Aurora offers three types of replica: {{c1::Aurora}}, {{c1::MySQL}} and {{c1::PostgreSQL}}. Automated failover is only available with {{c1::Aurora}} replicas.
service-rds-015; Automated backups are always {{c1::enabled by default}} on Aurora.
service-rds-016; Aurora Serverless is an on-demand configuration of Aurora which scales {{c1::automatically based on your applications needs}}. It's appropriate for {{c1::infrequent}}, {{c1::intermittent}} or {{c1::unpredictable}} workloads.
service-dynamodb-001; DynamoDB is a fast and flexible {{c1::NoSQL}} database service supporting {{c1::document}} and {{c1::key-value}} data models.
service-dynamodb-002; DynamoDB databases are stored on {{c1::SSD}} storage and are spread across {{c1::three}} geographically distinct data centers.
service-dynamodb-003; DynamoDB offers {{c1::eventually consistent}} reads (~1 second) by default and offers optional {{c1::strongly consistent}} reads.
service-dynamodb-004; DynamoDB Accelerator (DAX) reduces request time from {{c1::milliseconds}} to {{c1::microseconds}} via an automated {{c1::in-memory cache}} managed by the DynamoDB service.
service-dynamodb-005; DynamoDB is pay-per-{{c1::request}}.
service-dynamodb-006; DynamoDB supports ACID (atomicity, consistency, isolation, durability i.e. all-or-nothing) transactions across {{c1::one or more tables}} within a single {{c1::AWS account}} or {{c1::region}}.
service-dynamodb-007; DynamoDB transactions offer 3 types of reads - {{c1::eventual consistency}}, {{c1::strong consistency}} and {{c1::transactional}}, and 2 options for writes - {{c1::standard}} and {{c1::transactional}}.
service-dynamodb-008; A DynamoDB transaction can comprise up to {{c1::25}} items or {{c1::4}} MB of data.
service-dynamodb-009; DynamoDB offers on-demand {{c1::backup and restore}} capability with no downtime or performance impact. {{c1::Backups}} are retained until {{c1::deleted}}. Alternatively, dynamoDB offers {{c1::point-in-time recovery}} (not enabled by default) to support {{c1::restoration to any point during the last 35 days}}.
service-dynamodb-010; DynamoDB streams are {{c1::a time-ordered sequence of item-level changes}} (e.g. inserts, updates and deletes) in a table. Stream records are grouped into {{c1::shards}} and {{c1::shards}} are stored for {{c1::24}} hours.
service-dynamodb-012; You can combine DynamoDB streams with Lambda functions to approximate functionality like {{c1::stored procedures in relational databases}}.
service-dynamodb-013; DynamoDB Global Tables are {{c1::globally distributed}} tables for {{c1::global}} applications. They feature {{c1::multi-master, multi-region}} replication. They rely on DynamoDB streams (which must be enabled) and offer replication latency under {{c1::1 second}} in most cases. This functionality is built into DynamoDB, so you do not need to {{c1::rewrite your application}}.