A Fábrica de Nuvens: Guia de Infraestrutura como Código com AWS CloudFormation
A Dor: O Caos da Implantação Manual
No mundo da nuvem, a flexibilidade é imensa, mas o gerenciamento manual traz desafios enormes: * Como garantir que seu ambiente de teste seja 100% idêntico ao de produção? * Como reverter uma implantação que deu errado, sem passar horas desfazendo tudo manualmente? * Como documentar cada recurso e cada mudança na sua infraestrutura? * Como gerenciar as dependências (ex: criar a rede antes do servidor)?
Fazer tudo isso manualmente é lento, propenso a erros e a causa do famoso "Desvio de Configuração" (Configuration Drift).
A Solução: Trate sua infraestrutura como você trata seu código. Isso é Infraestrutura como Código (IaC), e a principal ferramenta da AWS para isso é o AWS CloudFormation.
Analogia: Pense que você está construindo uma casa pré-fabricada. Em vez de construir com tijolos e cimento no local (gerenciamento manual), você cria uma "planta baixa digital" e a envia para uma "fábrica robótica e inteligente" (o CloudFormation).
1. Os Dois Pilares do CloudFormation
1.
O Modelo (Template) - A Planta Baixa
- O que é? Um arquivo de texto, escrito em JSON ou YAML, onde você declara todos os recursos da AWS que você quer criar (EC2, VPC, S3, RDS, etc.) e suas configurações.
- A Filosofia (Declarativa): Você não diz ao CloudFormation como construir. Você apenas descreve o que você quer no resultado final. A "fábrica" se encarrega de descobrir a melhor ordem de construção.
2.
A Pilha (Stack) - A Casa Construída
- O que é? A coleção de recursos da AWS que foram criados a partir de um único template.
- Como Funciona: Você gerencia todos os recursos como uma unidade única. Para deletar a "casa inteira", você não demole parede por parede; você simplesmente "deleta a pilha", e o CloudFormation remove todos os recursos associados de forma limpa.
2. Resolvendo os Desafios de Implantação
| Se o seu desafio é... | Como o CloudFormation resolve... |
|---|---|
| Implantar ambientes repetíveis e idênticos? | Use o mesmo Template para criar múltiplas Stacks (Dev, Teste, Produção), garantindo que sejam clones perfeitos. |
| Gerenciar dependências? | O CloudFormation entende as dependências. Ele sabe que precisa criar a VPC antes de criar a sub-rede, e a sub-rede antes de criar a instância EC2. |
Gerenciar uma reversão (rollback)? | Se a criação de qualquer recurso na pilha falhar, o CloudFormation automaticamente desfaz tudo que ele criou, retornando ao estado anterior. É um colete salva-vidas automático. |
| Documentar as alterações? | O Template é a documentação viva. Ele é a fonte única da verdade. Para saber como a infraestrutura está configurada, você lê o código. |
3. Práticas Recomendadas do Arquiteto
Use Controle de Versão: Trate seus templates do CloudFormation como você trata o código da sua aplicação. Armazene-os em um repositório Git para ter um histórico completo de todas as mudanças.
Use
Change Setspara Prever o Impacto: Antes de aplicar uma mudança em uma pilha de produção, crie um Conjunto de Alterações (Change Set). O CloudFormation irá analisar sua mudança e te dar um relatório exato do que ele vai fazer: "Vou Modificar esta instância, Adicionar este Security Group e Deletar aquele volume EBS". Você pode aprovar ou cancelar a mudança antes que ela aconteça.Não Faça Alterações Manuais: Evite o
Configuration Drift. Se você precisar de uma mudança, atualize o template, não o recurso no console.
HACK PARA CERTIFICAÇÃO: Para a prova: 1. AWS CloudFormation é o serviço de Infraestrutura como Código (IaC) da AWS. 2. Um Template é o arquivo de código (JSON/YAML) que descreve os recursos. 3. Uma Stack (Pilha) é o conjunto de recursos que foram criados a partir de um template. 4. Ele resolve o problema de provisionamento manual, tornando as implantações repetíveis e consistentes.
A Fábrica de Nuvens: Guia Definitivo de Infraestrutura como Código com AWS CloudFormation
A Dor: Como garantir que seu ambiente de teste seja 100% idêntico ao de produção? Como reverter uma implantação com falha? Como documentar cada recurso da sua infraestrutura? O gerenciamento manual torna essas tarefas um pesadelo.
A Solução: Trate sua infraestrutura como código. A principal ferramenta da AWS para isso é o AWS CloudFormation.
Analogia: Pense que você está construindo uma casa pré-fabricada. Em vez de construir no local, você cria uma "planta baixa digital" e a envia para uma "fábrica robótica e inteligente" (o CloudFormation).
1. Os Dois Pilares do CloudFormation
1.
O Modelo (Template) - A Planta Baixa
- O que é? Um arquivo de texto (em YAML ou JSON) onde você declara todos os recursos da AWS que você quer (EC2, VPC, S3, RDS, etc.) e como eles devem ser configurados.
2.
A Pilha (Stack) - A Casa Construída
- O que é? A coleção de recursos reais da AWS que foram criados a partir de um único template. Você gerencia todos os recursos como uma unidade única.
- Analogia: Para deletar a "casa inteira", você não demole parede por parede; você simplesmente "deleta a pilha".
O Fiscal de Obras (Detecção de Desvio -
Drift Detection): O CloudFormation pode atuar como um "fiscal" que compara a "casa construída" (a Stack) com a "planta baixa original" (o Template) e te alerta sobre qualquer "reforma" manual não autorizada que tenha sido feita diretamente no console.
2. A Anatomia de uma Planta Baixa (A Estrutura de um Template)
Um template do CloudFormation tem várias seções. Vamos ver as principais.
Parâmetros (Parameters) - Opcional
- Analogia: As "Opções de Customização" no formulário de pedido da sua casa.
- O que faz? Permite que você insira valores customizados no momento em que cria a pilha. Isso torna seus templates reutilizáveis.
- Exemplo: Em vez de "chumbar" o tipo de instância no código, você cria um parâmetro
InstanceTypee pode escolhert2.micropara o ambiente de teste em5.largepara o de produção, usando o mesmo template.
Mapeamentos (Mappings) - Opcional
- Analogia: O "Catálogo de Fornecedores" do arquiteto.
- O que faz? Permite que você crie um mapa de valores estáticos. O uso mais comum é para selecionar a AMI correta com base na Região.
- Exemplo: "SE o parâmetro
AWS::Regionforus-east-1, ENTÃO use a AMIami-123. SE forsa-east-1, ENTÃO use a AMIami-456."
Recursos (Resources) - OBRIGATÓRIO
- Analogia: A "Planta Baixa Principal".
- O que faz? Esta é a única seção obrigatória do template. É aqui que você define cada "cômodo" e "item" da sua casa: cada instância EC2, bucket S3, tabela DynamoDB, etc.
Saídas (Outputs) - Opcional
- Analogia: As "Informações de Entrega".
- O que faz? Permite que você declare valores importantes que você quer que a pilha retorne após a sua criação.
- Exemplo: "Quando a pilha estiver pronta, por favor, me mostre o endereço do meu site (o DNS do Load Balancer) e o ARN do meu bucket S3." Isso facilita a localização dos seus recursos e permite que você use a saída de uma pilha como entrada para outra.
3. As Ferramentas do Arquiteto
A Dor: Escrever um arquivo YAML ou JSON grande e complexo manualmente é assustador e propenso a erros de sintaxe (uma vírgula faltando, uma indentação errada).
A Solução: Use um editor de código moderno com plugins. * Recomendação: Use o Visual Studio Code com a extensão da AWS e a extensão do YAML. Ele te dará preenchimento automático, verificação de sintaxe e formatação, o que reduz drasticamente os erros e acelera o desenvolvimento.
HACK PARA CERTIFICAÇÃO: Para a prova: 1. AWS CloudFormation é o serviço de IaC para provisionar recursos da AWS. 2. Um Template (JSON/YAML) é a planta baixa. 3. Uma Stack (Pilha) é a infraestrutura construída. 4. A seção
Resourcesé a única seção obrigatória em um template.
A Fábrica de Nuvens: Guia Definitivo de Infraestrutura como Código com AWS CloudFormation
A Dor: Como garantir que seu ambiente de teste seja 100% idêntico ao de produção? Como reverter uma implantação com falha? Como documentar cada recurso da sua infraestrutura? O gerenciamento manual torna essas tarefas um pesadelo.
A Solução: Trate sua infraestrutura como código. A principal ferramenta da AWS para isso é o AWS CloudFormation.
Analogia: Pense que você está construindo uma casa pré-fabricada. Em vez de construir no local, você cria uma "planta baixa digital" e a envia para uma "fábrica robótica e inteligente" (o CloudFormation).
1. Os Dois Pilares do CloudFormation
1.
O Modelo (Template) - A Planta Baixa
- O que é? Um arquivo de texto (em YAML ou JSON) onde você declara todos os recursos da AWS que você quer (EC2, VPC, S3, RDS, etc.) e como eles devem ser configurados.
2.
A Pilha (Stack) - A Casa Construída
- O que é? A coleção de recursos reais da AWS que foram criados a partir de um único template. Você gerencia todos os recursos como uma unidade única.
O Fiscal de Obras (Detecção de Desvio -
Drift Detection): O CloudFormation pode atuar como um "fiscal" que compara a "casa construída" (a Stack) com a "planta baixa original" (o Template) e te alerta sobre qualquer "reforma" manual não autorizada que tenha sido feita diretamente no console.
2. A Anatomia de uma Planta Baixa Inteligente
Um template do CloudFormation é mais do que uma simples lista de recursos. Ele tem seções que o tornam dinâmico e reutilizável.
-
Parameters(As Opções de Customização):- A Dor que Resolve: Ter que criar um template diferente para cada ambiente (Dev, Teste, Prod).
- Como Funciona: Permite que você insira valores customizados no momento em que cria a pilha. Por exemplo, você cria um parâmetro
InstanceTypee pode escolhert2.micropara Dev em5.largepara Prod, usando o mesmo template.
-
Mappings(O Catálogo de Fornecedores):- A Dor que Resolve: O ID de uma AMI é diferente em cada Região da AWS. Como criar um template que funcione em qualquer lugar do mundo?
- Como Funciona: Você cria um mapa de valores. "SE a Região for
us-east-1, use a AMIami-123. SE forsa-east-1, use a AMIami-456."
-
Resources(A Planta Principal):- A única seção obrigatória. É aqui que você define cada "cômodo" e "item" da sua casa: cada instância EC2, bucket S3, tabela DynamoDB, etc.
-
Outputs(As Informações de Entrega):- A Dor que Resolve: "Depois que a pilha foi criada, qual é o endereço do meu site? Preciso procurar manualmente no console."
- Como Funciona: Você declara quais informações importantes devem ser exibidas como saída após a criação da pilha (ex: o DNS do Load Balancer).
As Instruções Conectadas (Funções Intrínsecas)
Para fazer as seções conversarem entre si, usamos Funções Intrínsecas.
Ref(Referência): A função mais comum. Usada para pegar o valor de um Parâmetro ou o ID de um Recurso definido no mesmo template.Fn::FindInMap: Usada para procurar um valor dentro da sua seção de Mappings.Fn::GetAtt: Usada para pegar um atributo específico de um recurso (ex: oPrivateIpde uma instância EC2).
3. A Rede de Segurança (Gerenciamento de Stacks)
-
Rollback Automático:
- A Dor: Durante uma implantação, o 5º de 10 recursos falha ao ser criado, deixando sua infraestrutura em um estado inconsistente e quebrado.
- A Solução: Por padrão, se qualquer recurso falhar durante a criação, o CloudFormation atua como um "colete salva-vidas" e desfaz automaticamente todos os recursos que ele já havia criado, deixando seu ambiente limpo.
-
Proteção Contra Encerramento:
- Você pode habilitar uma "trava de segurança" em uma pilha de produção para evitar que ela seja deletada acidentalmente.
-
Política de Exclusão (
DeletionPolicy): >INSIGHT DE ESPECIALISTA: "Eu deletei minha pilha e ela levou meu banco de dados de produção junto!" > Para recursos que armazenam dados (como bancos de dados RDS ou buckets S3), você pode adicionar uma
DeletionPolicy: Retain. Agora, mesmo que a "casa" (a Stack) seja demolida, a "fundação do cofre" (seu banco de dados) será preservada.
HACK PARA CERTIFICAÇÃO: Para a prova: 1. Um Template (JSON/YAML) é a planta baixa. Uma Stack (Pilha) é a infraestrutura construída. 2. A seção
Resourcesé a única seção obrigatória em um template. 3. OsParameterstornam os templates reutilizáveis entre diferentes ambientes. 4. O Rollback Automático em caso de falha é uma característica de segurança fundamental do CloudFormation.
A Fábrica de Nuvens: Guia Definitivo de Infraestrutura como Código com AWS CloudFormation
A Dor: Como garantir que seu ambiente de teste seja 100% idêntico ao de produção? Como reverter uma implantação com falha? Como documentar e prever o impacto de cada mudança na sua infraestrutura? O gerenciamento manual torna essas tarefas um pesadelo.
A Solução: O AWS CloudFormation, sua "fábrica" para construir infraestrutura como código.
1. Os Pilares: Template e Stack (Recap)
O Modelo (Template): A "planta baixa digital" (YAML/JSON) que descreve o que você quer.
A Pilha (Stack): A "casa real, construída" a partir da planta.
2. A Planta Baixa Inteligente (Estrutura e Funções)
Um template bem escrito usa seções para se tornar dinâmico e reutilizável:
Parameters: As "opções de customização" para tornar seus templates flexíveis.Mappings: O "catálogo de fornecedores" para selecionar valores com base em uma condição (ex: Região).Resources: A seção obrigatória com a "planta principal" dos seus recursos.Outputs: As "informações de entrega" (ex: o URL do seu site) após a construção.- Funções Intrínsecas (
Ref,Fn::GetAtt, etc.): As "instruções inteligentes" que conectam as diferentes partes da sua planta.
Sincronizando a Construção (WaitCondition)
- A Dor que Resolve: "Minha instância EC2 precisa baixar e instalar um software, o que leva 5 minutos. Como eu faço o CloudFormation esperar a instalação terminar antes de tentar anexar a instância a um Load Balancer?"
- A Solução: Você usa um
WaitConditionHandlee umWaitCondition. - Analogia: A planta baixa diz: "Pause a construção (
WaitCondition) até receber o sinal verde (cfn-signal) do 'instalador' (WaitConditionHandle) que está dentro da instância." Isso garante que as etapas da sua implantação aconteçam na ordem correta, mesmo quando dependem de processos internos demorados.
3. O Manual de Operações Seguras (Gerenciando Stacks)
Gerenciar uma pilha é tão importante quanto criá-la. O CloudFormation oferece múltiplas "redes de segurança".
A Reforma Segura (Conjuntos de Alterações - Change Sets)
!!! tip "A Melhor Prática para Produção"* A Dor: "Eu preciso atualizar minha pilha de produção. Estou apavorado de que minha mudança no template possa acidentalmente deletar meu banco de dados." * A Solução: Antes de aplicar uma atualização, crie umChange Set. * Analogia: É como pedir um "Relatório de Impacto da Reforma" para a fábrica. * Como Funciona: O CloudFormation compara seu template atual com o novo e gera um relatório detalhado: "Nesta reforma, eu irei MODIFICAR este Security Group, ADICIONAR esta instância EC2 e NÃO IREI DELETAR NADA." Você analisa o relatório e, somente se concordar, aperta o botão "Executar".
As Travas de Segurança (Proteção da Pilha)
Proteção contra Encerramento (Termination Protection): Uma "trava de segurança" simples que você pode ativar para impedir que uma pilha seja deletada acidentalmente.Política de Pilha (Stack Policy):- Analogia: Uma "Cláusula de Tombamento Histórico".
- Como Funciona: É um documento JSON que você anexa à sua pilha, definindo quais recursos são "tombados" e não podem ser atualizados ou deletados durante uma atualização da pilha.
- A Dor que Resolve: "Quero que minha equipe possa atualizar os servidores web, mas quero garantir que ninguém nunca, nem por acidente, modifique nosso banco de dados de produção."
O Plano de Contingência (Rollbacks)
Rollback Automático em Caso de Falha: Este é o comportamento padrão. Se qualquer parte da construção falhar, a "fábrica" automaticamente desfaz tudo, deixando seu ambiente limpo.Continuar um Rollback com Falha: Às vezes, até mesmo a tentativa de desfazer a obra falha (ex: um recurso foi deletado manualmente fora do CloudFormation). A pilha fica em um estadoUPDATE_ROLLBACK_FAILED. O comandocontinue-update-rollbacké a forma de dizer à fábrica: "Eu consertei o problema. Por favor, tente o rollback novamente."
HACK PARA CERTIFICAÇÃO: Para a prova: 1. Um Template é o código; uma Stack é o resultado. 2. O Rollback Automático em Caso de Falha é o comportamento padrão que protege sua infraestrutura. 3. Os Change Sets são a melhor prática para prever o impacto de uma atualização antes de executá-la. 4. Lembre-se que você pode proteger uma stack com Termination Protection e recursos específicos com uma Stack Policy.
A Fábrica de Nuvens: Guia Definitivo de Infraestrutura como Código com AWS CloudFormation
A Dor: Como garantir que seu ambiente de teste seja 100% idêntico ao de produção? Como reverter uma implantação com falha? Como documentar e prever o impacto de cada mudança na sua infraestrutura? O gerenciamento manual torna essas tarefas um pesadelo.
A Solução: O AWS CloudFormation, sua "fábrica" para construir infraestrutura como código.
Analogia: Pense que você está construindo uma casa pré-fabricada. Em vez de construir no local, você cria uma "planta baixa digital" e a envia para uma "fábrica robótica e inteligente" (o CloudFormation).
(As seções 1, 2 e 3 sobre Pilares, Anatomia do Template e Gerenciamento de Stacks, que criamos anteriormente, estariam aqui.)
4. O Playbook do Arquiteto (Práticas Recomendadas)
Construir com CloudFormation é poderoso. Construir bem com CloudFormation é o que diferencia um amador de um profissional. Este é o playbook de regras que os especialistas seguem.
Escrevendo Templates Seguros e Flexíveis
-
Não Incorpore Segredos:
- A Dor: Salvar senhas de banco de dados ou chaves de API diretamente no seu template é uma falha de segurança grave.
- A Prática Correta: Use a seção
Parameterspara passar segredos. Para segurança máxima, use um tipo de parâmetro que se integra com o AWS Systems Manager Parameter Store ou o AWS Secrets Manager, permitindo que o CloudFormation busque os segredos diretamente desses "cofres", sem que eles nunca apareçam em texto plano.
-
Use Tipos de Parâmetros Específicos da AWS:
- A Dor: Erros de digitação ao inserir IDs de VPC ou de Security Groups.
- A Prática Correta: Em vez de um parâmetro do tipo
String, use um tipo específico comoAWS::EC2::VPC::IdouAWS::EC2::SecurityGroup::Id. - O Resultado: O console do CloudFormation irá automaticamente te dar uma lista suspensa com todos os recursos daquele tipo na sua conta, evitando erros e economizando tempo.
-
Valide seus Templates Antes de Usar:
- A Dor: Enviar um template com um erro de sintaxe para a "fábrica" e esperar ele falhar.
- A Prática Correta: Use a AWS CLI para validar seu template antes de criar a pilha:
aws cloudformation validate-template --template-body file://seu-template.yaml.
Gerenciando Stacks como um Profissional
-
REGRA #1: NÃO TOQUE NOS RECURSOS MANUALMENTE!
- Uma vez que uma pilha é criada, resista à tentação de fazer alterações nos recursos (ex: mudar uma regra de Security Group) diretamente no console daquele serviço. Isso causa
Configuration Drifte quebra a "fonte da verdade" do seu template. Se precisar de uma mudança, atualize o template.
- Uma vez que uma pilha é criada, resista à tentação de fazer alterações nos recursos (ex: mudar uma regra de Security Group) diretamente no console daquele serviço. Isso causa
-
Use
Change Setspara Atualizações:- Relembrando: esta é a melhor prática para produção. Sempre gere um Conjunto de Alterações para prever o impacto exato da sua atualização antes de executá-la.
-
Use Políticas de Pilha (
Stack Policies):- Use este recurso para "tombar" recursos críticos (como seu banco de dados de produção), protegendo-os contra atualizações ou exclusões acidentais durante uma atualização da pilha.
-
Use Controle de Versão (Git):
- Sua infraestrutura é código. Trate-a como tal. Armazene seus templates em um repositório Git para ter um histórico completo de todas as mudanças, revisões de código e colaboração em equipe.
-
Audite Tudo (CloudTrail):
- Lembre-se que o AWS CloudTrail grava todas as chamadas de API do CloudFormation. Use-o para auditar quem criou, atualizou ou deletou suas pilhas.
HACK PARA CERTIFICAÇÃO: Para a prova: 1. Um Template (JSON/YAML) é a planta baixa; uma Stack (Pilha) é a infraestrutura construída. 2. Parâmetros tornam os templates reutilizáveis. 3. Change Sets são a melhor prática para prever o impacto de uma atualização antes de executá-la. 4. Não incorporar credenciais em templates e não fazer alterações manuais em recursos gerenciados por uma pilha são práticas de segurança e governança fundamentais.
O Detetive da Fábrica: Guia de Troubleshooting do AWS CloudFormation
Se você escreve código, você vai criar bugs. Se você escreve Infraestrutura como Código (IaC), o mesmo se aplica. A habilidade de um engenheiro sênior não é escrever templates perfeitos, mas sim depurar os imperfeitos com velocidade e precisão.
Quando sua pilha do CloudFormation falha, não entre em pânico. Coloque seu chapéu de detetive.
Analogia: Pense que sua pilha falhou. A "linha de montagem da sua fábrica de casas parou". Um alarme vermelho está piscando. O que fazer?
1. A Cena do Crime (O Painel de Eventos)
A Regra de Ouro: Quando uma Stack (Pilha) falhar e entrar no estado ROLLBACK_IN_PROGRESS, a PRIMEIRA coisa que você faz é ir para a aba Eventos (Events).
- O que procurar? Role a lista de eventos de baixo para cima. O primeiro evento que você encontrar com o status
CREATE_FAILED(ouUPDATE_FAILED, etc.) é o seu ponto de partida. - A Pista Principal: A coluna Motivo do status (Status reason) é a sua pista mais importante. Ela contém a mensagem de erro que te dirá por que a "fábrica" parou.
2. O Manual do Detetive (Arquivos de Casos Comuns)
Vamos analisar os tipos de "crimes" mais comuns.
Caso 1: A Planta IleGÍVEL (Erros de Sintaxe)
- Sintoma: A criação da pilha falha imediatamente com um erro como
Template format error: ... - Causa Provável: Um erro de digitação no seu arquivo YAML ou JSON (ex: uma indentação errada, uma vírgula faltando).
- Ferramentas Forenses:
- O plugin de YAML/JSON do seu editor de código (como o VS Code).
- O comando da AWS CLI:
aws cloudformation validate-template --template-body file://seu-template.yaml
Caso 2: Acesso Negado (Erros de Permissão do IAM)
- Sintoma: O
Status reasonmostra uma mensagem clara:API: ec2:RunInstances is not authorized...ouAccess Denied. - Causa Provável: O usuário ou a
Roleque está executando a pilha não tem a permissão do IAM necessária para criar o recurso em questão. - Ferramentas Forenses: O console do IAM. Verifique as políticas anexadas à identidade que está fazendo a implantação.
Caso 3: O Problema Dentro da Casa (Falha na WaitCondition / UserData)
- Sintoma: A criação de um recurso EC2 fica "travada" por um longo tempo e depois falha com um erro de timeout na
WaitCondition. - Causa Provável: O robô construiu a "casa" (a instância EC2), mas o "eletricista" (seu script de
User Dataoucfn-init) que foi enviado para dentro encontrou um problema e nunca enviou o sinal de 'trabalho concluído'. - O Kit de Ferramentas Forenses:
- Impeça a Demolição: O comportamento padrão do CloudFormation é deletar a instância falha. Para investigar, você precisa que ela permaneça. Lance a pilha novamente com a opção
--on-failure DO_NOTHINGna CLI. > Analogia: "Fábrica, se o eletricista falhar, NÃO demita a casa. Deixe-a de pé para que eu possa entrar e investigar." - Entre na Instância: Use SSH ou Session Manager para acessar a instância que não foi deletada.
- Examine os Logs: A "caixa preta" do que aconteceu está nos arquivos de log.
- Linux:
/var/log/cloud-init-output.loge/var/log/cfn-init.log - Windows:
C:\cfn\log\ - O erro quase sempre estará nas últimas linhas desses arquivos. A causa mais comum é um script tentando baixar um arquivo de uma URL que não existe (
404 Not Found) ou para a qual não tem permissão (403 Forbidden).
- Linux:
- Impeça a Demolição: O comportamento padrão do CloudFormation é deletar a instância falha. Para investigar, você precisa que ela permaneça. Lance a pilha novamente com a opção
HACK PARA CERTIFICAÇÃO: Para a prova: 1. Saiba que o Rollback em Caso de Falha é o comportamento padrão que protege sua conta contra estados inconsistentes. 2. Entenda que a aba Eventos (Events) no console do CloudFormation é o principal local para iniciar a solução de problemas. 3. Lembre-se da diferença: erros de provisionamento aparecem no console do CloudFormation; erros de configuração de software (
UserData/Init) aparecem nos logs dentro da instância EC2.