Ir para o conteúdo

A Arte de Fazer Pizza na Nuvem: Guia de Estratégia para Construção de AMIs

Já sabemos que uma AMI é a "planta baixa" ou o "molde" para nossas instâncias EC2. A prática de criar nossa própria AMI customizada e padronizada é chamada de "Golden AMI". Mas a grande questão para um arquiteto é: quanto "recheio" devemos colocar na nossa Golden AMI?

A resposta a essa pergunta define sua estratégia e envolve um balanço entre velocidade de lançamento e flexibilidade para mudanças.

Analogia: Pense que você precisa preparar pizzas para uma pizzaria movimentada.


1. O Espectro de "Cozimento" (As 3 Estratégias de AMI)

Existem três abordagens principais, cada uma com seus prós e contras.

A Pizza Congelada (AMI Completa - Fully Baked)

  • O que é? A AMI contém TUDO: o sistema operacional, todos os patches, todos os agentes e o código completo da sua aplicação.
  • Vantagens:
    • Velocidade de Lançamento Máxima: Quando um pedido (uma nova instância) chega, você só precisa "colocar no forno". A instância fica pronta para receber tráfego em tempo recorde.
  • Desvantagens:
    • Baixa Agilidade: Se você precisar mudar uma única linha no código da sua aplicação, precisa criar uma AMI inteiramente nova, um processo que pode ser lento.
    • Segurança: A AMI fica "velha" rapidamente. Se uma nova vulnerabilidade de segurança for descoberta, todas as suas AMIs se tornam instantaneamente vulneráveis.

A Pizza Pré-Montada (AMI Híbrida)

  • O que é? A AMI contém o sistema operacional, os patches de segurança e os agentes (as partes que mudam lentamente). O código da sua aplicação é baixado e configurado no momento do lançamento, via User Data ou uma ferramenta de gerenciamento de configuração.
  • Analogia: Você pré-monta a base da pizza: a massa, o molho e o queijo.
  • Vantagens:
    • Ótimo Equilíbrio: O tempo de lançamento é rápido (pois a base já está pronta), mas você ainda tem a flexibilidade de implantar a versão mais recente do seu código a qualquer momento.
  • Desvantagens:
    • O tempo de lançamento é um pouco mais lento que o da AMI Completa, pois ainda há passos de configuração a serem executados.

A Massa Crua (AMI "JeOS" - Just Enough OS)

  • O que é? A AMI contém apenas o sistema operacional mínimo necessário. TUDO o mais (patches, agentes, aplicação) é instalado e configurado no momento do lançamento.
  • Vantagens:
    • Flexibilidade Máxima: Você tem controle total e pode implantar qualquer versão de qualquer software a qualquer momento. O tempo para criar a AMI base é mínimo.
  • Desvantagens:
    • Velocidade de Lançamento Lenta: Quando um pedido chega, você ainda precisa abrir a massa, passar o molho, colocar o queijo, o recheio e assar. Pode levar muitos minutos para uma nova instância ficar pronta para receber tráfego.

2. A Tabela de Decisão do Chef

Estratégia Velocidade de Lançamento (Boot Time) Agilidade / Segurança (Flexibilidade) Ideal Para...
Pizza Congelada (Completa) Mais Rápida Baixa Ambientes imutáveis onde a velocidade de escalabilidade é a prioridade máxima.
Pizza Pré-Montada (Híbrida) Rápida Alta A maioria das aplicações modernas. O melhor equilíbrio entre velocidade e flexibilidade.
Massa Crua (JeOS) Lenta Mais Alta Ambientes de desenvolvimento ou cenários onde a configuração muda drasticamente a cada lançamento.

O Veredito do Arquiteto (A Melhor Prática Moderna)

!!! tip "Insight de Especialista" Para a maioria das aplicações modernas na AWS, a abordagem Híbrida é a mais recomendada. Ela oferece o melhor equilíbrio: 1. Crie uma "Golden AMI" que contenha o SO, todos os patches de segurança, e os agentes de monitoramento e gerenciamento (CloudWatch, SSM). Esta é sua base segura e que muda lentamente. 2. Use ferramentas de Gerenciamento de Configuração (como o AWS Systems Manager) ou User Data para implantar sua aplicação, que é a parte que muda rapidamente, no momento do lançamento.

HACK PARA CERTIFICAÇÃO: Para a prova: 1. Uma AMI é um template para suas instâncias EC2. "Golden AMI" é a prática de criar sua própria AMI customizada. 2. Entenda o trade-off: quanto mais coisas você "assa" na AMI (AMI Completa), mais rápido a instância inicia, mas menos flexível ela é para mudanças. 3. O User Data é usado para executar scripts na primeira inicialização da instância.


A Planta Mestra: Guia Prático para Criar e Gerenciar AMIs na AWS

Já sabemos por que as "Golden AMIs" são a base de uma infraestrutura consistente e segura. Agora, vamos aprender como criá-las, copiá-las entre regiões e as regras especiais para criar templates de servidores Windows.

Analogia: Pense na sua instância EC2 perfeitamente configurada como a sua "Casa Modelo".


1. O Ciclo de Vida de uma AMI

A Criação (O Scanner 3D)

  • O que é? O processo de criar uma AMI a partir de uma instância EC2 em execução.
  • Analogia: É como "escanear a Casa Modelo com um scanner 3D de alta precisão para criar a Planta Baixa Digital".
  • Como Fazer (CLI):
    aws ec2 create-image \
        --instance-id i-1234567890abcdef0 \
        --name "Minha-Golden-AMI-WebApp-v1.2"
    

    !!! tip "O Dilema do Reboot" Por padrão, para garantir uma "leitura" perfeita, o processo de criação da AMI reinicia sua instância. Você pode usar a flag --no-reboot na CLI para evitar isso (ótimo para servidores de produção), mas a AWS não pode garantir 100% a integridade do sistema de arquivos na imagem resultante.

A Cópia (Registrando a Planta em Outra Cidade)

  • A Dor que Resolve: "Eu preciso lançar minha aplicação na Europa para atender clientes locais, mas minha Golden AMI foi criada em São Paulo."
  • A Solução: Uma AMI é um recurso Regional. Para usá-la em outra Região, você precisa copiá-la.
  • Analogia: A "planta baixa" que você registrou na "prefeitura de São Paulo" (sa-east-1) só é válida em São Paulo. Para construir a mesma casa no Rio de Janeiro, você precisa "registrar oficialmente sua planta na prefeitura do Rio".
  • Como Fazer (CLI):
    aws ec2 copy-image \
        --source-image-id ami-12345 \
        --source-region sa-east-1 \
        --name "Copia-Europeia-Minha-AMI" \
        --region eu-west-1
    

O Custo (Os Snapshots)

  • Lembre-se: Uma AMI baseada em EBS é, essencialmente, um conjunto de Snapshots do EBS. Você não paga pela AMI em si, mas paga pelo armazenamento dos snapshots que a compõem no S3.

2. O Caso Especial (Criando AMIs do Windows com Sysprep)

A Dor que Resolve: Se você simplesmente clonar uma instância Windows, você clona informações únicas como o "nome do computador" e o "ID de segurança" (SID). Lançar várias instâncias com a mesma identidade causa conflitos graves na rede.

  • A Solução: Use a ferramenta da Microsoft Sysprep (System Preparation Tool).
  • Analogia: É o "Processo de 'Neutralização' da Casa Modelo".
  • Como Funciona: Antes de "escanear" sua casa modelo do Windows para criar a AMI, você roda o Sysprep. Ele age como uma equipe de limpeza que remove todas as informações de identidade únicas, deixando apenas a estrutura e os softwares. Ele generaliza a instância para que ela possa ser usada como um template universal e seguro.

!!! warning "Atenção" O Sysprep é para criar templates, não backups. Como ele remove informações específicas do sistema, usá-lo para um backup pode ter consequências indesejadas na hora da restauração. Para backups, use Snapshots do EBS.


Verificação de Conhecimento

  • 1. O que é uma AMI?
    • É um template que fornece as informações necessárias para lançar uma instância (SO, softwares, etc.).
  • 2. Qual é o propósito do User Data?
    • É um script usado para executar tarefas de configuração automatizadas na primeira inicialização de uma instância.
  • 3. Um script para lançar uma instância funciona em us-east-1, mas falha em eu-west-1 com um erro de "AMI não encontrada". Qual o problema?
    • Resposta do Especialista: Os IDs das AMIs são únicos por Região. A "planta" ami-123 em uma região não é a mesma em outra. Ao copiar sua AMI para uma nova região, ela recebe um novo ID. Seu script de automação precisa ser inteligente o suficiente para usar o ID correto para a região em que está sendo executado.

HACK PARA CERTIFICAÇÃO: Para a prova: 1. Uma AMI é um recurso Regional. Para usá-la em outra Região, você precisa copiá-la. 2. Os IDs das AMIs NÃO são universais; eles são diferentes em cada Região. 3. Para criar uma AMI de Windows padronizada para reuso, a melhor prática é usar a ferramenta Sysprep.