> For the complete documentation index, see [llms.txt](https://ysfang82.gitbook.io/development-notes/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://ysfang82.gitbook.io/development-notes/aws-notes/service/storage/aurora.md).

# Aurora

**Introduction**

* A MySQL and PostgreSQL compatible relational database on AWS
* 5x faster than standard MySQL databases and 3x faster than standard PostgreSQL databases.&#x20;
* Provides the security, availability, and reliability of commercial-grade databases at 1/10 of the cost.

**Feature**

* Provision Type:
  * Self-Provisioned
    * Starts with 10 GB, scales in 10 GB increments to 64TB automatically
    * Can scale up to 32 CPUs and 244GB of memory
  * Serverless
    * Automated database instantiation and auto-scaling based on actual usage.
* 2 copies of data in each AZ with minimum of 3 AZs (can choose AZ, and have 6 copies at least)
  * 4 copies out of 6 needed for writes
  * 3 copies out of 6 neede for reads
* Read / Write
  * With a write endpoint to write into Master
  * With a read endpoint to read from all Read Replicas (Scalability):
    * Aurora Replica
      * up to 15 Read Replicas
    * MySQL Replica
      * up to 5 Read Replicas
* Cross Region Read Replicas (RR): entire DB is copied (not select tables)
* Import / export data directly from / to S3: efficient use of resources
* Backtracking for rewinding the database status (useful for doing Tests)
  * Point-in-time restoration from snapshots creates a new database. (needs more time)
* Global Aurora (cross region)
  * Aurora Cross Region Read Replicas
    * Useful for DR
    * Simple to put in place
  * Aurora Global Database (recommended)
    * One Primary Region (read / write)
    * Up to 5 secondary (read only) regions, replication lag is lesser than 1 second
    * Up to 16 Read Replicas per secondary region
    * Helpful for decreasing latency
    * Promoting another region (for DR) has an RTO within  1 minute
* [Aurora Multi-Master](https://docs.aws.amazon.com/zh_tw/AmazonRDS/latest/AuroraUserGuide/aurora-multi-master.html)
  * In case you need immediate failover for write node (HA)
  * Every Aurora node can do read / write (need to promote a RR regularly)
  * Limits:
    * The maximum number of nodes: 2.
    * **Can only be in one region**.
    * May increase latency and deal with conflict with an algorithm.
    * Not support integration with other AWS services.
    * Etc.
* Loss Handling
  * Loss of up to 2 copies of data without affecting write availability
  * Loss of up to 3 copies of data without affecting read availability
  * Self-healing (scanning errors and repairing automatically)
