Lab 01: Introdução ao Amazon EC2
O Cenário (A "User Story")
Como um novo engenheiro de nuvem, EU QUERO lançar um servidor web simples na AWS, PARA QUE eu possa entender na prática o ciclo de vida completo de um servidor virtual, desde sua criação até sua destruição.
A Dor que o Lab Resolve
No mundo tradicional, obter um novo servidor físico pode levar semanas ou meses (compra, entrega, instalação no data center). Este laboratório mostra como a nuvem reduz esse processo para minutos, permitindo uma agilidade sem precedentes.
Objetivos de Aprendizado
Ao final deste laboratório, você será capaz de:
- Lançar (
Launch
) uma instância EC2 com um script de inicialização. - Monitorar a saúde da sua instância.
- Modificar um firewall virtual (
Security Group
) para permitir acesso web. - Redimensionar (
Resize
) sua instância para se adaptar a novas necessidades. - Testar e desabilitar a proteção contra término acidental.
- Terminar (
Terminate
) sua instância para parar os custos.
Tarefa 1: Lançando sua Instância EC2
Nesta tarefa, vamos criar nosso primeiro servidor virtual e, durante sua inicialização, instalar automaticamente um servidor web.
- No Console de Gerenciamento da AWS, no menu Services (Serviços), escolha EC2.
- No painel de navegação esquerdo, clique em EC2 Dashboard (Painel do EC2) para garantir que você está na página principal.
- Clique em Launch instance (Lançar instância).
Passo 1: Nomeando sua Instância
Dê um nome claro e descritivo. Isso cria uma Tag
Name
, que é a sua principal ferramenta de organização.
- No campo Name (Nome), digite
ServidorWeb
.
Passo 2: Escolhendo a Imagem (AMI)
A Amazon Machine Image (AMI) é a "planta baixa" do seu servidor. Ela define o sistema operacional e os softwares pré-instalados.
- Mantenha a seleção padrão: Amazon Linux 2023. É uma imagem otimizada, segura e mantida pela AWS.
Passo 3: Escolhendo o Tipo de Instância
O "Tipo de Instância" é o "motor" do seu servidor. Define a quantidade de CPU, memória RAM e a capacidade de rede.
- Na lista Instance type (Tipo de instância), selecione
t3.micro
. >!!! tip "Dica do Free Tier"
> A instânciat2.micro
(out3.micro
em algumas regiões) geralmente faz parte do Nível Gratuito da AWS, sendo perfeita para aprendizado e testes.
Passo 4: Configurando o Par de Chaves
O Par de Chaves é sua "chave criptografada" para acessar o servidor via SSH (para Linux) ou RDP (para Windows). Como este lab não exige acesso direto, podemos pular esta etapa.
- Em Key pair (login) (Par de chaves), selecione Proceed without a key pair (Prosseguir sem um par de chaves).
Passo 5: Configurando a Rede
Aqui definimos em qual "bairro" (VPC e Sub-rede) nosso servidor vai morar e qual será seu "porteiro" (Security Group).
- Clique em Edit (Editar) na seção Network settings (Configurações de rede).
- Para VPC, selecione
Lab VPC
. - Em Firewall (security groups) (Firewall (grupos de segurança)), selecione Create security group (Criar um grupo de segurança).
- Dê os nomes:
- Security group name (Nome):
Firewall-Servidor-Web
- Description (Descrição):
Firewall para meu servidor web
- Security group name (Nome):
- Ação Crítica: Na seção Inbound security groups rules (Regras de entrada), encontre a regra de SSH (porta 22) que pode estar lá por padrão e clique em Remove (Remover). > (COBIT - Segurança): Por que removemos a regra? Pelo Princípio do Menor Privilégio. Se não vamos acessar o servidor via SSH neste lab, a porta de gerenciamento deve permanecer fechada para o mundo, reduzindo a superfície de ataque.
Passo 6: Adicionando Armazenamento
Toda instância precisa de um "HD virtual", que na AWS é um volume EBS (Elastic Block Store). Este é o volume raiz, onde o sistema operacional fica instalado.
- Mantenha a configuração padrão de armazenamento (8 GiB).
Passo 7: Configurando Detalhes Avançados
Aqui está a mágica da automação na nuvem! Vamos usar um script User Data para configurar nosso servidor automaticamente durante a inicialização.
- Expanda a seção Advanced details (Detalhes avançados).
- Encontre a opção Termination protection (Proteção contra término) e, no menu suspenso, selecione Enable (Habilitar). > (ITIL - Gerenciamento de Riscos): Por que habilitamos isso? Para prevenir a exclusão acidental de um servidor de produção, que é um erro humano comum e de alto impacto. É um controle preventivo.
- Role para baixo até o campo User data (Dados do usuário) e cole o script abaixo: > Este script atualiza o sistema, instala o servidor web Apache (
#!/bin/bash yum update -y yum -y install httpd systemctl enable httpd systemctl start httpd echo '<html><h1>Ola Mundo! Meu primeiro servidor web na AWS!</h1></html>' > /var/www/html/index.html
httpd
), o configura para iniciar no boot, inicia o serviço e cria uma página web simples.
Passo 8: Lançando a Instância
- No painel direito, revise o resumo e clique em Launch instance (Lançar instância).
- Clique em View all instances (Ver todas as instâncias).
- Aguarde até que o Instance State (Estado da instância) mude para
Running
e o Status Checks (Verificações de status) mostre2/2 checks passed
. Pode ser necessário clicar no ícone de atualização.
Tarefa 2: Monitorando sua Instância
A Dor que Resolve: Como saber se meu servidor está saudável e funcionando corretamente?
- Selecione sua instância
ServidorWeb
na lista. - Na parte inferior da tela, explore as abas:
- Status checks (Verificações de status): O "check-up" da AWS. Mostra se a infraestrutura subjacente (System) e a instância em si (Instance) estão respondendo.
- Monitoring (Monitoramento): O "eletrocardiograma". Aqui você vê os gráficos do Amazon CloudWatch para métricas como
CPU utilization
(Uso de CPU).
- No menu Actions (Ações) no topo, vá em Monitor and troubleshoot (Monitorar e solucionar problemas) > Get instance screenshot (Obter screenshot da instância). Isso te mostra o que apareceria em um monitor físico conectado ao servidor, útil para diagnosticar problemas de boot.
Tarefa 3: Atualizando o Firewall e Acessando o Site
- Com sua instância
ServidorWeb
selecionada, copie o valor do Public IPv4 address (Endereço IPv4 público) no painel de detalhes. - Abra uma nova aba no seu navegador, cole o endereço IP e pressione Enter.
-
Pergunta: O que aconteceu? Resposta: A conexão falhou (deu timeout). > Por quê? Porque nosso "porteiro" (
Firewall-Servidor-Web
) não tem nenhuma regra de entrada. Ele está bloqueando todo o tráfego. -
Vamos corrigir:
- No painel de navegação esquerdo, em Network & Security, clique em Security Groups (Grupos de segurança).
- Selecione o grupo
Firewall-Servidor-Web
. - Clique na aba Inbound rules (Regras de entrada) e depois em Edit inbound rules (Editar regras de entrada).
- Clique em Add rule (Adicionar regra) e configure:
- Type (Tipo):
HTTP
(isso preencherá automaticamente a porta 80). - Source (Origem):
Anywhere-IPv4
(isso preencherá0.0.0.0/0
).
- Type (Tipo):
- Clique em Save rules (Salvar regras).
-
Volte para a aba do navegador onde você colou o IP e atualize a página. Agora você deve ver a mensagem "Ola Mundo!".
Tarefa 4: Redimensionando sua Instância
A Dor que Resolve: Sua aplicação cresceu e o servidor
t3.micro
ficou pequeno. Você precisa de mais potência (escalabilidade vertical) sem precisar criar um servidor novo do zero.
-
Pare a Instância:
- Volte para Instances (Instâncias), selecione seu
ServidorWeb
. - Clique em Instance state (Estado da instância) > Stop instance (Parar instância). Confirme.
- Aguarde o estado mudar para
stopped
.
- Volte para Instances (Instâncias), selecione seu
-
Mude o Tipo de Instância:
- Com a instância parada e selecionada, vá em Actions (Ações) > Instance Settings (Configurações da instância) > Change instance type (Alterar tipo de instância).
- Selecione
t3.small
e clique em Change instance type.
-
Redimensione o Disco (Volume EBS):
- No menu esquerdo, em Elastic Block Store, clique em Volumes.
- Selecione o volume de 8 GiB associado ao seu servidor.
- Vá em Actions (Ações) > Modify volume (Modificar volume).
- Altere o Size (Tamanho) para
10
e clique em Modify. Confirme.
-
Inicie a Instância:
- Volte para Instances, selecione seu servidor e vá em Instance state > Start instance (Iniciar instância).
Parabéns! Sua instância agora tem o dobro de memória e mais espaço em disco.
Tarefa 5: Testando a Proteção contra Término
- Com seu servidor no estado
running
, selecione-o e vá em Instance state > Terminate instance (Terminar instância). -
Observe a falha: Você receberá uma mensagem de erro dizendo que a instância não pode ser terminada. A proteção que ativamos no Passo 1 funcionou!
-
Desabilite a Proteção:
- Vá em Actions > Instance settings > Change termination protection (Alterar proteção contra término).
- Desmarque a caixa Enable (Habilitar) e clique em Save (Salvar).
-
Termine a Instância (Ação Final):
- Agora, vá novamente em Instance state > Terminate instance.
- Confirme clicando em Terminate.
!!! danger "Ação Irreversível"
Terminar uma instância é um ato destrutivo. A instância e o volume EBS raiz (por padrão) são permanentemente excluídos.
Limpeza de Recursos
Neste lab, o ato de terminar a instância já limpou todos os recursos. Lembre-se sempre de deletar o Security Group criado (Firewall-Servidor-Web
) se não for mais utilizá-lo.