Como criar recursos do Amazon Route 53 e do Amazon Route 53 Resolver com o AWS CloudFormation
O Amazon Route 53 e o Amazon Route 53 Resolver são integrados ao AWS CloudFormation, um serviço que ajuda você a modelar e configurar seus recursos da AWS para que você possa passar menos tempo criando e gerenciando os recursos e a infraestrutura. Você cria um modelo que descreve todos os recursos da AWS desejados, e o CloudFormation provisiona e configura esses recursos para você.
Quando você usa o CloudFormation, é possível reutilizar seu modelo para configurar seus recursos do Route 53 e do Route 53 Resolver repetidamente, e de forma consistente. Descreva seus recursos uma vez e, depois, provisione os mesmos recursos repetidamente em várias regiões e nas Contas da AWS.
Route 53, Route 53 Resolver e modelos do CloudFormation
Para provisionar e configurar recursos para o Route 53, o Route 53 Resolver e serviços relacionados, você deve entender os modelos do CloudFormation. Os modelos são arquivos de texto formatados em JSON ou YAML. Esses modelos descrevem os atributos que você deseja provisionar nas suas pilhas CloudFormation. Se não estiver familiarizado com o JSON ou o YAML, é possível usar o CloudFormation Designer para ajudar a começar a usar os modelos do CloudFormation. Para mais informações, consulte O que é o CloudFormation Designer? no Manual do usuário da AWS CloudFormation.
O Route 53 oferece suporte para criar os seguintes tipos de recursos no CloudFormation:
-
AWS::Route53::DNSSEC -
AWS::Route53::HealthCheck -
AWS::Route53::HostedZone -
AWS::Route53::KeySigningKey -
AWS::Route53::RecordSet -
AWS::Route53::RecordSetGroup
Para obter mais informações, incluindo exemplos de modelos JSON e YAML para recursos do Route 53, consulte a Referência de tipo de recurso do Amazon Route 53 no Manual do usuário do AWS CloudFormation.
O Route 53 Resolver oferece suporte para criação dos seguintes tipos de recursos no CloudFormation:
-
AWS::Route53Resolver::FirewallDomainList -
AWS::Route53Resolver::FirewallDomainList -
AWS::Route53Resolver::FirewallRuleGroupAssociation -
AWS::Route53Resolver::ResolverDNSSECConfig -
AWS::Route53Resolver::ResolverEndpoint -
AWS::Route53Resolver::ResolverQueryLoggingConfig -
AWS::Route53Resolver::ResolverQueryLoggingConfigAssociation -
AWS::Route53Resolver::ResolverRule -
AWS::Route53Resolver::ResolverRuleAssociation
Para obter mais informações, incluindo exemplos de modelos JSON e YAML para recursos do Route 53 Resolver, consulte a Referência de tipo de recurso do Amazon Route 53 Resolver no Manual do usuário do AWS CloudFormation.
Praticas recomendadas para o Route 53 e CloudFormation
Ao usar o CloudFormation para gerenciar recursos do Route 53, siga essas práticas recomendadas para evitar problemas comuns e garantir implantações confiáveis.
Noções básicas sobre consistência eventual
O Route 53 usa um modelo eventualmente consistente para alterações de DNS. Isso pode afetar as operações do CloudFormation, principalmente durante reversões e mudanças rápidas e sucessivas.
Importante
Quando o CloudFormation tenta reverter alterações nos registros DNS, a reversão pode falhar devido ao modelo de consistência eventual do Route 53. Se o CloudFormation tentar recriar um registro que foi excluído recentemente, mas que ainda parece existir devido a uma eventual consistência, você poderá encontrar erros InvalidChangeBatch que deixarão seu DNS em um estado quebrado.
Para minimizar problemas relacionados à consistência eventual:
-
Planeje alterações com cuidado: evite fazer alterações rápidas e sucessivas nos mesmos registros de DNS
-
Teste primeiro em ambientes de não produção: sempre teste as alterações de DNS nos ambientes de desenvolvimento antes de aplicar à produção
-
Monitore implantações: acompanhe de perto os eventos de pilha do CloudFormation durante implantações relacionadas ao DNS. Para obter orientação de monitoramento, consulte Como monitorar o Amazon Route 53.
-
Tenha procedimentos de reversão prontos: prepare procedimentos manuais de recuperação caso ocorram falhas nas reversões automáticas
Ordenação de registros de DNS e IDs lógicos
Ao criar vários registros de DNS no CloudFormation, tenha cuidado com a ordem dos registros e a atribuição lógica de ID.
Atenção
Se você definir registros de DNS em matrizes ou listas dentro do seu modelo do CloudFormation, inserir novos registros no meio da lista pode fazer com que o CloudFormation reatribua IDs lógicos aos registros existentes. Isso aciona substituições de registros que podem levar a interrupções no serviço e falhas de reversão.
Práticas recomendadas para o gerenciamento de registros de DNS:
-
Use IDs lógicos explícitos: sempre atribua IDs lógicos explícitos e significativos aos registros de DNS em vez de depender de índices de matrizes. Para obter mais informações sobre IDs lógicos do CloudFormation, consulte a Estrutura da seção Recursos no Guia do usuário do AWS CloudFormation
-
Anexar novos registros: ao adicionar novos registros de DNS a listas existentes, anexe-os ao final em vez de inseri-los no meio
-
Agrupar registros relacionados: considere usar
AWS::Route53::RecordSetGrouppara gerenciar registros relacionados em conjunto. Para obter mais informações, consulte AWS::Route53::RecordSetGroup no Guia do usuário do AWS CloudFormation. -
Revise conjuntos de alterações: sempre revise os conjuntos de alterações do CloudFormation antes da implantação para identificar substituições inesperadas de registros. Para obter mais informações, consulte Atualizar pilhas usando conjuntos de alterações no Manual do usuário do AWS CloudFormation.
Lidar com falhas de reversão
Se uma reversão do CloudFormation falhar devido a problemas relacionados ao DNS, talvez seja necessário realizar a recuperação manual.
Para realizar a recuperação manual de reversões de DNS com falha
-
Identifique os registros de DNS com falha revisando os eventos de pilha do CloudFormation e os registros da zona hospedada do Route 53
-
Crie ou atualize manualmente os registros de DNS ausentes por meio do console ou da API do Route 53. Para obter informações sobre a criação de registros, consulte Trabalhar com registros.
-
Depois que o DNS for restaurado, atualize seu modelo do CloudFormation para corresponder ao estado atual
-
Implante o modelo corrigido para trazer o CloudFormation de volta em sincronia com os recursos reais
Para evitar falhas de reversão:
-
Evite fazer alterações que possam acionar a substituição de registros de DNS durante períodos de tráfego intenso
-
Implemente verificações de integridade e monitoramento para detectar problemas de DNS rapidamente. Para obter informações sobre verificações de integridade, consulte Criar e atualizar verificações de integridade.
-
Considere o uso de estratégias de implantação azul/verde para alterações críticas de DNS. Para obter mais informações sobre práticas recomendadas de implantação, consulte Práticas recomendadas do Amazon Route 53.
-
Documente procedimentos de emergência para recuperação manual de DNS
Saiba mais sobre o CloudFormation
Para saber mais sobre o CloudFormation, consulte os seguintes recursos: