- AWS Aurora is a relational database engine that combines the speed and reliability of high-end commercial databases with the simplicity and cost-effectiveness of open source databases.
- Amazon Aurora (Aurora) is a fully managed, MySQL- and PostgreSQL-compatible, relational database engine i.e. applications developed with MySQL can switch to Aurora with little or no changes
- Aurora delivers up to 5x performance of MySQL without requiring any changes to most MySQL applications
- Aurora PostgreSQL delivers up to 3x performance of PostgreSQL.
- RDS manages the Aurora databases, handling time-consuming tasks such as provisioning, patching, backup, recovery, failure detection and repair.
- Based on the database usage, Aurora storage will automatically grow, from 10GB to 64TB in 10GB increments with no impact to database performance
NOTE – AWS Aurora is covered in the latest Solution Architect – Associate Feb 2018 extensively, so be sure to cover the same.
High Availability and Replication
- Aurora provides data durability and reliability by replicating the database volume six ways across three Availability Zones in a single region
- Aurora automatically divides the database volume into 10GB segments spread across many disks.
- Each 10GB chunk of your database volume is replicated six ways, across three Availability Zones
- RDS databases for e.g. MySQL, Oracle etc. have the data in a single AZ
- Aurora is designed to transparently handle the loss of up to two copies of data without affecting database write availability and up to three copies without affecting read availability.
- Aurora storage is also self-healing. Data blocks and disks are continuously scanned for errors and repaired automatically.
- Aurora Replicas share the same underlying volume as the primary instance. Updates made by the primary are visible to all Aurora Replicas
- As Aurora Replicas share the same data volume as the primary instance, there is virtually no replication lag
- Any Aurora Replica can be promoted to become primary without any data loss and therefore can be used for enhancing fault tolerance in the event of a primary DB Instance failure.
- To increase database availability, 1 to 15 replicas can be created in any of 3 AZs, and RDS will automatically include them in failover primary selection in the event of a database outage.
- Aurora uses SSL (AES-256) to secure the connection between the database instance and the application
- Aurora allows database encryption using keys managed through AWS Key Management Service (KMS).
- Encryption and decryption are handled seamlessly.
- With Aurora encryption, data stored at rest in the underlying storage is encrypted, as are its automated backups, snapshots, and replicas in the same cluster.
- Encryption of existing unencrypted Aurora instance is not supported. Create a new encrypted Aurora instance and migrate the data
Backup and Restore
- Automated backups are always enabled on Aurora DB Instances.
- Backups do not impact database performance.
- Aurora also allows creation of manual snapshots
- Aurora automatically maintains 6 copies of your data across 3 AZs and will automatically attempt to recover your database in a healthy AZ with no data loss.
- If in any case the data is unavailable within Aurora storage,
- DB Snapshot can be restored or
- point-in-time restore operation can be performed to a new instance. Latest restorable time for a point-in-time restore operation can be up to 5 minutes in the past.
- Restoring a snapshot creates a new Aurora DB instance
- Deleting Aurora database deletes all the automated backups (with an option to create a final snapshot), but would not remove the manual snapshots.
- Snapshots (including encrypted ones) can be shared with another AWS accounts
AWS Certification Exam Practice Questions
- Questions are collected from Internet and the answers are marked as per my knowledge and understanding (which might differ with yours).
- AWS services are updated everyday and both the answers and questions might be outdated soon, so research accordingly.
- AWS exam questions are not updated to keep up the pace with AWS updates, so even if the underlying feature has changed the question might not be updated
- Open to further feedback, discussion and correction.
- Company wants to use MySQL compatible relational database with greater performance. Which AWS service can be used?
- An application requires a highly available relational database with an initial storage capacity of 8 TB. The database will grow by 8 GB every day. To support expected traffic, at least eight read replicas will be required to handle database reads. Which option will meet these requirements?
- Amazon S3
- Amazon Aurora
- Amazon Redshift
- A company is migrating their on-premise 10TB MySQL database to AWS. As a compliance requirement, the company wants to have the data replicated across three availability zones. Which Amazon RDS engine meets the above business requirement?
- Use Multi-AZ RDS
- Use RDS
- Use Aurora
- Use DynamoDB