What is Amazon RDS and what are its top alternatives?
Top Alternatives to Amazon RDS
- Amazon Redshift
It is optimized for data sets ranging from a few hundred gigabytes to a petabyte or more and costs less than $1,000 per terabyte per year, a tenth the cost of most traditional data warehousing solutions. ...
- Apache Aurora
Apache Aurora is a service scheduler that runs on top of Mesos, enabling you to run long-running services that take advantage of Mesos' scalability, fault-tolerance, and resource isolation. ...
- MySQL
The MySQL software delivers a very fast, multi-threaded, multi-user, and robust SQL (Structured Query Language) database server. MySQL Server is intended for mission-critical, heavy-load production systems as well as for embedding into mass-deployed software. ...
- Oracle
Oracle Database is an RDBMS. An RDBMS that implements object-oriented features such as user-defined types, inheritance, and polymorphism is called an object-relational database management system (ORDBMS). Oracle Database has extended the relational model to an object-relational model, making it possible to store complex business models in a relational database. ...
- Heroku Postgres
Heroku Postgres provides a SQL database-as-a-service that lets you focus on building your application instead of messing around with database management. ...
- Google Cloud SQL
Run the same relational databases you know with their rich extension collections, configuration flags and developer ecosystem, but without the hassle of self management. ...
- Azure SQL Database
It is the intelligent, scalable, cloud database service that provides the broadest SQL Server engine compatibility and up to a 212% return on investment. It is a database service that can quickly and efficiently scale to meet demand, is automatically highly available, and supports a variety of third party software. ...
- PostgreSQL
PostgreSQL is an advanced object-relational database management system that supports an extended subset of the SQL standard, including transactions, foreign keys, subqueries, triggers, user-defined types and functions. ...
Amazon RDS alternatives & related posts
- Data Warehousing39
- Scalable27
- SQL17
- Backed by Amazon14
- Encryption5
- Cheap and reliable1
- Isolation1
- Best Cloud DW Performance1
- Fast columnar storage1
related Amazon Redshift posts

























Back in 2014, I was given an opportunity to re-architect SmartZip Analytics platform, and flagship product: SmartTargeting. This is a SaaS software helping real estate professionals keeping up with their prospects and leads in a given neighborhood/territory, finding out (thanks to predictive analytics) who's the most likely to list/sell their home, and running cross-channel marketing automation against them: direct mail, online ads, email... The company also does provide Data APIs to Enterprise customers.
I had inherited years and years of technical debt and I knew things had to change radically. The first enabler to this was to make use of the cloud and go with AWS, so we would stop re-inventing the wheel, and build around managed/scalable services.
For the SaaS product, we kept on working with Rails as this was what my team had the most knowledge in. We've however broken up the monolith and decoupled the front-end application from the backend thanks to the use of Rails API so we'd get independently scalable micro-services from now on.
Our various applications could now be deployed using AWS Elastic Beanstalk so we wouldn't waste any more efforts writing time-consuming Capistrano deployment scripts for instance. Combined with Docker so our application would run within its own container, independently from the underlying host configuration.
Storage-wise, we went with Amazon S3 and ditched any pre-existing local or network storage people used to deal with in our legacy systems. On the database side: Amazon RDS / MySQL initially. Ultimately migrated to Amazon RDS for Aurora / MySQL when it got released. Once again, here you need a managed service your cloud provider handles for you.
Future improvements / technology decisions included:
Caching: Amazon ElastiCache / Memcached CDN: Amazon CloudFront Systems Integration: Segment / Zapier Data-warehousing: Amazon Redshift BI: Amazon Quicksight / Superset Search: Elasticsearch / Amazon Elasticsearch Service / Algolia Monitoring: New Relic
As our usage grows, patterns changed, and/or our business needs evolved, my role as Engineering Manager then Director of Engineering was also to ensure my team kept on learning and innovating, while delivering on business value.
One of these innovations was to get ourselves into Serverless : Adopting AWS Lambda was a big step forward. At the time, only available for Node.js (Not Ruby ) but a great way to handle cost efficiency, unpredictable traffic, sudden bursts of traffic... Ultimately you want the whole chain of services involved in a call to be serverless, and that's when we've started leveraging Amazon DynamoDB on these projects so they'd be fully scalable.
Looker , Stitch , Amazon Redshift , dbt
We recently moved our Data Analytics and Business Intelligence tooling to Looker . It's already helping us create a solid process for reusable SQL-based data modeling, with consistent definitions across the entire organizations. Looker allows us to collaboratively build these version-controlled models and push the limits of what we've traditionally been able to accomplish with analytics with a lean team.
For Data Engineering, we're in the process of moving from maintaining our own ETL pipelines on AWS to a managed ELT system on Stitch. We're also evaluating the command line tool, dbt to manage data transformations. Our hope is that Stitch + dbt will streamline the ELT bit, allowing us to focus our energies on analyzing data, rather than managing it.
Apache Aurora
related Apache Aurora posts
Docker containers on Mesos run their microservices with consistent configurations at scale, along with Aurora for long-running services and cron jobs.
- Sql796
- Free674
- Easy557
- Widely used527
- Open source487
- High availability180
- Cross-platform support160
- Great community104
- Secure78
- Full-text indexing and searching75
- Fast, open, available25
- SSL support15
- Reliable14
- Robust13
- Enterprise Version8
- Easy to set up on all platforms7
- NoSQL access to JSON data type2
- Relational database1
- Easy, light, scalable1
- Sequel Pro (best SQL GUI)1
- Replica Support1
- Owned by a company with their own agenda15
- Can't roll back schema changes2
related MySQL posts
We've been using PostgreSQL since the very early days of Zulip, but we actually didn't use it from the beginning. Zulip started out as a MySQL project back in 2012, because we'd heard it was a good choice for a startup with a wide community. However, we found that even though we were using the Django ORM for most of our database access, we spent a lot of time fighting with MySQL. Issues ranged from bad collation defaults, to bad query plans which required a lot of manual query tweaks.
We ended up getting so frustrated that we tried out PostgresQL, and the results were fantastic. We didn't have to do any real customization (just some tuning settings for how big a server we had), and all of our most important queries were faster out of the box. As a result, we were able to delete a bunch of custom queries escaping the ORM that we'd written to make the MySQL query planner happy (because postgres just did the right thing automatically).
And then after that, we've just gotten a ton of value out of postgres. We use its excellent built-in full-text search, which has helped us avoid needing to bring in a tool like Elasticsearch, and we've really enjoyed features like its partial indexes, which saved us a lot of work adding unnecessary extra tables to get good performance for things like our "unread messages" and "starred messages" indexes.
I can't recommend it highly enough.
Our most popular (& controversial!) article to date on the Uber Engineering blog in 3+ yrs. Why we moved from PostgreSQL to MySQL. In essence, it was due to a variety of limitations of Postgres at the time. Fun fact -- earlier in Uber's history we'd actually moved from MySQL to Postgres before switching back for good, & though we published the article in Summer 2016 we haven't looked back since:
The early architecture of Uber consisted of a monolithic backend application written in Python that used Postgres for data persistence. Since that time, the architecture of Uber has changed significantly, to a model of microservices and new data platforms. Specifically, in many of the cases where we previously used Postgres, we now use Schemaless, a novel database sharding layer built on top of MySQL (https://eng.uber.com/schemaless-part-one/). In this article, we’ll explore some of the drawbacks we found with Postgres and explain the decision to build Schemaless and other backend services on top of MySQL:
Oracle
- Reliable42
- Enterprise32
- High Availability15
- Hard to maintain5
- Expensive5
- Maintainable4
- Hard to use3
- High complexity3
- Expensive13
related Oracle posts
Hi. We are planning to develop web, desktop, and mobile app for procurement, logistics, and contracts. Procure to Pay and Source to pay, spend management, supplier management, catalog management. ( similar to SAP Ariba, gap.com, coupa.com, ivalua.com vroozi.com, procurify.com
We got stuck when deciding which technology stack is good for the future. We look forward to your kind guidance that will help us.
We want to integrate with multiple databases with seamless bidirectional integration. What APIs and middleware available are best to achieve this? SAP HANA, Oracle, MySQL, MongoDB...
ASP.NET / Node.js / Laravel. ......?
Please guide us
Heroku Postgres
- Easy to setup29
- Follower databases3
- Dataclips for sharing queries3
- Extremely reliable3
- Super expensive2
related Heroku Postgres posts
PostgreSQL Heroku Heroku Postgres Node.js Knex.js
Last week we rolled out a simple patch that decimated the response time of a Postgres query crucial to Checkly. It quite literally went from an average of ~100ms with peaks to 1 second to a steady 1ms to 10ms.
However, that patch was just the last step of a longer journey:
I looked at what API endpoints were using which queries and how their response time grew over time. Specifically the customer facing API endpoints that are directly responsible for rendering the first dashboard page of the product are crucial.
I looked at the Heroku metrics such as those reported by
heroku pg:outlier
and cross references that with "slowest response time" statistics.I reproduced the production situation as best as possible on a local development machine and test my hypothesis that an composite index on a
uuid
field and atimestampz
field would reduce response times.
This method secured the victory and we rolled out a new index last week. Response times plummeted. Read the full story in the blog post.
I could spin up an Amazon EC2 instance and install PostgreSQL myself, review latest configuration best practices, sort Amazon EBS storage for data, set up a snapshot process etc.
Alternatively I could use Amazon RDS, Amazon RDS for PostgreSQL or Heroku Postgres and have most of that work handled for me, by a team of world experts...
Google Cloud SQL
- Fully managed13
- Backed by Google10
- SQL10
- Flexible4
- Encryption at rest and transit3
- Automatic Software Patching3
- Replication across multiple zone by default3
related Google Cloud SQL posts
We use Go for the first-off due to our knowledge of it. Second off, it's highly performant and optimized for scalability. We run it using dockerized containers for our backend REST APIs.
For Frontend, we use React with Next.js at vercel. We use NextJS here mostly due to our need for Server Side Rendering and easier route management.
For Database, we use MySQL as it is first-off free and always has been in use with us. We use Google Cloud SQL from GCP that manages its storage and versions along with HA.
All stacks are free to use and get the best juice out of the system. We also use Redis for caching for enterprise-grade apps where data retrieval latency matters the most.
As far as the backend goes, we first had to decide which database will power most of Daily services. Considering relational databases vs document datbases, we decided that the relational model is a better fit for Daily as we have a lot of connections between the different entities. At the time MySQL was the only service available on Google Cloud SQL so this was out choice. In terms of #backend development Node.js powers most of our services, thanks to its amazing ecosystem there are a lot of modules publicly available to shorten the development time. Go is for the light services which are all about performance and delivering quickly the response, such as our redirector service.
- Managed4
- Secure3
- Scalable2
related Azure SQL Database posts
- Relational database754
- High availability508
- Enterprise class database435
- Sql379
- Sql + nosql303
- Great community171
- Easy to setup145
- Heroku130
- Secure by default128
- Postgis112
- Supports Key-Value48
- Great JSON support46
- Cross platform32
- Extensible30
- Replication26
- Triggers24
- Rollback22
- Multiversion concurrency control21
- Open source20
- Heroku Add-on17
- Stable, Simple and Good Performance14
- Powerful13
- Lets be serious, what other SQL DB would you go for?12
- Good documentation9
- Scalable7
- Intelligent optimizer7
- Reliable6
- Transactional DDL6
- Modern6
- Free5
- One stop solution for all things sql no matter the os5
- Relational database with MVCC4
- Faster Development3
- Full-Text Search3
- Developer friendly3
- Excellent source code2
- search2
- Great DB for Transactional system or Application2
- Full-text1
- Free version1
- Open-source1
- Text1
- Table/index bloatings9
related PostgreSQL posts









Recently we were looking at a few robust and cost-effective ways of replicating the data that resides in our production MongoDB to a PostgreSQL database for data warehousing and business intelligence.
We set ourselves the following criteria for the optimal tool that would do this job: - The data replication must be near real-time, yet it should NOT impact the production database - The data replication must be horizontally scalable (based on the load), asynchronous & crash-resilient
Based on the above criteria, we selected the following tools to perform the end to end data replication:
We chose MongoDB Stitch for picking up the changes in the source database. It is the serverless platform from MongoDB. One of the services offered by MongoDB Stitch is Stitch Triggers. Using stitch triggers, you can execute a serverless function (in Node.js) in real time in response to changes in the database. When there are a lot of database changes, Stitch automatically "feeds forward" these changes through an asynchronous queue.
We chose Amazon SQS as the pipe / message backbone for communicating the changes from MongoDB to our own replication service. Interestingly enough, MongoDB stitch offers integration with AWS services.
In the Node.js function, we wrote minimal functionality to communicate the database changes (insert / update / delete / replace) to Amazon SQS.
Next we wrote a minimal micro-service in Python to listen to the message events on SQS, pickup the data payload & mirror the DB changes on to the target Data warehouse. We implemented source data to target data translation by modelling target table structures through SQLAlchemy . We deployed this micro-service as AWS Lambda with Zappa. With Zappa, deploying your services as event-driven & horizontally scalable Lambda service is dumb-easy.
In the end, we got to implement a highly scalable near realtime Change Data Replication service that "works" and deployed to production in a matter of few days!
We've been using PostgreSQL since the very early days of Zulip, but we actually didn't use it from the beginning. Zulip started out as a MySQL project back in 2012, because we'd heard it was a good choice for a startup with a wide community. However, we found that even though we were using the Django ORM for most of our database access, we spent a lot of time fighting with MySQL. Issues ranged from bad collation defaults, to bad query plans which required a lot of manual query tweaks.
We ended up getting so frustrated that we tried out PostgresQL, and the results were fantastic. We didn't have to do any real customization (just some tuning settings for how big a server we had), and all of our most important queries were faster out of the box. As a result, we were able to delete a bunch of custom queries escaping the ORM that we'd written to make the MySQL query planner happy (because postgres just did the right thing automatically).
And then after that, we've just gotten a ton of value out of postgres. We use its excellent built-in full-text search, which has helped us avoid needing to bring in a tool like Elasticsearch, and we've really enjoyed features like its partial indexes, which saved us a lot of work adding unnecessary extra tables to get good performance for things like our "unread messages" and "starred messages" indexes.
I can't recommend it highly enough.