Configurar verificações de integridade personalizadas para failover de DNS para um API Gateway
É possível usar as verificações de integridade do Amazon Route 53 para controlar o failover de DNS de uma API do API Gateway em uma Região da AWS primária para outra em uma região secundária. Isso pode ajudar a mitigar os impactos no caso de um problema regional. Se você usa um domínio personalizado, pode realizar o failover sem exigir que os clientes alterem os endpoints da API.
Quando você escolhe Evaluate Target Health (Avaliar integridade do destino) para um registro de alias, esses registros falham somente quando o serviço API Gateway não está disponível na região. Em alguns casos, suas próprias APIs do API Gateway podem sofrer interrupções antes desse período. Para controlar o failover de DNS diretamente, configure verificações de integridade personalizadas do Route 53 para as APIs do API Gateway. Neste exemplo, você usa um alarme do CloudWatch que ajuda os operadores a controlar o failover de DNS. Para ver mais exemplos e outras considerações ao configurar o failover, consulte Criar mecanismos de recuperação de desastres usando o Route 53
Tópicos
Pré-requisitos
Para concluir esse procedimento, você deve criar e configurar os seguintes recursos:
-
Um nome de domínio de sua propriedade.
-
Um certificado do ACM para esse nome de domínio em duas Regiões da AWS. Para obter mais informações, consulte Pré-requisitos .
-
Uma zona hospedada no Route 53 para seu nome de domínio. Para obter mais informações, consulte Trabalhar com zonas hospedadas no Guia do desenvolvedor do Amazon Route 53.
Para receber mais informações sobre como criar registros DNS de failover do Route 53 para os nomes de domínio, consulte Escolher uma política de roteamento no Guia do desenvolvedor do Amazon Route 53. Para receber mais informações sobre como monitorar um alarme do CloudWatch, consulte Monitorar um alarme do CloudWatch no Guia do desenvolvedor do Amazon Route 53.
Etapa 1: configurar recursos
Neste exemplo, você cria os seguintes recursos para configurar o failover de DNS para seu nome de domínio:
-
APIs do API Gateway em duas Regiões da AWS
-
Nomes de domínio personalizados do API Gateway com o mesmo nome em duas Regiões da AWS
-
Mapeamentos de API do API Gateway que conectam as APIs do API Gateway aos nomes de domínio personalizados
-
Registros de failover de DNS do Route 53 para os nomes de domínio
-
Um alarme do CloudWatch na região secundária
-
Uma verificação de integridade do Route 53 com base no alarme do CloudWatch na região secundária
Primeiro, certifique-se de que você tenha todos os recursos necessários nas regiões primária e secundária. A região secundária deve conter o alarme e a verificação de integridade. Dessa maneira, você não depende da região primária para realizar o failover. Por exemplo, modelos do AWS CloudFormation que criam esses recursos, consulte primary.yaml
e secondary.yaml
.
Importante
Antes do failover para a região secundária, certifique-se de que todos os recursos necessários estejam disponíveis. Caso contrário, a API não estará pronta para o tráfego na região secundária.
Etapa 2: iniciar o failover para a região secundária
No exemplo a seguir, a região em espera recebe uma métrica do CloudWatch e inicia o failover. Usamos uma métrica personalizada que exige a intervenção do operador para iniciar o failover.
aws cloudwatch put-metric-data \
--metric-name
Failover
\--namespace
HealthCheck
\--unit
Count
\--value
1
\--region
us-west-1
Substitua os dados de métrica pelos dados correspondentes para o alarme do CloudWatch que você configurou.
Etapa 3: testar o failover
Invoque a API e verifique se você recebeu uma resposta da região secundária. Se você usou os modelos de exemplo na etapa 1, a resposta muda de {"message": "Hello from the primary Region!"}
para {"message": "Hello from the secondary Region!"}
após o failover.
curl
https://my-api.example.com
{"message": "Hello from the secondary Region!"}
Etapa 4: retornar à região primária
Para retornar à região primária, envie uma métrica do CloudWatch que resulte em aprovação na verificação de integridade.
aws cloudwatch put-metric-data \
--metric-name
Failover
\--namespace
HealthCheck
\--unit
Count
\--value
0
\--region
us-west-1
Substitua os dados de métrica pelos dados correspondentes para o alarme do CloudWatch que você configurou.
Invoque a API e verifique se você recebeu uma resposta da região primária. Se você usou os modelos de exemplo na etapa 1, a resposta muda de {"message": "Hello from the secondary Region!"}
para {"message": "Hello from the primary Region!"}
.
curl
https://my-api.example.com
{"message": "Hello from the primary Region!"}
Próximas etapas: personalizar e testar regularmente
Este exemplo demonstra uma maneira de configurar o failover de DNS. É possível usar uma variedade de métricas do CloudWatch ou endpoints HTTP para as verificações de integridade que gerenciam o failover. Teste regularmente os mecanismos de failover para garantir que eles funcionem conforme o esperado e que os operadores estejam familiarizados com seus procedimentos de failover.