Eduardo Horai
Implementando o PostgreSQL de maneira escalável e com alta
disponibilidade na nuvem da AWS
AWS Solutions Architect
ehorai@amazon.com
Agenda
•  Introdução Amazon Web Services
•  Serviços base AWS
•  Arquitetura Postgres
•  Questões
O que é computação
nas nuvens?
On demand Pague pelo uso
Self Service Automatizado
On-demand
Rigid On-Premise Resources
Waste
Customer
Dissatisfaction
Actual demand
Predicted Demand
Capacity
Time
Elastic Cloud Resources
Actual demand
Resources scaled to demand
Capacity
Time
VS.	
  
Serviços
Compute	
   Storage	
  
AWS	
  Global	
  Infrastructure	
  
Database	
  
App	
  Services	
  
Deployment	
  &	
  Administra=on	
  
Networking	
  
Infraestrutura Global
Compute	
   Storage	
  
AWS	
  Global	
  Infrastructure	
  
Database	
  
App	
  Services	
  
Deployment	
  &	
  Administra=on	
  
Networking	
  

Regiões
Um conjunto isolado de data centers em uma
determinada geografia
Infraestrutura Global
Compute	
   Storage	
  
AWS	
  Global	
  Infrastructure	
  
Database	
  
App	
  Services	
  
Deployment	
  &	
  Administra=on	
  
Networking	
  

Zonas de Disponibilidade
Projetadas para serem independentes.
Separadas fisicamente, porém com conectividade
rápida dentro da mesma região
Computação
Várias Opções
A partir de $0,02/hora
Elastic Compute Cloud (EC2)
Servidores com recursos computacionais
15 tipos de instâncias(servidores) disponíveis, de micro a cluster
compute
Configurações de CPU, memória disco local
Recurso	
   Detalhes	
  
Flexível	
   Linux	
  e	
  Windows	
  
Escalável	
   Várias	
  configurações	
  de	
  servidor	
  
Imagens	
   Modificações	
  podem	
  ser	
  salvas	
  
como	
  imagens	
  (AMIs)	
  e	
  novas	
  
instancias	
  criadas	
  a	
  par=r	
  destas	
  
Controle	
  total	
   Controle	
  de	
  root	
  e	
  administrador	
  
Segura	
   Controle	
  total	
  do	
  Firewall	
  via	
  
Security	
  Groups	
  
Barata	
   On-­‐demand,	
  Reservada	
  e	
  Spot	
  
Diversos tipos de instâncias EC2
•  Um tipo de instância
para cada tarefa
•  Requisitos de
memória & CPU
–  Infra define sua app
–  App define sua
infra
•  Utilize instâncias
maiores apenas
quando precisa
Storage: S3 & Glacier
•  S3 e Glacier:
–  Seguros
–  Flexíveis
–  Baixo custo
–  Escalável: +1.3 trilhão de objetos
–  Durabilidade: 99.999999999% (11 “9”s)
Amazon	
  
Glacier	
  
Amazon CloudWatch
•  Overview
–  Monitora seus recursos e aplicações
•  AWS Resources: EC2, RDS, EBS, ELB, SQS, SNS, DynamoDB, EMR, Auto Scaling, …
•  Pode publicar métricas próprias (Put API call)
–  Visualização, alarmes, notificações
–  Fácil de utilizar, permite “auto-scale” da sua aplicação
•  Automatação sofisticada
–  Utilize CloudWatch para fazer Auto Scaling dinâmico das suas instâncas EC2
Arquitetura de PostgreSQL
Vantagens de utilizar Postgres no EC2
•  Criar novos bancos a partir de imagem (AMI)
•  Mudar o tipo da instância e crescer facilmente (sem perder
os dados)
•  Desligar temporariamente sua instância (e parar de pagar)
•  Replicação em zonas de disponibilidade diferentes
•  Aumentar storage facilmente
Outros serviços:
•  EBS – storage de disco
–  pode provisionar o IOPS necessário
–  criar snapshots facilmente
•  S3
–  durabilidade para backups
•  CloudWatch
–  monitoramento do banco
Postgres mínimo
•  EC2: postgres instalado
•  EBS: dados do banco (data, WAL,
etc)
•  S3: backups frequentes
Postgres mínimo com alta disponibilidade
•  2x EC2: postgres instalado
•  Multi-AZ: Master host e secundário
em localidades separadas
•  Replicação: WAL Streaming
•  EBS: dados do banco (data, WAL,
etc)
•  S3: backups frequentes a partir do
secundário
•  Hot-standby ou warm-standby
Postgres médio
•  EC2: postgres instalado em
instâncias maiores
•  EBS com P-IOPS e RAID0: dados
do banco (data, WAL, etc)
•  S3: backups frequentes
Postgres large
•  EC2: postgres instalado em
instâncias clusters
•  EBS com P-IOPS e RAID0: dados
do banco (data, WAL, etc)
•  S3: backups frequentes
Postgres large com alta disponibilidade
•  EC2: postgres instalado em instâncias
clusters
•  Multi-AZ: Master host e secundário(s)
em localidades separadas
•  Replicação: WAL Streaming
•  EBS com P-IOPS e RAID0: dados do
banco (data, WAL, etc)
•  S3: backups frequentes a partir do
secundário
•  Hot-standby ou warm-standby
Amazon	
  EC2	
  com	
  
Postgres	
  
Melhora	
  
disponibilidade	
  
Melhora	
  
Throughput	
  
Menor	
  	
  
Latência	
  
Push-­‐BuTon	
  Scaling	
  
Mul=-­‐AZ	
  
Read	
  Replicas	
  
Provisioned	
  IOPS	
  
Read ReplicasPush-Button Scaling Provisioned IOPS
Region
Multi-AZ
Availability
Zone
Availability
Zone
Postgres no EC2: alta disponibilidade e performance
Links
•  Eduardo Horai | ehorai@amazon.com
•  Whitepaper Postgres na AWS:
http://media.amazonwebservices.com/AWS_RDBMS_PostgreSQL.pdf
•  Wal no S3:
https://github.com/wal-e/wal-e
•  aws.amazon.com/ec2
aws.amazon.com/s3
?
Obrigado!

PGDay Campinas 2013 - Implementando o PostgreSQL de maneira escalável e com alta disponibilidade na nuvem da AWS

  • 1.
    Eduardo Horai Implementando oPostgreSQL de maneira escalável e com alta disponibilidade na nuvem da AWS AWS Solutions Architect ehorai@amazon.com
  • 2.
    Agenda •  Introdução AmazonWeb Services •  Serviços base AWS •  Arquitetura Postgres •  Questões
  • 3.
    O que écomputação nas nuvens?
  • 4.
    On demand Paguepelo uso Self Service Automatizado
  • 6.
    On-demand Rigid On-Premise Resources Waste Customer Dissatisfaction Actualdemand Predicted Demand Capacity Time Elastic Cloud Resources Actual demand Resources scaled to demand Capacity Time VS.  
  • 7.
    Serviços Compute   Storage   AWS  Global  Infrastructure   Database   App  Services   Deployment  &  Administra=on   Networking  
  • 8.
    Infraestrutura Global Compute  Storage   AWS  Global  Infrastructure   Database   App  Services   Deployment  &  Administra=on   Networking   Regiões Um conjunto isolado de data centers em uma determinada geografia
  • 9.
    Infraestrutura Global Compute  Storage   AWS  Global  Infrastructure   Database   App  Services   Deployment  &  Administra=on   Networking   Zonas de Disponibilidade Projetadas para serem independentes. Separadas fisicamente, porém com conectividade rápida dentro da mesma região
  • 10.
    Computação Várias Opções A partirde $0,02/hora Elastic Compute Cloud (EC2) Servidores com recursos computacionais 15 tipos de instâncias(servidores) disponíveis, de micro a cluster compute Configurações de CPU, memória disco local Recurso   Detalhes   Flexível   Linux  e  Windows   Escalável   Várias  configurações  de  servidor   Imagens   Modificações  podem  ser  salvas   como  imagens  (AMIs)  e  novas   instancias  criadas  a  par=r  destas   Controle  total   Controle  de  root  e  administrador   Segura   Controle  total  do  Firewall  via   Security  Groups   Barata   On-­‐demand,  Reservada  e  Spot  
  • 11.
    Diversos tipos deinstâncias EC2 •  Um tipo de instância para cada tarefa •  Requisitos de memória & CPU –  Infra define sua app –  App define sua infra •  Utilize instâncias maiores apenas quando precisa
  • 12.
    Storage: S3 &Glacier •  S3 e Glacier: –  Seguros –  Flexíveis –  Baixo custo –  Escalável: +1.3 trilhão de objetos –  Durabilidade: 99.999999999% (11 “9”s) Amazon   Glacier  
  • 13.
    Amazon CloudWatch •  Overview – Monitora seus recursos e aplicações •  AWS Resources: EC2, RDS, EBS, ELB, SQS, SNS, DynamoDB, EMR, Auto Scaling, … •  Pode publicar métricas próprias (Put API call) –  Visualização, alarmes, notificações –  Fácil de utilizar, permite “auto-scale” da sua aplicação •  Automatação sofisticada –  Utilize CloudWatch para fazer Auto Scaling dinâmico das suas instâncas EC2
  • 14.
  • 15.
    Vantagens de utilizarPostgres no EC2 •  Criar novos bancos a partir de imagem (AMI) •  Mudar o tipo da instância e crescer facilmente (sem perder os dados) •  Desligar temporariamente sua instância (e parar de pagar) •  Replicação em zonas de disponibilidade diferentes •  Aumentar storage facilmente
  • 16.
    Outros serviços: •  EBS– storage de disco –  pode provisionar o IOPS necessário –  criar snapshots facilmente •  S3 –  durabilidade para backups •  CloudWatch –  monitoramento do banco
  • 17.
    Postgres mínimo •  EC2:postgres instalado •  EBS: dados do banco (data, WAL, etc) •  S3: backups frequentes
  • 18.
    Postgres mínimo comalta disponibilidade •  2x EC2: postgres instalado •  Multi-AZ: Master host e secundário em localidades separadas •  Replicação: WAL Streaming •  EBS: dados do banco (data, WAL, etc) •  S3: backups frequentes a partir do secundário •  Hot-standby ou warm-standby
  • 19.
    Postgres médio •  EC2:postgres instalado em instâncias maiores •  EBS com P-IOPS e RAID0: dados do banco (data, WAL, etc) •  S3: backups frequentes
  • 20.
    Postgres large •  EC2:postgres instalado em instâncias clusters •  EBS com P-IOPS e RAID0: dados do banco (data, WAL, etc) •  S3: backups frequentes
  • 21.
    Postgres large comalta disponibilidade •  EC2: postgres instalado em instâncias clusters •  Multi-AZ: Master host e secundário(s) em localidades separadas •  Replicação: WAL Streaming •  EBS com P-IOPS e RAID0: dados do banco (data, WAL, etc) •  S3: backups frequentes a partir do secundário •  Hot-standby ou warm-standby
  • 22.
    Amazon  EC2  com   Postgres   Melhora   disponibilidade   Melhora   Throughput   Menor     Latência   Push-­‐BuTon  Scaling   Mul=-­‐AZ   Read  Replicas   Provisioned  IOPS   Read ReplicasPush-Button Scaling Provisioned IOPS Region Multi-AZ Availability Zone Availability Zone Postgres no EC2: alta disponibilidade e performance
  • 23.
    Links •  Eduardo Horai| ehorai@amazon.com •  Whitepaper Postgres na AWS: http://media.amazonwebservices.com/AWS_RDBMS_PostgreSQL.pdf •  Wal no S3: https://github.com/wal-e/wal-e •  aws.amazon.com/ec2 aws.amazon.com/s3
  • 24.
  • 25.