PostgreSQL has become the preferred open source relational database for many enterprise developers and start-ups, powering leading geospatial and mobile applications. 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 read throughput; and backups for disaster recovery.
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.
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 6TB of storage and from 1,000 IOPS to 30,000 IOPS. Amazon RDS for PostgreSQL also enables you to scale out beyond the capacity of a single database deployment for read-heavy database workloads.
Easy, Managed Deployments
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.
Fast, Predictable Performance
- General Purpose (SSD) – Amazon RDS General Purpose (SSD) storage delivers a consistent baseline of 3 IOPS per provisioned GB and provides the ability to burst up to 3,000 IOPS.
You can convert from Magnetic Storage to General Purpose (SSD) storage; you will encounter a short availability impact when doing so.
To learn more and get started with Amazon RDS General Purpose (SSD) Storage, please refer to the General Purpose (SSD) Storage section of the Amazon RDS User Guide.
- Provisioned IOPS (SSD) – You can provision up to 6TB 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.
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 Provisioned IOPS Storage section of the Amazon RDS User Guide.
Backup & Recovery
- 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 6TB.
- 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. Learn more »
- Read Replicas – This replication feature makes it easy to elastically scale out beyond the capacity constraints of a single DB Instance for read-heavy database workloads. You can create one or more replicas of a given source DB Instance within an AWS Region and serve high-volume application read traffic from multiple copies of your data, thereby increasing aggregate read throughput. Amazon RDS uses PostgreSQL’s native replication to propagate changes made to a source DB Instance to any associated Read Replicas. Note that since Read Replicas leverage standard PostgreSQL replication, they may fall behind their source database instances. Learn more »
Isolation and Security
Amazon RDS allows you to encrypt your PostgreSQL databases using keys you manage through AWS Key Management Service (KMS). On a database instance running with Amazon RDS encryption, data stored at rest in the underlying storage is encrypted, as are its automated backups, read replicas, and snapshots.
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.
PostgreSQL Features Supported
- 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.
- 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.
- pg_stat_statements – The pg_stat_statements extension lets you track execution statistics for all SQL statements executed on the instance, such as userid, exact queries executed, and total time consumed.
- Foreign data wrappers – The postgres_fdw extension lets you access and modify data stored in other PostgreSQL servers as if they were tables within the Amazon RDS for PostgreSQL DB Instance.
- Core PostgreSQL engine features – For a detailed list of PostgreSQL core engine features, please refer here.
Amazon RDS for PostgreSQL is now a HIPAA-eligible service
You can now use Amazon RDS for PostgreSQL databases to build your HIPAA-compliant applications and store healthcare related information, including protected health information (PHI) under an executed Business Associate Agreement (BAA) with AWS. Learn more »