Introdução
Uma AMI (Amazon Machine Image) é um modelo que contém as informações necessárias para lançar uma nova instância EC2: sistema operacional, configurações, softwares instalados e dados dos volumes. Criar uma AMI a partir de uma instância Windows já configurada é uma prática essencial para padronizar ambientes, agilizar a recuperação de desastres e escalar aplicações de forma consistente. Neste tutorial, mostramos como gerar uma AMI personalizada de uma instância Windows Server rodando na AWS.
Pré-requisitos
- Uma instância EC2 Windows Server já configurada (ex. com aplicações, drivers e políticas de segurança aplicadas)
- Acesso RDP à instância para validações prévias, se necessário
- AWS CLI configurado com permissões
ec2:CreateImageeec2:DescribeImages - ID da instância de origem (ex. i-0f9a8b7c6d5e4f321)
Passo 1: Preparar a instância Windows
Antes de gerar a imagem, é recomendável higienizar a instância para evitar que dados sensíveis ou temporários sejam replicados. No console RDP da instância, considere:
- Remover arquivos temporários e logs desnecessários
- Rodar o utilitário EC2Launch ou EC2Config (dependendo da versão do Windows) para preparar a instância para a generalização
- Garantir que o Windows Update não esteja em execução no momento da criação da imagem
Para instâncias Windows Server 2016 em diante, o EC2Launch v2 já vem pré-instalado e gerencia a randomização de SID e hostname automaticamente na próxima inicialização da AMI.
Passo 2: Criar a AMI via console AWS
- No console EC2, acesse Instances e selecione a instância Windows desejada.
- Clique em Actions > Image and templates > Create image.
- Informe um nome, por exemplo: windows-server-2022-app-producao-v1.
- Adicione uma descrição detalhando o propósito da imagem e a versão da aplicação instalada.
- Mantenha a opção No reboot desmarcada, salvo em casos excepcionais, pois o reboot garante a consistência do sistema de arquivos NTFS durante a captura.
- Revise os volumes EBS que serão incluídos na imagem e clique em Create image.
Passo 3: Criar a AMI via AWS CLI
Para automatizar o processo, por exemplo em pipelines de CI/CD ou rotinas agendadas, use:
aws ec2 create-image \
--instance-id i-0f9a8b7c6d5e4f321 \
--name "windows-server-2022-app-producao-v1" \
--description "AMI gerada apos configuracao do agente de coleta de dados industriais" \
--no-rebootO comando retorna imediatamente o ImageId, por exemplo ami-0123456789abcdef0, mesmo enquanto o processo de criação ainda está em andamento em segundo plano.
Acompanhando o status da AMI
aws ec2 describe-images --image-ids ami-0123456789abcdef0 --query "Images[].State"O status inicial é pending e muda para available quando a imagem estiver pronta para uso em novos lançamentos de instância.
Passo 4: Lançar uma nova instância a partir da AMI
Com a AMI disponível, é possível validar o processo lançando uma instância de teste:
aws ec2 run-instances \
--image-id ami-0123456789abcdef0 \
--instance-type t3.large \
--key-name minha-chave-producao \
--security-group-ids sg-0abc123def456789 \
--subnet-id subnet-0123abcd4567ef89 \
--region sa-east-1Boas práticas
- Sempre versione o nome da AMI (ex. -v1, -v2) para manter rastreabilidade das alterações ao longo do tempo.
- Evite usar
--no-rebootem imagens que exigem forte consistência de disco, como bancos de dados locais rodando no Windows. - Utilize o AWS Systems Manager (SSM) para automatizar a criação de AMIs golden image com patches de segurança atualizados periodicamente.
- Remova AMIs e snapshots associados que não são mais utilizados com
aws ec2 deregister-imageeaws ec2 delete-snapshot, pois ambos geram custo de armazenamento. - Documente em uma planilha ou sistema de CMDB quais aplicações e versões cada AMI contém, facilitando auditorias de conformidade em ambientes industriais regulados.