PostgreSQL: AWS RDS vs. Aurora vs. Google Cloud SQL

Basic Features

AWS RDS AWS Aurora Google Cloud SQL Latest Version 10.1

9.6 installed in benchmark 9.6 9.6 Secure Connection (SSL,encrypted) YES YES YES Scalable (scale storage and instance types) YES YES YES High Available and Durable YES YES YES Managed YES YES YES Easy to Administer YES YES YES

Pricing

AWS RDS AWS Aurora Google Cloud SQL 2vcpu+15.25G instance $0.25 /hour $0.29 /hour $0.189 /hour

This price is calculated of 2vcpus+15.25G for comparison purpose. But in reality the maximum ram is 13G for 2vcpus. Storage $0.125 /GB $0.10 /GB $0.17 /GB Disk I/O Free 3 IOPS /GB storage $0.20 /1 million requests Free 30 IOPS /GB storage

Benchmarks

Conditions

AWS RDS AWS Aurora Google Cloud SQL Instance type r4.large(2 vCPUs + 15.25G) r4.large(2 vCPUs + 15.25G) High memory(2 vCPUs + 13G) Region us-west-2a us-west-2a us-west1 Client Side (running pgbench) EC2 instance in us-west-2a EC2 instance in us-west-2a Google Compute in us-west1 Installed PG version 9.6 9.6 9.6 Storage Encryption enabled enabled enabled Multi-AZ/ Replication/ High-availability Disabled Disabled Disabled

Benchmark details

pgbench -i -s 10 test

[email protected]:~$ pgbench -c 10 -j 10 -t 500 test -h testrds.*.us-west-2.rds.amazonaws.com -U test Password: starting vacuum...end. transaction type: scaling factor: 10 query mode: simple number of clients: 10 number of threads: 10 number of transactions per client: 500 number of transactions actually processed: 5000/5000 latency average = 5.745 ms tps = 1740.77029 (including connections establishing) tps = 1774.006224 (excluding connections establishing)

[email protected]:~$ pgbench -c 10 -j 10 -t 500 test -h test.*.us-west-2.rds.amazonaws.com -U test Password: starting vacuum...end. transaction type: scaling factor: 10 query mode: simple number of clients: 10 number of threads: 10 number of transactions per client: 500 number of transactions actually processed: 5000/5000 latency average = 13.045 ms tps = 766.564305 (including connections establishing) tps = 774.188096 (excluding connections establishing)

[email protected]:~$ pgbench -c 10 -j 10 -t 500 test -h 35.203.*.* -U postgres Password: starting vacuum...end. transaction type: scaling factor: 10 query mode: simple number of clients: 10 number of threads: 10 number of transactions per client: 500 number of transactions actually processed: 5000/5000 latency average = 7.084 ms tps = 1411.595534 (including connections establishing) tps = 1422.435397 (excluding connections establishing)

Note: the following table lists Single zone pricing. The pricing of instance and storage will simplewhen using RDS with multi-AZ, using Aurora with a replica, and using Google SQL with high availability.Import data:AWS RDS:AWS Aurora:Google Cloud SQL: