pgday campinas 2013 - implementando o postgresql de maneira escalável e com alta disponibilidade na...

25
Eduardo Horai Implementando o PostgreSQL de maneira escalável e com alta disponibilidade na nuvem da AWS AWS Solutions Architect [email protected]

Upload: pgday-campinas

Post on 21-Jul-2015

56 views

Category:

Software


0 download

TRANSCRIPT

Eduardo Horai

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

AWS Solutions Architect [email protected]

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

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

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 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

?

Obrigado!