Quick Comparison Cheat Sheet: Amazon Aurora vs. Amazon RDS
Tags: aws, beginners, cloud, database
Published: 2023-04-30 02:29:36

When I was studying for the AWS Certified - Database Specialty (DBS-C01), I saw some questions about the differences between Aurora and RDS in the question bank, so I compiled a memo for myself.

This article presents a cheat sheet based on those notes that you can use as a reference for exam preparation and database architecture selection.

## Cheat sheet

| Feature                                | Amazon Aurora                              | Amazon RDS                                      |
|----------------------------------------|--------------------------------------------|-------------------------------------------------|
| Separation of Instances and Storage    | Yes (independently scalable)               | No                                              |
| Replicas                               | Aurora Replicas (up to 15)                 | Standby Instances and Read Replicas            |
| Storage Specification and Pricing      | Not required, billed based on usage        | Specify storage type and capacity, plan-based pricing |
| Aurora Serverless                      | Yes (no instance type specified, auto-scaling) | No                                              |
| Advanced Auditing                      | Yes (Aurora-exclusive auditing features)   | No (use AWS CloudTrail or external auditing tools) |
| Parallel Query                         | Yes (high-speed data processing due to separation of instances and storage) | Possible with some DB engines (performance may be inferior to Aurora) |
| Cluster Parameter Group Configuration  | Yes (binary log, S3 integration settings, etc.) | Yes (use DB parameter groups)                   |
| Zero Downtime Patching (ZDP)           | Yes (minimal downtime during database patching) | No (patching during maintenance window)       |
| Point-In-Time Recovery (PITR)          | Yes (recovery time within 5 minutes)       | Yes (recovery time over 5 minutes)             |
| SQL Query-based S3 Data Export        | Yes (easy data backup and migration to external systems) | Possible with some DB engines (functionality may be more limited than Aurora) |
| CloudWatch Metrics                     | Yes (easy operational monitoring with abundant metrics) | Yes (may not offer as many metrics as Aurora)  |
| Failure Injection Query               | Yes (experimental verification of system fault tolerance) | No                                              |
| Database Activity Stream              | Yes (real-time integration with Kinesis Data Streams) | Possible with some DB engines (functionality may be more limited than Aurora) |
| Calling Lambda Functions from Aurora MySQL | Yes (integration of database and serverless architecture) | Possible with some DB engines (functionality may be more limited than Aurora) |
| Machine Learning Service Integration  | Yes (integration with Amazon SageMaker and Amazon Comprehend) | Possible with some DB engines (functionality may be more limited than Aurora) |

## Additional Explanations
I'll provide a brief explanation for each item.

### Separation of Instances and Storage
In Amazon Aurora, instances (compute capacity) and storage (data storage) are separated. This design allows for independent scaling of instances and storage, optimizing resource utilization. Additionally, there is an automatic storage expansion feature, which adjusts capacity automatically based on usage, making storage management easier.

### Replicas
Aurora Replicas serve the dual purpose of Amazon RDS standby instances and read replicas, functioning as read-only instances. This allows for the distribution of read traffic across multiple instances, potentially improving performance. Furthermore, with the ability to create up to 15 Aurora Replicas, the system can handle large read loads.

### Storage Specification and Pricing
In Aurora, there is no need to specify storage type and capacity. Charges are incurred based only on usage.

### Aurora Serverless
Aurora Serverless is an option that automatically scales CPU and memory without specifying an instance type. This reduces the operational burden of database capacity provisioning and scaling, improving cost efficiency.

### Advanced Auditing
Advanced Auditing is an Aurora-exclusive auditing feature that allows for the collection of detailed logs regarding database access and operations. This makes security auditing and operational monitoring easier.

### Parallel Query
In Aurora, the separation of instances and storage enables parallel query processing. This results in faster data processing and response, ultimately improving performance.

### Cluster Parameter Group Configuration
In Aurora, you can use the DB cluster parameter group to modify database settings, such as binary logs and S3 integration settings. This allows for flexible customization of database behavior.

### Zero Downtime Patching (ZDP)
Aurora offers a feature called Zero Downtime Patching (ZDP). This minimizes system downtime when applying database patches, thereby improving system availability and reducing operational burden.

### Point-In-Time Recovery (PITR)
In Aurora, you can use Point-In-Time Recovery (PITR) to restore the database to a specific point in time. Aurora's PITR has a recovery time of within 5 minutes, which is faster than the 5 minutes for RDS. This helps minimize the risk of data loss.

### SQL Query-based S3 Data Export
In Aurora, you can export data to S3 in SQL query format. This makes data backup and migration to external systems easier.

### CloudWatch Metrics
In Aurora, you can monitor database performance and resource usage with Amazon CloudWatch Metrics. A wide range of metrics is provided, including cluster metrics (storage usage, IOPS) and instance metrics (CPU/memory usage), making operational monitoring easier.

### Failure Injection Query
In Aurora, you can intentionally induce instance or storage failures using fault injection queries. This allows you to experimentally verify the system's fault tolerance.

### Database Activity Stream
By using the Database Activity Stream, you can integrate information about database access and operations in real-time with Amazon Kinesis Data Streams. This makes security auditing and operational monitoring more efficient.

### Calling Lambda Functions from Aurora MySQL
In Aurora MySQL, you can invoke Lambda functions. This allows for the integration of databases and serverless architectures, enabling flexible application development. By using Aurora MySQL, you can directly call AWS Lambda functions from the database. This makes it easier to develop applications using serverless architecture based on database events or triggers.

### Machine Learning Service Integration
Aurora is capable of integrating with machine learning services such as Amazon SageMaker and Amazon Comprehend. This allows you to leverage data within the database for training and inference of machine learning models. Application development using machine learning for data analysis and prediction becomes easier.