Overall Satisfaction with Amazon Relational Database Service
We use Amazon RDS as the backing data store for our various microservices as well as the utilities that manage service scheduling and system availability. Our primary databases are configured with Postgres, but our management utilities use MySQL under the hood. In production, we also use a high-availability configuration with automated failover to a backup system. This is all to say we use RDS extensively in our organization and the reliability of the platform provides both us and our customers with piece of mind.
- Multiple availability zones for high assurance of uptime
- Both hosted and local management/reporting utilities
- Integration with CloudWatch and CloudFormation for automated creation and real-time performance metrics
- Postgres, in particular, is configured in such a way as to prevent access to the `postgres` user. Considering things like database extensions are installed under this user, if extensions ever need to be removed/modified, you have to rebuild and migrate your entire database!
- Cross-system database migrations are somewhat slow and, in many cases, require a great deal of manual work to ensure data type information (i.e. UUIDs or Integers) is properly set-post migration (otherwise many types are re-cast to strings).
- Our databases are highly reliable, meaning our systems team can focus on other business endeavors rather than maintenance.
- SQL Azure
Our other application components are all hosted within Amazon's systems already, and the tight coupling of RDS with the security groups and virtual private cloud offerings made locking down privacy and security much easier than integrating with an outside provider. The deeper support for Postgres also made it easier to make the decision for Amazon as that database was higher on our wish list.