For enterprises in search of a relational database service that will effectively and consistently meet their requirements, Amazon RDS is probably worth a hard look. By making cloud-based relational databases straightforward to set up, operate and scale, Amazon RDS liberates businesses from the time-sink of internal database administration duties—in turn allowing for a clearer focus on product and business development. When it comes to selecting a database engine, organizations on Amazon RDS have a variety of choices, from Amazon’s own Aurora to MySQL, MariaDB, Oracle, Microsoft SQL Server and PostgreSQL.
While each of these Amazon RDS database options have their pros and cons, I’m a fan of PostgreSQL for a number of reasons. PostgreSQL offers a feature-rich open source object-relational database engine that’s backed by 15 years of dedicated community development, a proven architecture and a well-earned reputation for reliability and data integrity. PostgreSQL more than matches MySQL’s speed and feature set, bringing to the database table than a standard SELECT, INSERT, UPDATE functionality. Driven by particularly strong community and third-party support, PostgreSQL regularly releases stable updates that enhance its performance and expand its features—which now include native JSON storage, native arrays and the ability to create custom data types, functions, and deeply customizable extensions to fulfill specific application needs.
Utilizing Amazon RDS and PostgreSQL in tandem provides synergistic benefits, due in no small part to a number of design features intended to provide simplicity. Amazon Web Services includes a one-click interface for creating a PostgreSQL instance in the cloud. Amazon also offers its AWS Database Migration Service (DMS) integrated within the Amazon RDS service, which makes it easy to migrate an existing database over to PostgreSQL and import it as an Amazon RDS instance with zero downtime (and schedule the migration for whatever time a business finds most convenient). Amazon RDS also allows you to scale PostgreSQL databases up and down in the cloud within minutes; provides automatic replication for high availability and redundancy using Amazon Availability Zones; integrates easily with other AWS services such as Amazon Virtual Private Clouds; and makes it simple to set up and restore database backups using automatic snapshots.
Scaling, In a Snap
The pairing of Amazon RDS and PostgreSQL is well-suited to smooth growth as the demands placed on an organizations’ application increase, as the Amazon RDS platform allows you to scale instances both vertically and horizontally as necessary.
Vertical scaling in Amazon RDS can be accomplished as follows:
From the RDS dashboard, select “Modify” from the list of options for your database instance:
Then, choose a new DB instance class:
The process is now complete. Vertical scaling in Amazon RDS is that simple. Vertical scaling also occurs with little or no downtime when running a database using multiple availability zones, since the standby database will be upgraded first and followed by a failover to this upscaled database.
Additionally, Amazon RDS provides an easy method for improving read performance by increasing scale horizontally, using read replicas as read-only copies synchronized to the master database.
From the dashboard, select “Create Read Replica” for the instance:
On the next screen, select the instance size and the database instance name. It’s also possible to deploy read replicas to any region and availability zone:
In just minutes, increasing horizontal scale will be achieved:
In my view, businesses can realize all the benefits of a simple, affordable, and versatile fully-managed database-as-a-service solution by teaming up Amazon RDS and PostgreSQL—one that can be set up in just minutes and scaled to any size a growing organization may come to require.