Application workloads are often variable and, at times, unpredictable. Organizations typically address these challenges by trying to stay one step ahead and provision a larger database instance than is actually utilized, when averaged over time. Our newest managed database service - Aurora - is compatible with recent versions of MySQL and PostgreSQL and enables organizations to cost-effectively scale workloads automatically and customize service availability options.
Features
MySQL and PostgreSQL Compatibility with Better Performance
Performance benchmarks conducted by AWS show that Aurora can handle significantly more transactions per second for SELECTs and UPDATEs compared to open source versions of MySQL and PostgreSQL. Current available engine versions include:
- MySQL 8.0.26
- PostgreSQL 13.6, 13.7, 13.8, 14.3, 14.4, 14.5, 14.6
Powered by AWS Infrastructure and Engineered for Resiliency
Aurora is part of the AWS Relational Database Service, backed by Amazon Web Services infrastructure. AWS is also responsible for managing system vulnerabilities, using zero-downtime patching when possible. In the event of database failure, Aurora will automatically restart the database and associated processes. Aurora does not require crash recovery replay of database redo logs, greatly reducing restart times. It also isolates the database buffer cache from database processes, allowing the cache to survive a database restart. Customers can also specify custom replication options (see Additional Options below).
Auto Scaling Compute Resources
Aurora continuously tracks utilization of resources such as CPU, memory, and network. When capacity is constrained by any of these, Aurora scales up the system incrementally. As things slow down, Aurora will downsize capacity without any interruption of service. Upon database creation, customers specify a minimum capacity level to ensure Aurora is operating at a suitable baseline and has enough memory to accommodate the buffer cache. A maximum capacity level can be set to avoid unexpected charges. Healthcare Blocks monitors these metrics and detects high capacity issues and will provide recommendations on optimizing the capacity range.
Pay Per Use Storage
Aurora storage charges are based on the amount of actual data stored instead of the size of the provisioned storage volume. Aurora clusters can grow to a maximum size of 128 tebibytes (TiB), with a maximum table size of 64 TiB (MySQL) and 32 TiB (PostgreSQL).
Automated Database Backups
Aurora creates a storage volume snapshot of your database instance, backing up the entire instance and not just individual databases. By default, the last 5 days of snapshots are retained, and you can specify a custom retention period and frequency (e.g. 7 days/4 weeks/12 months) when requesting an Aurora database.
There are two major differences between snapshots vs. traditional database SQL dumps:
(a) The first snapshot of a database instance contains all data. Subsequent snapshots of the same database instance are incremental, which means that only the data that has changed after your most recent snapshot is saved and billed to your account;
(b) Restoring a database involves choosing a specific point represented in your snapshots, and AWS provisions a new endpoint containing the data. This enables you to review an earlier state of the system independent from your live environment. Healthcare Blocks assists with this process.
Logging
Database logs are published to AWS CloudWatch Logs and are available through a command line and Web-based interface. The service retains the last 7 days of logs; longer retention periods are available at cost. For logs that contain protected health information, customers can subscribe to the CloudWatch Logs data masking feature.
Monitoring
Aurora metrics such as current capacity tier, number of connections and queries, and utilization of CPU and memory are published to a CloudWatch Dashboard. In addition, the Performance Insights console helps you analyze database performance. Access to both is included with Aurora databases.
Additional Options
Multi-Zone Replicas
The Aurora multi-zone option deploys a replica of your database in another AWS data center within the same geographic region and can restore interrupted service in under two minutes. Replicas can be configured to either scale on demand or to mirror the size of the primary, to ensure they are always sized to the right capacity in case of failover.
Multi-Region Replicas
If you are operating a business critical application, your disaster recovery policy may require systems redundancy across geographic regions. The Aurora global option deploys your database cluster to two AWS regions (us-west-2 and us-east-2) and replicates data without significant lag. An Aurora cluster can recover in less than 2 minutes even in the event of a complete regional outage. Since the replicated instance does not actively serve application traffic, it can operate at a smaller, less costly footprint.
Read-Only Replicas
A common scenario for organizations is running monthly and quarterly reports, which can significantly impact the performance of a relational database. Aurora can provision additional read-only instances to ease load off the primary.
Data Exports to Amazon S3
Data can be exported from Aurora to an S3 bucket in the Apache Parquet format. Alternately, Healthcare Blocks can generate a traditional SQL dump. Both options incur a cost based on the snapshot size.
Pricing
With Aurora, you pay for database capacity, data storage, backup storage, and read/write storage operations.
Capacity is expressed as an Aurora Capacity Unit (ACU) with 1 ACU equal to 2 GB of memory with corresponding CPU and networking | $0.20 per ACU hour |
Data storage | $0.20 per GB-month |
Backup storage (incremental automated snapshots, 1 day retention included for free) | $0.03 per GB-month |
Read/write operations | Free during the beta period |
Extras
- Multi-zone replication: pricing is based on the Aurora Capacity Units and data storage used by the replica per the above rates
- Multi-region replication: data transfer - $0.03 per GB, replicated writes - free during the beta period
- Additional read-only replicas: based on Aurora Capacity Units and data storage used by the replica per the above rates
- Extended CloudWatch Logs retention (beyond 7 days): $0.03 per GB
- CloudWatch Logs data masking: $0.65 per GB
- Data export to Amazon S3: $0.02 per GB (Apache Parquet format) or $0.03 per GB (SQL format - max limit is 10 GB). S3 storage is billed at $0.06 per GB for the standard tier.
Examples
These usage scenarios assume that hourly Aurora Capacity Units do not change during the month. Thus, your actual costs can be higher or lower, depending on the ACU scaling limits set when the database is provisioned.
Low Activity Database
744 hours at 1 ACU (2 GB RAM)
10 GB consumed data storage
5 GB extra backup storage (based on 5 days of retained backups)
Monthly total: $151
Low Activity Database with Multi-Zone Replication
744 hours at 1 ACU (2 GB RAM)
744 hours at 0.5 ACU (1 GB RAM) for replica
10 GB x 2 instances of consumed data storage
5 GB extra backup storage (based on 5 days of retained backups)
Monthly total: $228
Medium Activity Database with Multi-Zone Replication
744 hours at 2 ACU (4 GB RAM)
744 hours at 0.5 ACU (1 GB RAM) for replica
10 GB x 2 instances of consumed data storage
5 GB extra backup storage (based on 5 days of retained backups in primary region)
Monthly total: $377
Medium Activity Database with Multi-Zone and Multi-Region Replication
744 hours at 2 ACU (4 GB RAM)
744 hours at 0.5 ACU (1 GB RAM) for zone replica
744 hours at 0.5 ACU (1 GB RAM) for cross-region replica
10 GB x 3 instances of consumed data storage
5 GB extra backup storage (based on 5 days of retained backups in primary region)
Monthly total: $453
High Activity Database with Multi-Zone Replication
744 hours at 4 ACU (8 GB RAM)
744 hours at 0.5 ACU (1 GB RAM) for replica
10 GB x 2 instances of consumed data storage
5 GB extra backup storage (based on 5 days of retained backups)
Monthly total: $674
High Activity Database with Multi-Zone and Multi-Region Replication
744 hours at 4 ACU (8 GB RAM)
744 hours at 0.5 ACU (1 GB RAM) for zone Replica
744 hours at 0.5 ACU (1 GB RAM) for cross-region replica
10 GB x 3 instances of consumed data storage
5 GB extra backup storage (based on 5 days of retained backups in primary region)
Monthly total: $751
High Activity Database with Multi-Zone Replication and Same-Sized Replica
744 hours at 4 ACU (8 GB RAM)
744 hours at 4 ACU (8 GB RAM)
10 GB x 2 instances of consumed data storage
5 GB extra backup storage (based on 5 days of retained backups)
Monthly total: $1,195
*During the beta period, Healthcare Blocks relies on feedback from its customers to optimize support and management activities and provides discounted pricing (reflected in the above numbers). Final pricing and features may change after the beta period concludes.