AWS

17 jan, 2013

Mão na massa – falando sobre Multi-AZ na Amazon Web Services

Publicidade

Esse artigo usa o que nós fizemos em: Auto Scaling e RDS (portanto, este artigo depende da realização prévia de ambos) e guia o usuário para que ele seja capaz de fazer deploy de sua aplicação através de múltiplas Availability Zones. Criando uma arquitetura Multi-AZ, você aumenta a disponibilidade de sua aplicação (versus ter apenas uma única zona de disponibilidade). Para aumentar ainda mais a disponibilidade, você pode usar estratégias de Disaster Recovery e Multi-Regiões na nuvem da AWS. Veja os deck de slides sobre Arquiteturas Cloud na AWS e sobre Estratégias de Disaster Recovery e Multi Regiões na Nuvem da AWS para maiores informações sobre o tópico.

1

Reconfigurando o Auto Scaling para usar Multi-AZ

Para configurar o Auto Scaling para usar multiplas availability zones, você irá precisar usar a opção –availability-zones quando criar ou atualizar um Auto Scaling group. Você deve se lembrar que usamos esta opção com uma única availability zone quando criamos originalmente o aws201-as-group Auto Scaling group no artigo de Auto Scaling. Primeiro, iremos descrever nosso Auto Scaling group para determinar qual AZ ele está usando atualmente:

C:\ec2> as-describe-auto-scaling-groups aws201-as-group

Exemplo de resultado da execução da linha de comando:
AUTO-SCALING-GROUP aws201-as-group aws201-config3 us-east-1a LabELB 2 5 2

INSTANCE i-50a29b60 us-east-1a InService Healthy aws201-config2
INSTANCE i-ec0a0adc us-east-1a InService Healthy aws201-config3
TAG aws201-as-group auto-scaling-group Name AS-Web-Server true

Note que no exemplo aws201-as-group estamos usando apenas a us-east-1a. Para usar outra AZ, nós precisamos atualizar o Auto Scaling group para usar múltiplos AZs (us-east-1b neste exemplo) – tenha certeza de digitar todos os comandos abaixo em apenas uma linha:

C:\ec2> as-update-auto-scaling-group aws201-as-group --availability-zones us-east-1a,us-east-1b
Exemplo de resultado da execução da linha de comando:
OK-Updated AutoScalingGroup

Rebalanceamento automático

Agora que você atualizou seu Auto Scaling group com sucesso, o serviço de Auto Scaling determinará automaticamente que você está sem balanceamento (2 web servers estão rodando na us-east-1a e nenhum web server está rodando na us-east-1b). O Auto Scaling irá corrigir isso automaticamente, lançando uma nova instância na us-east-1b e terminando uma na us-east-1a.

2

Reconfigurando o RDS para Multi-AZ

Configurar o RDS pra usar um multi-AZ é tão simples quanto selecionar uma opção no menu drop-down na interface do console. Na aba RDS, selecione sua instância RDS e clique no botão Modify. Na caixa de diálogo Modify DB Instance, selecione Yes na opçao Multi-AZ Deployment. Caso você tenha modificado o tamanho da sua instância RDS no artigo anterior, use essa oportunidade para voltar o tamnho dela para uma instância small, isso irá fazer com que você economize uma quantidade relevante de dinheiro. E mais uma vez, selecione Apply Immediately.

3

Até este momento, você tem uma base de dados bem robusta e você pode executar funções como backups sem precisar ficar off, porque o backup é feito usando a cópia secundária do banco de dados. Por trás dos panos, o RDS replica os dados sincronamente, e sua aplicação usará a instância primária para as operações SQL. Se o primário falhar, a AWS irá automaticamente promover o segundo servidor para primário, enquanto tenta simultaneamente recuperar o servidor com erro. Sua string de conexão irá continuar a mesma, dessa forma, esse “soluço” não terá nenhum efeito na sua aplicação.

Reconfigurando o ELB para AZ adicionais

O Auto Scaling irá adicionar automaticamente instâncias adicionais ao multiplo AZ, mas você ainda tem que atualizar seu ELB para ser capaz de fazer o multi-AZ. Clique na aba EC2, selecione Load Balancers à esquerda, selecione o seu load balancer LabELB e clique na aba Instances, e finalmente clique no ícone +/- a direita de Availability Zones:

4

Selecione o box relacionado ao AZ que você adicionou ao seu Auto Scaling group e clique “Save”:

5

Testando o deploy Multi-AZ

Você pode testar o deploy no seu multi-AZ, carregando a URL ELB no seu navegador. Pode verificar a localização (AZ) do seu web server esperando alguns minutos para o ELB DNS TTL expire ou você pode conectar diretamente a cada servidor e verificar que eles estão em diferentes AZ’s.

O Multi-AZ RDS é mais dificil de testar porque a AWS faz um fail-over automático. Uma forma de testar o fail-over é reconfigurando o tamanho (tipo) da sua instancia RDS e aplicando as mudanças imediatamente. Nesse caso, o RDS atualizará o backup da instancia RDS para um tipo maior, falhará, e atualizará o novo servidor de backup.

Encerrando os serviços pagos

Por favor, siga as instruções do artigo de Auto Scaling e do artigo de RDS para terminar todos os serviços pagos.

***

Atenção: Reiteramos a importância de você desligar os recursos que você usou apenas para seguir esse tutorial. Não nos responsabilizamos por serviços não desligados.