Recommendations from
Amazon Aurora reference
Amazon Aurora generates recommendations for a resource when the resource is created or modified. You can find examples of recommendations from Amazon Aurora in the following table.
Type | Description | Recommendation | Downtime required | Additional information |
---|---|---|---|---|
Resource Automated backups is turned off |
Automated backups aren't turned on for your DB instances. Automated backups are recommended because they enable point-in-time recovery of your DB instances. |
Turn on automated backups with a retention period of up to 14 days. |
Yes |
Overview of backing up and restoring an Aurora DB cluster
Demystifying Amazon RDS backup storage costs |
Engine minor version upgrade is required |
Your database resources aren't running the latest minor DB engine version. The latest minor version contains the latest security fixes and other improvements. |
Upgrade to latest engine version. |
Yes |
|
Enhanced Monitoring is turned off |
Your database resources don't have Enhanced Monitoring turned on. Enhanced Monitoring provides real-time operating system metrics for monitoring and troubleshooting. |
Turn on Enhanced Monitoring. |
No |
|
Storage encryption is turned off |
Amazon RDS supports encryption at rest for all the database engines by using the keys that you manage in AWS Key Management Service (AWS KMS). On an active DB instance with Amazon RDS encryption, the data stored at rest in the storage is encrypted, similar to automated backups, read replicas, and snapshots. If encryption isn't turned on while creating an Aurora DB cluster, you must restore a decrypted snapshot to an encrypted DB cluster. |
Turn on encryption of data at rest for your DB cluster. |
Yes |
|
DB clusters with all instances in the same Availability Zone |
The DB clusters are currently in a single Availability Zone. Use multiple Availability Zones to improve the availability. |
Add the DB instances to multiple Availability Zones in your DB cluster. |
No |
|
DB instances in the clusters with heterogeneous instance sizes |
We recommend that you use the same DB instance class and size for all the DB instances in your DB cluster. |
Use the same instance class and size for all the DB instances in your DB cluster. |
Yes |
|
DB instances in the clusters with heterogeneous instance classes |
We recommend that you use the same DB instance class and size for all the DB instances in your DB cluster. |
Use the same instance class and size for all the DB instances in your DB cluster. |
Yes |
|
DB instances in the clusters with heterogeneous parameter groups |
We recommend that all of the DB instances in the DB cluster use the same DB parameter group. |
Associate the DB instance with the DB parameter group associated with the writer instance in your DB cluster. |
No |
|
Amazon RDS DB clusters have one DB instance |
Add at least one more DB instance to your DB cluster to improve availability and performance. |
Add a reader DB instance to your DB cluster. |
No |
|
Performance Insights is turned off |
Performance Insights monitors your DB instance load to help you analyze and resolve database performance issues. We recommend that you turn on Performance Insights. |
Turn on Performance Insights. |
No |
Monitoring DB load with Performance Insights on Amazon Aurora |
RDS resources major versions update is required |
Databases with the current major version for the DB engine won't be supported. We recommend that you upgrade to the latest major version which includes new functionality and enhancements. |
Upgrade to the latest major version for the DB engine. |
Yes |
|
DB clusters support only up to 64 TiB volume |
Your DB clusters support volumes up to 64 TiB. The latest engine versions support volumes up to 128 TiB for your DB cluster. We recommend that you upgrade the engine version of your DB cluster to the latest versions to support volumes up to 128 TiB. |
Upgrade the engine version of your DB clusters to support volumes up to 128 TiB. |
Yes |
|
DB clusters with all reader instances in the same Availability Zone |
Availability Zones (AZs) are locations that are distinct from each other to provide isolation in case of outages within each AWS Region. We recommend that you distribute the primary instance and reader instances in your DB cluster across multiple AZs to improve the availability of your DB cluster. You can create a Multi-AZ cluster using the AWS Management Console, AWS CLI, or Amazon RDS API when you create the cluster. You can modify the existing Aurora cluster to a Multi-AZ cluster by adding a new reader instance and specifying a different AZ. |
Your DB cluster has all of its read instances in the same Availability Zone. We recommend that you distribute the reader instances across multiple Availability Zones. Distribution increases availability and improves response time by reducing network latency between clients and the database. |
No |
|
DB memory parameters are diverging from default |
The memory parameters of the DB instances are significantly different from the default values. These settings can impact performance and cause errors. We recommend that you reset the custom memory parameters for the DB instance to their default values in the DB parameter group. |
Reset the memory parameters to their default values. |
No |
|
Query cache parameter is turned on |
When changes require that your query cache is purged, your DB instance will appear to stall. Most workloads don't benefit from a query cache. The query cache was removed from MySQL 8.0 and higher versions. We recommend that you set the query_cache_type parameter to 0. |
Set the |
Yes |
|
|
When |
Set the |
No |
|
|
The autovacuum parameter is turned off for your DB clusters. Turning autovacuum off increases the table and index bloat and impacts the performance. We recommend that you turn on autovacuum in your DB parameter groups. |
Turn on the autovacuum parameter in your DB cluster parameter groups. |
No |
Understanding autovacuum in Amazon RDS for PostgreSQL
environments |
|
When We recommend that you turn on the |
Turn on |
Yes |
Amazon Aurora PostgreSQL parameters: Replication, security, and
logging |
|
When the We recommend that you set |
Set |
No |
|
|
The query planner or optimizer can't use the index-only scan plan type when it is turned off. We recommend that you set the |
Set the |
No |
|
|
The query planner or optimizer can't use the index scan plan type when it is turned off. We recommend that you set the |
Set the |
No |
|
|
The value of the We recommend that you set the |
Set the |
No |
|
|
Your DB instance isn't configured to persist the InnoDB statistics to the disk. When the statistics aren't stored, they are recalculated each time the instance restarts and the table accessed. This leads to variations in the query execution plan. You can modify the value of this global parameter at the table level. We recommend that you set the |
Set the |
No |
|
|
The Your DB instance has a low value for the maximum number of files InnoDB
can open at one time. We recommend that you set the
|
Set the |
Yes |
|
|
Your DB instance has a low value for the maximum number of simultaneous connections for each database account. We recommend setting the |
Increase the value of the |
Yes |
|
Read Replicas are open in writable mode |
Your DB instance has a read replica in writable mode, which allows updates from clients. We recommend that you set the |
Set the |
No |
|
|
Your DB instance encounters a known issue: A table created in a MySQL
version lower than 8.0.26 with the We recommend that you set the
|
Set the |
No |
|
|
The general logging is turned on for your DB instance. This setting is useful while troubleshooting the database issues. However, turning on general logging increases the amount of I/O operations and allocated storage space, which might result in contention and performance degradation. Check your requirements for general logging usage. We recommend
that you set the |
Check your requirements for general logging usage. If it isn't
mandatory, we recommend that you to set the
|
No |
|
DB cluster under-provisioned for read workload |
We recommend that you add a reader DB instance to your DB cluster with the same instance class and size as the writer DB instance in the cluster. The current configuration has one DB instance with a continuously high database load caused mostly by read operations. Distribute these operations by adding another DB instance to the cluster and directing the read workload to the DB cluster read-only endpoint. |
Add a reader DB instance to the cluster. |
No |
Adding Aurora Replicas to a DB cluster |
RDS instance under-provisioned for system memory capacity |
We recommend that you tune your queries to use lesser memory or use a DB instance type with higher allocated memory. When the instance is running low on memory, then the database performance is impacted. |
Use a DB instance with higher memory capacity |
Yes |
Scaling Your Amazon RDS Instance Vertically and
Horizontally |
RDS instance under-provisioned for system CPU capacity |
We recommend that you tune your queries to use less CPU or modify your DB instance to use a DB instance class with higher allocated vCPUs. Database performance might decline when a DB instance is running low on CPU. |
Use a DB instance with higher CPU capacity |
Yes |
Scaling Your Amazon RDS Instance Vertically and
Horizontally |
RDS resources are not utilizing connection pooling correctly |
We recommend that you enable Amazon RDS Proxy to efficiently pool and share existing database connections. If you are already using a proxy for your database, configure it correctly to improve connection pooling and load balancing across multiple DB instances. RDS Proxy can help reduce the risk of connection exhaustion and downtime while improving availability and scalability. |
Enable RDS Proxy or modify your existing proxy configuration |
No |
Scaling Your Amazon RDS Instance Vertically and
Horizontally |