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.
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.
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.
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:
Selecione o box relacionado ao AZ que você adicionou ao seu Auto Scaling group e clique “Save”:
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.