SlideShare a Scribd company logo
Mike Fowler (mike.fowler@claranet.uk)
Hosted PostgreSQL
●
Senior Site Reliability Engineer in the Public Cloud
Practice of claranet
●
Background in Software Engineering, Systems
Engineering, System & Database Administration
●
Contributed to several open source projects (YAWL,
PostgreSQL & Terraform)
●
Been using PostgreSQL since 7.4
About Me
●
Hosted PostgreSQL
●
Overview of public cloud hosting options
●
Database migration strategies
Overview
●
Your database somewhere else
●
A managed service
– Some providers offer full DBA support
– Cloud providers give only the infrastructure
●
Typically provisioned through an API or GUI
– i.e. a self-service environment
What is hosted PostgreSQL?
●
Reduces adoption costs
●
Installation & configuration is already done
– Generally sane defaults, some tuning often required
●
Needn’t worry about physical servers
●
Opex instead of Capex
●
Most routine DBA tasks are done for you
●
Easier to grow
Benefits of Hosted PostgreSQL
●
Less control
●
Latency
●
Some features are disabled
●
Migrating existing databases is hard
●
Potential for vendor lock-in
●
Resource limits
Drawbacks of Hosted PostgreSQL
●
We’ll look only at Public Cloud offerings
●
Current major offerings
– Amazon Relation Database Service (RDS)
– Heroku
●
Future major offerings
– Amazon Aurora
– Google Cloud SQL
– Microsoft Azure
Hosting Options
●
PostgreSQL 9.3.12 – 9.6.2 supported
●
Numerous instance types
– Costs range from $0.018 to $4.97 per hour
– Select from 1 vCPU up to 32 vCPUs, all 64-bit
– Memory ranges from 1GB to 244GB
●
Flexible storage options
– Choose between SSD or Provisioned IOPS
– Up to 6TB with up to 30,000 IOPS
Amazon RDS
●
High availability multi-availability zone option
– Synchronous replica
– Automatic failover (~2 minutes)
●
Up to 5 read-only replicas (asynchronous replication)
●
Configurable automatic backups with PITR
●
Monthly uptime percentage of 99.95 per instance
– Allows for approximately 22 minutes downtime
Amazon RDS
●
Supports PostgreSQL 9.3, 9.5, 9.6 & 9.6
●
Simpler pricing based on choice of tier ($0-8.5k pcm)
●
Tier dictates resource limits
– Maximum number of rows (Hobby only)
– Cache size (1GB - 240GB)
– Storage limit (64GB - 1TB)
– Connection limit (120 - 500)
– Rollback (4 days – 1 week)
Heroku
●
Fork & Follow
●
Some of your data may end up in the US
– Logs (can be blocked at creation time)
– Snapshots & Dataclips
●
Not possible to replicate out
– No permission for Bucardo, Londiste & Slony
– Remote slave is prohibited
– Only way is dump & restore
Heroku
●
Currently in open preview
– Largely free to use but no SLA
●
Compatible with PostgreSQL 9.6
●
Up to 2x throughput of conventional PostgreSQL
●
Up to 16 read replicas with sub-10ms replica lag
●
Auto-growing filesystem up to 64TB
– Filesystem is shared between 3 availability zones
Amazon Aurora
●
Currently in Beta (no SLA)
●
Only supports PostgreSQL 9.6
●
Only available in Iowa, no replication support
●
Posed to be a serious rival to RDS
– Billing per minute
– Automatic scaling of filesystem
– Similar variety of instance types
●
Minimal extensions but includes PostGIS
Google Cloud SQL
●
Currently in preview (no SLA)
●
Supports PostgreSQL 9.5 & 9.6
●
Replication is seamless
– Automated failover
– PITR
●
Selectable compute units
●
Supports some extensions including PostGIS
Microsoft Azure
●
Dump & Restore
●
Replication failover
●
PITR + Logical decoding
Migration Strategies
●
Simplest strategy
– Perceived as low risk for data loss
– Less “moving parts”
●
Just a pg_dump & pg_restore
●
Downtime is function of database size
Dump & Restore
●
Move historic data ahead of time
– Opportunity to clear out unused data
– Consider introducing partitions
●
Consider moving the dump closer to the target
– e.g. Upload to EC2 instance in the same region as
the RDS instance and run pg_restore from there
●
Over provision resources
– Gives higher throughput during data load
– Downscale once operational
Strategies to Minimise Downtime
●
No one supports external masters!
●
Trigger based replication failover
– Slony, Londiste & Bucardo
●
Can be used on most any version of PostgreSQL
●
Some restrictions apply
– DDL is not supported
– Rows must be uniquely identifiable
Replication Failover
●
Presents some risk to production environment
– Initial overhead of replicating each table
●
Gradually add tables to the configuration to
spread the load
– Per-transaction overhead
●
Write latency to remote slave
●
Heavy write workload could lead to high
replication lag
●
This also works to replicate out of RDS but not Heroku
Replication Failover
●
Most involved approach, least downtime
●
Combines point-in-time recovery with the changes
captured by logical decoding to create a replica
●
Need to be running at least PostgreSQL 9.4 with WAL
level logical and have WAL archiving configured
●
DDL not supported, still need unique rows
●
Recommend barman for managing WAL
http://www.pgbarman.org/
●
Recommend decoder_raw as logical decoding plugin
github.com/michaelpq/pg_plugins/tree/master/decoder_raw
PITR & Logical decoding
1. Create a logical replication slot
SELECT * FROM
pg_create_logical_replication_slot
('logical_slot', 'decoder_raw');
2. Note the transaction ID (catalog_xmin)
SELECT catalog_xmin FROM
pg_replication_slots WHERE slot_name =
‘logical_slot’;
PITR & Logical decoding
3. Perform a barman backup
$ barman backup master
4. Perform a barman PITR
$ barman recover –target-xid
(catalog_xmin - 1) master latest
5. Start database and verify correct recovery
PITR & Logical decoding
5. Perform pg_dump on the readonly barman node
6. Restore to public cloud
7. Read output of logical decoding and write to cloud
PITR & Logical decoding
●
Hosted PostgreSQL gives you high performance
PostgreSQL without the hassle of hardware,
maintenance and configuration
●
Opex instead of Capex
●
Consider the limitations of your intended platform
●
There are multiple options for migration
Summary
Hosted PostgreSQL

More Related Content

PDF
Google Cloud & Your Data
PDF
Elephants in the Cloud
PDF
PostreSQL HA and DR Setup & Use Cases
PPTX
Ansible for large scale deployment
PDF
Postgres-XC: Symmetric PostgreSQL Cluster
PDF
Modern MySQL Monitoring and Dashboards.
PDF
DrupalCampLA 2014 - Drupal backend performance and scalability
PDF
FOSSASIA 2015 - 10 Features your developers are missing when stuck with Propr...
Google Cloud & Your Data
Elephants in the Cloud
PostreSQL HA and DR Setup & Use Cases
Ansible for large scale deployment
Postgres-XC: Symmetric PostgreSQL Cluster
Modern MySQL Monitoring and Dashboards.
DrupalCampLA 2014 - Drupal backend performance and scalability
FOSSASIA 2015 - 10 Features your developers are missing when stuck with Propr...

What's hot (20)

PPTX
Apache Con 2021 Structured Data Streaming
PDF
Meet Spilo, Zalando’s HIGH-AVAILABLE POSTGRESQL CLUSTER - Feike Steenbergen
PDF
2016 jan-pugs-meetup-v9.5-features
PDF
Geographically Distributed PostgreSQL
PDF
Countdown to PostgreSQL v9.5 - Foriegn Tables can be part of Inheritance Tree
PDF
EVCache: Lowering Costs for a Low Latency Cache with RocksDB
PDF
Streaming Replication (Keynote @ PostgreSQL Conference 2009 Japan)
PDF
Beyond Postgres: Interesting Projects, Tools and forks
PPTX
Repository performance tuning
PDF
MariaDB Performance Tuning and Optimization
PPT
MySQL HA Percona cluster @ MySQL meetup Mumbai
PPT
Scaling MySQL using Fabric
PDF
hbaseconasia2017: HBase在Hulu的使用和实践
PDF
PostgreSQL worst practices, version PGConf.US 2017 by Ilya Kosmodemiansky
PDF
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook
PPTX
When is MyRocks good?
PDF
Pulsar - Distributed pub/sub platform
PDF
Redis - The Universal NoSQL Tool
PPTX
Redis Developers Day 2014 - Redis Labs Talks
PPTX
OSGifying the repository
Apache Con 2021 Structured Data Streaming
Meet Spilo, Zalando’s HIGH-AVAILABLE POSTGRESQL CLUSTER - Feike Steenbergen
2016 jan-pugs-meetup-v9.5-features
Geographically Distributed PostgreSQL
Countdown to PostgreSQL v9.5 - Foriegn Tables can be part of Inheritance Tree
EVCache: Lowering Costs for a Low Latency Cache with RocksDB
Streaming Replication (Keynote @ PostgreSQL Conference 2009 Japan)
Beyond Postgres: Interesting Projects, Tools and forks
Repository performance tuning
MariaDB Performance Tuning and Optimization
MySQL HA Percona cluster @ MySQL meetup Mumbai
Scaling MySQL using Fabric
hbaseconasia2017: HBase在Hulu的使用和实践
PostgreSQL worst practices, version PGConf.US 2017 by Ilya Kosmodemiansky
Tech Talk: RocksDB Slides by Dhruba Borthakur & Haobo Xu of Facebook
When is MyRocks good?
Pulsar - Distributed pub/sub platform
Redis - The Universal NoSQL Tool
Redis Developers Day 2014 - Redis Labs Talks
OSGifying the repository
Ad

Similar to Hosted PostgreSQL (20)

PDF
Migrating PostgreSQL to the Cloud
PDF
PostgreSQL Sharding and HA: Theory and Practice (PGConf.ASIA 2017)
PPTX
Keynote - Hosted PostgreSQL: An Objective Look
 
ODP
Pro PostgreSQL, OSCon 2008
PDF
Postgres Vienna DB Meetup 2014
PDF
Pgbr 2013 postgres on aws
PDF
Best Practices & Lessons Learned from Deployment of PostgreSQL
 
PDF
PostgreSQL High Availability in a Containerized World
PDF
Think_your_Postgres_backups_and_recovery_are_safe_lets_talk.pptx
PDF
Out of the box replication in postgres 9.4
PDF
Out of the Box Replication in Postgres 9.4(PgCon)
PDF
Out of the Box Replication in Postgres 9.4(PgCon)
PPTX
Backups
PDF
Oracle to Postgres Migration - part 2
PDF
Out of the box replication in postgres 9.4(pg confus)
PDF
Out of the Box Replication in Postgres 9.4(PgConfUS)
PPTX
OVHcloud – Enterprise Cloud Databases
PPTX
Deep dive into the Rds PostgreSQL Universe Austin 2017
PDF
PGConf.ASIA 2019 Bali - Your Business Continuity Matrix and PostgreSQL's Disa...
PPTX
Amazon RDS for PostgreSQL: What's New and Lessons Learned - NY 2017
Migrating PostgreSQL to the Cloud
PostgreSQL Sharding and HA: Theory and Practice (PGConf.ASIA 2017)
Keynote - Hosted PostgreSQL: An Objective Look
 
Pro PostgreSQL, OSCon 2008
Postgres Vienna DB Meetup 2014
Pgbr 2013 postgres on aws
Best Practices & Lessons Learned from Deployment of PostgreSQL
 
PostgreSQL High Availability in a Containerized World
Think_your_Postgres_backups_and_recovery_are_safe_lets_talk.pptx
Out of the box replication in postgres 9.4
Out of the Box Replication in Postgres 9.4(PgCon)
Out of the Box Replication in Postgres 9.4(PgCon)
Backups
Oracle to Postgres Migration - part 2
Out of the box replication in postgres 9.4(pg confus)
Out of the Box Replication in Postgres 9.4(PgConfUS)
OVHcloud – Enterprise Cloud Databases
Deep dive into the Rds PostgreSQL Universe Austin 2017
PGConf.ASIA 2019 Bali - Your Business Continuity Matrix and PostgreSQL's Disa...
Amazon RDS for PostgreSQL: What's New and Lessons Learned - NY 2017
Ad

More from Mike Fowler (13)

PDF
From Warehouses to Lakes: The Value of Streams
PDF
From Warehouses to Lakes: The Value of Streams
PDF
Getting Started with Machine Learning on AWS
PDF
Building with Firebase
PDF
Reducing Pager Fatigue Using a Serverless ML Bot
PDF
Getting started with Machine Learning
PPTX
Migrating with Debezium
PDF
Leveraging Automation for a Disposable Infrastructure
PDF
Shaping Clouds with Terraform
PDF
Disposable infrastructure
ODP
Fun Things to do with Logical Decoding
ODP
Handling XML and JSON in the Database
ODP
Migrating Rant & Rave to PostgreSQL
From Warehouses to Lakes: The Value of Streams
From Warehouses to Lakes: The Value of Streams
Getting Started with Machine Learning on AWS
Building with Firebase
Reducing Pager Fatigue Using a Serverless ML Bot
Getting started with Machine Learning
Migrating with Debezium
Leveraging Automation for a Disposable Infrastructure
Shaping Clouds with Terraform
Disposable infrastructure
Fun Things to do with Logical Decoding
Handling XML and JSON in the Database
Migrating Rant & Rave to PostgreSQL

Recently uploaded (20)

PDF
Diabetes mellitus diagnosis method based random forest with bat algorithm
PPTX
20250228 LYD VKU AI Blended-Learning.pptx
PDF
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
PPTX
Big Data Technologies - Introduction.pptx
PDF
Building Integrated photovoltaic BIPV_UPV.pdf
PDF
Approach and Philosophy of On baking technology
PDF
Empathic Computing: Creating Shared Understanding
PPTX
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
DOCX
The AUB Centre for AI in Media Proposal.docx
PDF
CIFDAQ's Market Insight: SEC Turns Pro Crypto
PDF
KodekX | Application Modernization Development
PDF
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
PDF
Agricultural_Statistics_at_a_Glance_2022_0.pdf
PPTX
Cloud computing and distributed systems.
PDF
Dropbox Q2 2025 Financial Results & Investor Presentation
PDF
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
PPT
“AI and Expert System Decision Support & Business Intelligence Systems”
PDF
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
PDF
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
PDF
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf
Diabetes mellitus diagnosis method based random forest with bat algorithm
20250228 LYD VKU AI Blended-Learning.pptx
Bridging biosciences and deep learning for revolutionary discoveries: a compr...
Big Data Technologies - Introduction.pptx
Building Integrated photovoltaic BIPV_UPV.pdf
Approach and Philosophy of On baking technology
Empathic Computing: Creating Shared Understanding
VMware vSphere Foundation How to Sell Presentation-Ver1.4-2-14-2024.pptx
The AUB Centre for AI in Media Proposal.docx
CIFDAQ's Market Insight: SEC Turns Pro Crypto
KodekX | Application Modernization Development
Build a system with the filesystem maintained by OSTree @ COSCUP 2025
Agricultural_Statistics_at_a_Glance_2022_0.pdf
Cloud computing and distributed systems.
Dropbox Q2 2025 Financial Results & Investor Presentation
Architecting across the Boundaries of two Complex Domains - Healthcare & Tech...
“AI and Expert System Decision Support & Business Intelligence Systems”
7 ChatGPT Prompts to Help You Define Your Ideal Customer Profile.pdf
TokAI - TikTok AI Agent : The First AI Application That Analyzes 10,000+ Vira...
Blue Purple Modern Animated Computer Science Presentation.pdf.pdf

Hosted PostgreSQL

  • 2. ● Senior Site Reliability Engineer in the Public Cloud Practice of claranet ● Background in Software Engineering, Systems Engineering, System & Database Administration ● Contributed to several open source projects (YAWL, PostgreSQL & Terraform) ● Been using PostgreSQL since 7.4 About Me
  • 3. ● Hosted PostgreSQL ● Overview of public cloud hosting options ● Database migration strategies Overview
  • 4. ● Your database somewhere else ● A managed service – Some providers offer full DBA support – Cloud providers give only the infrastructure ● Typically provisioned through an API or GUI – i.e. a self-service environment What is hosted PostgreSQL?
  • 5. ● Reduces adoption costs ● Installation & configuration is already done – Generally sane defaults, some tuning often required ● Needn’t worry about physical servers ● Opex instead of Capex ● Most routine DBA tasks are done for you ● Easier to grow Benefits of Hosted PostgreSQL
  • 6. ● Less control ● Latency ● Some features are disabled ● Migrating existing databases is hard ● Potential for vendor lock-in ● Resource limits Drawbacks of Hosted PostgreSQL
  • 7. ● We’ll look only at Public Cloud offerings ● Current major offerings – Amazon Relation Database Service (RDS) – Heroku ● Future major offerings – Amazon Aurora – Google Cloud SQL – Microsoft Azure Hosting Options
  • 8. ● PostgreSQL 9.3.12 – 9.6.2 supported ● Numerous instance types – Costs range from $0.018 to $4.97 per hour – Select from 1 vCPU up to 32 vCPUs, all 64-bit – Memory ranges from 1GB to 244GB ● Flexible storage options – Choose between SSD or Provisioned IOPS – Up to 6TB with up to 30,000 IOPS Amazon RDS
  • 9. ● High availability multi-availability zone option – Synchronous replica – Automatic failover (~2 minutes) ● Up to 5 read-only replicas (asynchronous replication) ● Configurable automatic backups with PITR ● Monthly uptime percentage of 99.95 per instance – Allows for approximately 22 minutes downtime Amazon RDS
  • 10. ● Supports PostgreSQL 9.3, 9.5, 9.6 & 9.6 ● Simpler pricing based on choice of tier ($0-8.5k pcm) ● Tier dictates resource limits – Maximum number of rows (Hobby only) – Cache size (1GB - 240GB) – Storage limit (64GB - 1TB) – Connection limit (120 - 500) – Rollback (4 days – 1 week) Heroku
  • 11. ● Fork & Follow ● Some of your data may end up in the US – Logs (can be blocked at creation time) – Snapshots & Dataclips ● Not possible to replicate out – No permission for Bucardo, Londiste & Slony – Remote slave is prohibited – Only way is dump & restore Heroku
  • 12. ● Currently in open preview – Largely free to use but no SLA ● Compatible with PostgreSQL 9.6 ● Up to 2x throughput of conventional PostgreSQL ● Up to 16 read replicas with sub-10ms replica lag ● Auto-growing filesystem up to 64TB – Filesystem is shared between 3 availability zones Amazon Aurora
  • 13. ● Currently in Beta (no SLA) ● Only supports PostgreSQL 9.6 ● Only available in Iowa, no replication support ● Posed to be a serious rival to RDS – Billing per minute – Automatic scaling of filesystem – Similar variety of instance types ● Minimal extensions but includes PostGIS Google Cloud SQL
  • 14. ● Currently in preview (no SLA) ● Supports PostgreSQL 9.5 & 9.6 ● Replication is seamless – Automated failover – PITR ● Selectable compute units ● Supports some extensions including PostGIS Microsoft Azure
  • 15. ● Dump & Restore ● Replication failover ● PITR + Logical decoding Migration Strategies
  • 16. ● Simplest strategy – Perceived as low risk for data loss – Less “moving parts” ● Just a pg_dump & pg_restore ● Downtime is function of database size Dump & Restore
  • 17. ● Move historic data ahead of time – Opportunity to clear out unused data – Consider introducing partitions ● Consider moving the dump closer to the target – e.g. Upload to EC2 instance in the same region as the RDS instance and run pg_restore from there ● Over provision resources – Gives higher throughput during data load – Downscale once operational Strategies to Minimise Downtime
  • 18. ● No one supports external masters! ● Trigger based replication failover – Slony, Londiste & Bucardo ● Can be used on most any version of PostgreSQL ● Some restrictions apply – DDL is not supported – Rows must be uniquely identifiable Replication Failover
  • 19. ● Presents some risk to production environment – Initial overhead of replicating each table ● Gradually add tables to the configuration to spread the load – Per-transaction overhead ● Write latency to remote slave ● Heavy write workload could lead to high replication lag ● This also works to replicate out of RDS but not Heroku Replication Failover
  • 20. ● Most involved approach, least downtime ● Combines point-in-time recovery with the changes captured by logical decoding to create a replica ● Need to be running at least PostgreSQL 9.4 with WAL level logical and have WAL archiving configured ● DDL not supported, still need unique rows ● Recommend barman for managing WAL http://www.pgbarman.org/ ● Recommend decoder_raw as logical decoding plugin github.com/michaelpq/pg_plugins/tree/master/decoder_raw PITR & Logical decoding
  • 21. 1. Create a logical replication slot SELECT * FROM pg_create_logical_replication_slot ('logical_slot', 'decoder_raw'); 2. Note the transaction ID (catalog_xmin) SELECT catalog_xmin FROM pg_replication_slots WHERE slot_name = ‘logical_slot’; PITR & Logical decoding
  • 22. 3. Perform a barman backup $ barman backup master 4. Perform a barman PITR $ barman recover –target-xid (catalog_xmin - 1) master latest 5. Start database and verify correct recovery PITR & Logical decoding
  • 23. 5. Perform pg_dump on the readonly barman node 6. Restore to public cloud 7. Read output of logical decoding and write to cloud PITR & Logical decoding
  • 24. ● Hosted PostgreSQL gives you high performance PostgreSQL without the hassle of hardware, maintenance and configuration ● Opex instead of Capex ● Consider the limitations of your intended platform ● There are multiple options for migration Summary