Eduardo Horai
Implementando o PostgreSQL de maneira escalável e com alta disponibilidade na nuvem da AWS
AWS Solutions Architect [email protected]
On-demand
Rigid On-Premise Resources
Waste
Customer Dissatisfaction
Actual demand
Predicted Demand
Cap
acity
Time
Elastic Cloud Resources
Actual demand
Resources scaled to demand
Cap
acity
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
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 Replicas Push-Button Scaling Provisioned IOPS
Region
Multi-AZ
Availability Zone
Availability Zone
Postgres no EC2: alta disponibilidade e performance
Links
• Eduardo Horai | [email protected]
• 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