“Implementando o PostgreSQL de maneira escalável e com alta disponibilidade na nuvem da AWS”
Amazon Web Services (AWS) é uma plataforma de cloud computing flexível, elástica e baixo custo. Utilizar PostgreSQL no Amazon Elastic Compute Cloud (EC2) é ideal para quem está acostumado a operar o banco e precisa da flexibilidade que a nuvem traz. Nesta palestra vamos dar dicas e boas práticas de arquitetura para implementar o PostgreSQL na nuvem de uma maneira escalável, pensando também em durabilidade, persistência, alta disponibilidade e tolerança a falhas.
Eduardo HoraiPalestrante: Eduardo Horai é um dos arquitetos de soluções da Amazon Web Services (AWS) com foco na América Latina. Entre suas funções está a de ajudar clientes e parceiros a desenvolver arquiteturas escaláveis, com alta disponibilidade e tolerante a falhas sobre a nuvem da AWS. Ele é graduado em Ciências da Computação na Unicamp e pós em Inovação e Empreendedorismo na Vlerick Management School, na Bélgica.
--
Palestra apresentada no PGDay Campinas 2013
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 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
11. 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
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
15. 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
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 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
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 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
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