Amazon RDS makes it easy to set up, operate, and scale PostgreSQL deployments in the cloud. With Amazon RDS, you can deploy scalable PostgreSQL deployments in minutes with cost-efficient and resizable hardware capacity. Amazon RDS manages complex and time-consuming administrative tasks such as PostgreSQL software installation and upgrades, storage management, replication for high availability and back-ups for disaster recovery. With just a few clicks in the AWS Management Console, you can deploy a PostgreSQL database with automatically configured database parameters for optimal performance. Amazon RDS for PostgreSQL database instances can be provisioned with either standard storage or Provisioned IOPS storage. Once provisioned, you can scale from 5GB to 3TB of storage and from 1,000 IOPS to 30,000 IOPS.
Over the past few years, PostgreSQL has become the preferred open source relational database for many enterprise developers and start-ups, powering leading geospatial and mobile applications. Amazon RDS for PostgreSQL gives you access to the capabilities of a familiar PostgreSQL database engine. This means that the code, applications, and tools you already use today with your existing databases can be used with Amazon RDS.
You can now take advantage of the R3 instance type with Amazon RDS. R3 instances are optimized for memory-intensive applications, have the lowest cost per GiB of RAM among Amazon RDS instance types, and are recommended for high performance database workloads. Learn more »
You can deploy production PostgreSQL applications using the Multi-AZ deployment option for high availability, and Amazon RDS will operate a synchronous stand-by replica with an automated fail-over mechanism. Learn More.
Amazon RDS for PostgreSQL is designed for developers or businesses who require the full features and capabilities of a PostgreSQL database, or who wish to migrate existing applications and tools that utilize a PostgreSQL database. Since Amazon RDS for PostgreSQL provides you direct access to familiar PostgreSQL database software running on your own Amazon RDS DB Instance, your applications should work seamlessly.
- Pre-configured Parameters – Amazon RDS for PostgreSQL deployments are pre-configured with a sensible set of parameters and settings appropriate for the DB Instance class you have selected. You can simply launch a PostgreSQL Instance and connect your application within minutes without additional configuration. If you desire additional control, you can achieve it via DB Parameter Groups.
- Monitoring and Metrics –Amazon RDS provides Amazon CloudWatch metrics for you DB Instance deployments at no additional charge. You can use the AWS Management Console to view key operational metrics for your DB Instance deployments, including compute/memory/storage capacity utilization, I/O activity, and DB Instance connections.
- DB Event Notifications –Amazon RDS provides Amazon SNS notifications via email or SMS for your DB Instance deployments. You can use the AWS Management Console or the Amazon RDS APIs to subscribe to over 40 different DB events associated with your Amazon RDS deployments.
- Automatic Software Patching – Amazon RDS will make sure that the PostgreSQL software powering your deployment stays up-to-date with the latest patches. You can exert optional control over when and if your DB Instance is patched via DB Engine Version Management.
- Provisioned IOPS – You can provision up to 3TB storage and 30,000 IOPS per database instance. For a workload with 50% writes and 50% reads running on a cr1.8xlarge instance, you can realize over 25,000 IOPS for PostgreSQL. However, by provisioning more than this limit, you may be able to achieve lower latency and higher throughput. Your actual realized IOPS may vary from the amount you provisioned based on your database workload, instance type, and database engine choice. Refer to the Factors That Affect Realized IOPS section of the Amazon RDS User Guide to learn more.
You can convert from standard storage to Provisioned IOPS storage and get consistent throughput and low I/O latencies. You will encounter a short availability impact when doing so. You can independently scale IOPS (in increments of 1000) and storage on-the-fly with zero downtime. The ratio of IOPS provisioned to the storage requested (in GB) should be between 3 and 10. For example, for a database instance with 1000 GB of storage, you can provision from 3,000 to 10,000 IOPS. You can scale the IOPS up or down depending on factors such as seasonal variability of traffic to your applications.
To learn more and get started with Amazon RDS Provisioned IOPS, please refer to the Working with Provisioned IOPS storage section of the Amazon RDS User Guide.
- Automated Backups – Turned on by default, the automated backup feature of Amazon RDS enables point-in-time recovery for your DB Instance. Amazon RDS will backup your database and transaction logs and store both for a user-specified retention period. This allows you to restore your DB Instance to any second during your retention period, up to the last five minutes. Your automatic backup retention period can be configured to up to thirty five days.
- DB Snapshots – DB Snapshots are user-initiated backups of your DB Instance. These full database backups will be stored by Amazon RDS until you explicitly delete them. You can create a new DB Instance from a DB Snapshot whenever you desire. You can also copy DB Snapshots across AWS Regions for geographical migration or disaster recovery use cases.
- DB Instance Class – Using the Amazon RDS APIs or a few clicks of the AWS Management Console, you can scale the compute and memory resources powering your deployment up or down. Scaling operations typically complete within a handful of minutes.
- Storage and IOPS – As your storage requirements grow you can provision additional storage on-the-fly with zero downtime. If you are using RDS Provisioned IOPS, you can also scale the throughput of your DB Instance by specifying the IOPS rate from 1,000 IOPS to 30,000 IOPS in 1,000 IOPS increments and storage from 100GB and 3TB.
- Multi-AZ Deployments – This deployment option for your production DB Instances enhances database availability while protecting your latest database updates against unplanned outages. When you create or modify your DB Instance to run as a Multi-AZ deployment, Amazon RDS will automatically provision and manage a “standby” replica in a different Availability Zone (independent infrastructure in a physically separate location). Database updates are made concurrently on the primary and standby resources to prevent replication lag. In the event of planned database maintenance, DB Instance failure, or an Availability Zone failure, Amazon RDS will automatically failover to the up-to-date standby so that database operations can resume quickly without administrative intervention. Prior to failover you cannot directly access the standby, and it cannot be used to serve read traffic.
Using Amazon VPC, you can isolate your DB Instances in your own virtual network, and connect to your existing IT infrastructure using industry-standard encrypted IPSec VPN. To learn more about Amazon RDS in VPC, refer to the Amazon RDS User Guide. In addition, using Amazon RDS, you can configure firewall settings and control network access to your DB Instances.
- PostGIS – PostGIS is a spatial database extender for PostgreSQL object-relational database. It adds support for geographic objects allowing you to run location queries to be run in SQL.
- Language Extensions – PostgreSQL allows procedural languages to be loaded into the database through extensions. Three language extensions are included with PostgreSQL to support Perl, pgSQL and Tcl .
- Full Text Search Dictionaries – PostgreSQL supports Full Text Searching that provides the capability to identify natural-language documents that satisfy a query, and optionally to sort them by relevance to the query. Dictionaries, besides improving search quality, normalization and removal of stop words also improve performance of queries.
- HStore, JSON Data Types – PostgreSQL includes support for ‘JSON’ data type and two JSON functions. These allow return of JSON directly from the database server. PostgreSQL has an extension that implements the ‘hstore’ data type for storing sets of key/value pairs within a single PostgreSQL value.
- Core PostgreSQL engine features – For a detailed list of PostgreSQL core engine features, please refer here.