Amazon Aurora is very well suited in situations where the application requires high scalability and has variable and unpredictable workloads. Also, real-time analysis and reporting could be performed easily using Aurora's read replica feature. Aurora might not be a good fit for applications that rely more on other cloud-based services such as Azure since there are some issues with regards to integrations
Amazon ElastiCache is a great managed Redis or Memcached service. ElastiCache with the Redis engine is great for caching expensive responses or queries. It is great if you need a distributed mutex. It is great as a message broker. If you need Redis but don't have the resources to manage it yourself, consider ElastiCache. It may not be economical for very large scale installations, however.
I think the biggest point for a project or team to consider is the cost. Although it can scale and descale according to your requirements, still you need to be cautious and have a vision of how big your database is going to be, how complex it is going to be, and how much does latency matter. You need to factor all those decisions before going to spend extra on Amazon Aurora as compared to a simple MYSQL database.
It suffers from Clod start which is a very well known aspect of the product. But the recovery part is also not up to the mark. They need to improve on the ability to restore a copy of the backup, but mostly it is seen that the copy is corrupted or not the latest one.
It does allow us to add new nodes to the existing cluster but we need to be wary of that the new nodes are read-only nodes. All the functions of write/update will still be carried out by the master node only.
Aurora has helped us scale our data workloads by 10X in the last 3 years without the need to increase the DBAs.
It provides reliable performance and uptime guarantees. We have instances varying from 2 cores, 8GB RAM to 32 cores, 256 GB RAM with heavily predicatable workload.
Manageable costs - the ROI on performance and costs is great!
Aurora is easy to deploy and operate from the AWS console, the command line, and with Infrastructure as Code tools like Cloudformation and Terraform. Integrating the endpoints into an application is easy because from the outside, the Aurora clusters look just like any other open source database. I have also seen benefit from using the instances within the cluster as distinct read and write endpoints allowing for further customization in our applications.
Azure's managed database service offers high availability with automatic failover, as well as automated backups and geo-replication for data durability.
DigitalOcean's service provides automated backups and scaling options for availability. Data durability is maintained through redundant storage and regular snapshots.
IBM's database service offers automated backups and recovery options for data protection. It also supports replication for disaster recovery.
The support as a whole cannot be applied to just Aurora, but I must say that the response to our tickets from the AWS side was a bit anemic. Despite that, there is plenty of documentation and forum articles that should make anybody self-serviced. Again, let me stress this out - the product (in either MySQL or Postgres form) was used by many people and thus now well understood, explained and there are plenty of books and other material available. This is not the case that we encountered with NoSQL.
MongoDB is also powerful and efficient with a large amount of data, well RavenDB is much powerful than Mongo, and has more facilities which I like and is better than Mongo. But, Amazon Aurora is much more powerful and confidential data management system, having a cool blockchain system with a powerful relationship between different records.
Amazon Elasticache is better than Amazon Elasticsearch and Amazon SQS as the former is good for dumping a lot of data for searching purposes later on and the latter is good for maintaining a message bus whereas Amazon ElastiCache purely works as a caching data store to provide faster data access. AWS DynamoDB is a good alternative if you're looking for a serverless solution as in Amazon ElastiCache, we get to see instances while in AWS DynamoDB, we can simply access the data without the need of bringing up a server.
The premium cost can be a deterrent but its well worth it when the DB fixes itself without intervention from the engineering or DBA teams
The team has gained more confidence in deploying highly available DB infrastructure without the overhead of managing the underlying instances and coordinating the synchronization of a primary-secondary DB setup.
Aurora has saved the day for my team on multiple occasions by withstanding unexpected, spiky traffic