EC2 na prática: Armazenamento com EBS, Snapshot e AMI
Manual passo a passo para operações de armazenamento em uma instância EC2 já criada: anexar um novo volume EBS, criar snapshots, entender os tipos de storage e gerar uma AMI personalizada.
Pré-requisito: uma instância EC2 em estado
running(ver manual 01) e acesso SSH a ela.
Parte 1: Adicionar um novo disco (volume EBS)
O EBS é o serviço de discos da AWS, o equivalente ao VMDK no datastore. Um volume pode ser criado, anexado e removido de instâncias a quente, sem desligar nada.
1.1 Criar o volume
- Console EC2 → menu lateral Elastic Block Store → Volumes → Create volume.
- Preencha:
- Volume type:
gp3 - Size:
10GiB (para o exercício) - Availability Zone: ⚠️ a MESMA da sua instância (veja na aba de detalhes da instância, ex.:
eu-west-1a). Um volume só pode ser anexado a instâncias da mesma AZ.
- Volume type:
- (Opcional) Adicione a tag
Name=SEUNOME. - Clique em Create volume. O estado inicial é
Available(criado, mas solto).
1.2 Anexar à instância
- Selecione o volume → Actions → Attach volume.
- Em Instance, escolha a sua instância.
- Device name: mantenha o sugerido (ex.:
/dev/sdf). - Clique em Attach volume, o estado muda para
In-use.
1.3 Preparar o disco no sistema operacional
Na sessão SSH da instância:
# O novo disco aparece sem partição nem filesystem
lsblk
Saída esperada (o novo disco aparece como nvme1n1, sem ponto de montagem):
NAME SIZE MOUNTPOINT
nvme0n1 30G
├─nvme0n1p1 29.9G /
nvme1n1 10G
# Criar o filesystem
sudo mkfs.ext4 /dev/nvme1n1
# Criar o ponto de montagem e montar
sudo mkdir /dados
sudo mount /dev/nvme1n1 /dados
# Verificar
df -h /dados
Para montagem persistente (sobreviver a reboot), adicione ao /etc/fstab usando o UUID:
sudo blkid /dev/nvme1n1 # copie o UUID
echo 'UUID=SEU_UUID /dados ext4 defaults,nofail 0 2' | sudo tee -a /etc/fstab
💡 A opção
nofailevita que a instância trave no boot caso o volume não esteja anexado.
1.4 Expandir um volume (bônus)
Volumes podem crescer a quente (nunca encolher):
- Volumes → selecione → Actions → Modify volume → novo tamanho → Modify.
- No SO, expanda o filesystem:
sudo resize2fs /dev/nvme1n1 # ext4
# (para o disco root com partição: sudo growpart /dev/nvme0n1 1 antes)
Parte 2: Snapshots
Snapshot é a cópia point-in-time de um volume, armazenada internamente no S3. É incremental: o primeiro copia tudo, os seguintes só os blocos alterados.
💡 Diferente do snapshot do vSphere, o snapshot EBS não degrada a performance do volume e pode ser mantido por tempo indefinido. É a base de backup, cópia entre AZs/regiões e criação de AMIs.
2.1 Criar um snapshot
- Gere um arquivo de teste no disco para provar o backup:
echo "dados importantes $(date)" | sudo tee /dados/prova.txt
- Console → Elastic Block Store → Volumes → selecione o volume de dados → Actions → Create snapshot.
- Description:
SEUNOME. - Create snapshot. Acompanhe em EBS → Snapshots até o status
Completed.
2.2 Restaurar um snapshot
Snapshot não se "restaura por cima", ele gera um volume novo:
- Snapshots → selecione → Actions → Create volume from snapshot.
- Escolha tipo (
gp3), tamanho (igual ou maior) e a AZ da instância. - Anexe o novo volume à instância (como na Parte 1.2) e monte em outro ponto (ex.:
/restore):
sudo mkdir /restore
sudo mount /dev/nvme2n1 /restore
cat /restore/prova.txt # o arquivo está lá 🎉
💡 Esse fluxo (snapshot → volume novo → anexar) também é como se copia um disco entre AZs ou regiões: o snapshot é regional, o volume é zonal.
Parte 3: Tipos de storage EBS
Cada volume tem um tipo, que define performance e preço, o equivalente aos tiers de storage do datacenter:
| Tipo | Mídia | Uso típico | Equivalente on-prem |
|---|---|---|---|
| gp3 | SSD | Padrão para quase tudo; IOPS/throughput configuráveis por volume | Tier SSD geral |
| io2 | SSD | Bancos de dados críticos, IOPS provisionadas e garantidas | All-flash de produção |
| st1 | HDD | Throughput sequencial: logs, big data, ETL | Tier NL-SAS |
| sc1 | HDD | Dados frios, acesso raro, menor custo | Tier de arquivamento |
Pontos que valem memorizar:
- gp3 é o default sensato e permite ajustar IOPS (até 16.000) e throughput sem trocar de tipo nem de mídia.
- O tipo pode ser trocado a quente (Modify volume), sem desligar a instância.
- Volume EBS é zonal (vive em uma AZ); snapshot é regional.
- EBS é storage de bloco (disco). Para arquivos compartilhados existe o EFS (≈ NFS) e para objetos o S3 (backup, logs, imagens), assuntos de outro capítulo.
Parte 4: Criar uma AMI personalizada
AMI é a imagem/template da máquina. Criar uma AMI a partir de uma instância configurada é o mesmo fluxo de "preparar uma VM padrão e converter em template" do vSphere.
4.1 Preparar a instância
Deixe a máquina no estado que deseja "congelar", por exemplo, com o nginx já instalado (manual 01, passo 10).
4.2 Criar a imagem
- Instances → selecione a instância → Actions → Image and templates → Create image.
- Image name:
SEUNOME-ubuntu-nginx. - No reboot: deixe desmarcado (a AWS reinicia a instância rapidamente para garantir consistência do filesystem, recomendado).
- Create image.
- Acompanhe em Images → AMIs até o status
Available(alguns minutos).
💡 Por baixo, a AMI é composta de snapshots dos volumes da instância + metadados. Ao deletar uma AMI (Deregister), os snapshots dela precisam ser apagados separadamente.
4.3 Testar a AMI
- AMIs → selecione a sua → Launch instance from AMI.
- Complete o wizard normalmente (tipo, chave, security group com HTTP liberado).
- Acesse o IP público da nova instância no navegador: o nginx já vem instalado, a máquina nasceu pronta.
💡 É assim que se padroniza ambiente na AWS: uma "golden image" da empresa, da qual todas as máquinas nascem. Versione no nome (
-v1,-v2) como faria com templates.
4.4 Observações importantes
- AMI é regional, para usar em outra região: Actions → Copy AMI.
- AMIs e seus snapshots geram custo de armazenamento, apague o que não usar.
Limpeza do laboratório
Ordem de limpeza para não deixar custo residual:
- Terminate nas instâncias criadas.
- Delete nos volumes avulsos que sobrarem (os com "delete on termination" somem sozinhos com a instância; os anexados manualmente não).
- Deregister na AMI de teste → depois Delete nos snapshots associados.
- Confira as telas de Instances, Volumes, Snapshots e AMIs, tudo vazio = fatura zerada.
Resumo dos conceitos deste manual
| Conceito | O que é | Equivalente on-prem |
|---|---|---|
| Volume EBS | Disco de bloco, zonal, hot-attach | VMDK no datastore |
| Snapshot | Backup incremental point-in-time, regional | Snapshot (sem a má fama) |
| gp3/io2/st1/sc1 | Tiers de performance/preço | Tiers de storage do array |
| AMI | Template de máquina (snapshots + metadados) | Template/OVA no vCenter |