Práticas recomendadas ao configurar a mudança automática de zona - Amazon Application Recovery Controller (ARC)

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Práticas recomendadas ao configurar a mudança automática de zona

Esteja ciente das seguintes práticas recomendadas e considerações ao ativar a mudança automática de zona no Controlador de Recuperação de Aplicações (ARC) da Amazon.

A mudança automática de zona inclui dois tipos de mudanças de tráfego: mudanças automáticas e mudanças de zona para execução prática.

  • Com um deslocamento automático, AWS ajuda a reduzir seu tempo de recuperação ao afastar o tráfego de recursos do aplicativo de uma zona de disponibilidade durante eventos, em seu nome.

  • Com as execuções práticas, o ARC inicia uma mudança de zona em seu nome ou você inicia uma execução prática de mudança de zona. O turno zonal executado AWS na prática transfere o tráfego de uma zona de disponibilidade para um recurso e vice-versa, em uma cadência semanal. As execuções práticas ajudam você a garantir que tenha aumentado a escala vertical de capacidade suficiente das zonas de disponibilidade em uma região para que a aplicação tolere a perda de uma zona de disponibilidade.

Há várias práticas recomendadas e considerações a serem lembradas quando se fala em mudanças automáticas e execuções práticas. Analise os tópicos a seguir antes de habilitar a mudança automática de zona ou configurar execuções práticas para um recurso.

Tópicos

Limite o tempo em que os clientes permanecem conectados aos seus endpoints

Quando o Controlador de Recuperação de Aplicações (ARC) da Amazon desvia o tráfego de uma deficiência, por exemplo, usando a mudança de zona ou a mudança automática de zona, o mecanismo que o ARC usa para mover o tráfego da sua aplicação é uma atualização de DNS. Uma atualização de DNS faz com que todas as novas conexões sejam direcionadas para fora do local comprometido. No entanto, os clientes com conexões abertas preexistentes podem continuar fazendo solicitações com base no local comprometido até que os clientes se reconectem. Para garantir uma recuperação rápida, recomendamos que você limite a quantidade de tempo que os clientes permanecem conectados aos seus endpoints.

Se você usar um Application Load Balancer, poderá usar a opção keepalive para configurar por quanto tempo as conexões continuarão. Sugerimos que você reduza o valor keepalive para estar alinhado à meta de tempo de recuperação da aplicação, por exemplo, 300 segundos. Ao escolher o tempo de keepalive, considere que esse valor é uma compensação entre se reconectar com mais frequência de modo geral, o que pode afetar a latência, e mover com mais rapidez todos os clientes para fora de uma AZ ou região comprometida.

Para obter mais informações sobre como definir a opção keepalive para o Application Load Balancer, consulte a duração da manutenção de atividade do cliente HTTP no Guia do usuário do Application Load Balancer.

Ajuste previamente sua capacidade de recursos e teste a mudança de tráfego

Ao AWS transferir o tráfego de uma zona de disponibilidade para uma mudança zonal ou automática, é importante que as demais zonas de disponibilidade possam atender ao aumento das taxas de solicitação do seu recurso. Esse padrão é conhecido como estabilidade estática. Para obter mais informações, consulte o whitepaper Estabilidade estática usando zonas de disponibilidade na Amazon Builders' Library.

Por exemplo, se uma aplicação precisar de 30 instâncias para atender os clientes, você deverá provisionar 15 instâncias em três zonas de disponibilidade, totalizando 45 instâncias. Ao fazer isso, quando o tráfego AWS sai de uma zona de disponibilidade — com um deslocamento automático ou durante uma execução prática — ainda AWS pode atender aos clientes do seu aplicativo com o total restante de 30 instâncias, em duas zonas de disponibilidade.

O recurso de deslocamento automático zonal no ARC ajuda você a se recuperar rapidamente de AWS eventos em uma zona de disponibilidade quando você tem um aplicativo com recursos pré-escalados para funcionar normalmente com a perda de uma zona de disponibilidade. Antes de habilitar a mudança automática de zona para um recurso, ajuste a escala de capacidade do recurso em todas as zonas de disponibilidade configuradas em uma Região da AWS. Depois, inicie as mudanças de zona para o recurso a fim de testar se a aplicação ainda funciona normalmente quando o tráfego é transferido para fora de uma zona de disponibilidade.

Depois de realizar testes com mudanças de zona, habilite a mudança automática de zona e configure execuções práticas para os recursos da aplicação. Realize suas próprias execuções práticas sob demanda para garantir que a configuração seja escalada corretamente. As execuções práticas regulares com mudança automática de zona ajudam você a garantir, continuamente, que a capacidade ainda seja dimensionada adequadamente. Com capacidade suficiente em todas as zonas de disponibilidade, a aplicação pode continuar atendendo os clientes, sem interrupção, durante uma mudança automática.

Para obter mais informações sobre como iniciar uma mudança de zona para um recurso, consulte Mudança de zona no ARC.

Conheça os tipos de recursos e restrições

A mudança automática de zona oferece suporte à transferência do tráfego para fora de uma zona de disponibilidade para todos os recursos que são compatíveis com a mudança de zona. Em alguns cenários de recursos específicos, a mudança automática de zona não transfere o tráfego para fora de uma zona de disponibilidade para uma mudança automática.

Por exemplo, se os grupos de destino do balanceador de carga nas zonas de disponibilidade não tiverem nenhuma instância ou se nenhuma das instâncias estiverem íntegras, o balanceador de carga estará em um estado de falha aberta. Se AWS iniciar um deslocamento automático para um balanceador de carga nesse cenário, um deslocamento automático não alterará quais zonas de disponibilidade o balanceador de carga usa porque o balanceador de carga já está em um estado de falha aberta. Esse comportamento é esperado. O deslocamento automático não pode causar problemas de integridade em uma zona de disponibilidade e transferir o tráfego para outras zonas de disponibilidade em Região da AWS caso de falha na abertura de todas as zonas de disponibilidade (não íntegras).

Para conferir detalhes sobre os recursos compatíveis, incluindo todos os requisitos e exceções que você deve conhecer, consulte Recursos compatíveis.

Especifique alarmes para execuções práticas

Você deve configurar pelo menos um tipo de alarme (um alarme de resultado) para execuções práticas com mudança automática de zona. Se desejar, você também pode configurar um segundo tipo de alarme (os alarmes de bloqueio).

Ao considerar os CloudWatch alarmes que você configura para execuções práticas do seu recurso, lembre-se do seguinte:

  • É necessário configurar pelo menos um alarme de resultado para uma configuração de execução prática. Para alarmes de resultados, recomendamos que você configure CloudWatch os alarmes para que entrem em um ALARM estado em que as métricas do recurso ou do seu aplicativo indiquem que o deslocamento do tráfego para fora da Zona de Disponibilidade afeta negativamente o desempenho. Por exemplo, você pode determinar um limite para as taxas de solicitação do recurso, depois configurar um alarme para entrar em um estado ALARM quando o limite for excedido. Você é responsável por configurar um alarme apropriado que faça com que a AWS encerre a execução prática e retorne o resultado FAILED.

  • Recomendamos que você siga o AWS Well Architected Framework, que recomenda a implementação de indicadores-chave de desempenho (KPIs) como CloudWatch alarmes. Se você fizer isso, poderá usar esses alarmes para criar um alarme composto para ser usado como gatilho de segurança, a fim de evitar que as execuções práticas sejam iniciadas caso elas possam fazer com que a aplicação perca um KPI. Quando o alarme não estiver mais no estado ALARM, o ARC iniciará as execuções práticas na próxima vez que uma execução prática estiver programada para o recurso.

  • Para alarmes de bloqueio de treinos, se você optar por configurar um (ou mais), poderá optar por rastrear métricas específicas usadas para indicar que não deseja que um AWS treino comece, por exemplo, quando um alarme indica que há um incidente em andamento.

  • Para alarmes de execução prática, você especifica o Amazon Resource Name (ARN) para cada alarme, então você deve primeiro configurar o alarme na Amazon. CloudWatch Os CloudWatch alarmes que você especifica podem ser alarmes compostos, para permitir que você inclua várias métricas e verificações para seu aplicativo e recurso que podem fazer com que o alarme entre em um estado. ALARM Ou você pode configurar alarmes separados e, em seguida, especificar mais de um alarme de cada tipo para sua configuração de execução prática. Para obter mais informações, consulte Combinação de alarmes no Guia do CloudWatch usuário da Amazon.

  • Certifique-se de que os CloudWatch alarmes que você especifica para os treinos estejam na mesma região do recurso para o qual você está configurando um treino.

Avalie os resultados das execuções práticas

O ARC reporta um resultado para cada execução prática. Após uma execução prática, avalie o resultado e determine se precisa executar alguma ação. Por exemplo, talvez seja necessário ajustar a escala de capacidade ou ajustar a configuração de um alarme.

Veja a seguir os possíveis resultados para uma execução prática:

  • SUCCEEDED: nenhum alarme de resultado entrou no estado ALARM durante a execução prática e esta concluiu todo o período de teste de 30 minutos.

  • FAILED: pelo menos um alarme de resultado entrou no estado ALARM durante a execução prática.

  • INTERROMPIDA: a execução prática foi encerrada por um motivo que não foi o alarme de resultado entrando em um estado ALARM. Uma execução prática pode ser interrompida por vários motivos, inclusive pelos seguintes:

    • O treino foi encerrado porque AWS iniciou um câmbio automático na Região da AWS ou houve uma condição de alarme na região.

    • A execução prática foi encerrada porque a configuração da execução prática foi excluída do recurso.

    • A execução prática foi encerrada porque o cliente iniciou uma mudança de zona para o recurso na zona de disponibilidade da qual a mudança de zona para execução prática estava transferindo o tráfego.

    • A execução prática foi encerrada porque um CloudWatch alarme especificado para a configuração da execução prática não pôde mais ser acessado.

    • A execução prática foi encerrada porque um alarme de bloqueio especificado para a execução prática entrou no estado ALARM.

    • A execução prática foi encerrada por um motivo desconhecido.

    • A execução prática foi encerrada porque uma mudança automática de zona com precedência foi iniciada. Consulte Precedência das mudanças de zona.

  • CAPACITY_CHECK_FAILED: falha na verificação da capacidade balanceada entre as zonas de disponibilidade dos recursos de balanceamento de carga e do grupo do Auto Scaling.

  • PENDENTE: a execução prática está ativa (em andamento). Ainda não há resultado a ser retornado.