Seu disco no EC2 está cheio. O app está jogando erros, os logs pararam de rotacionar, e o pipeline de CI/CD está falhando silenciosamente. Você já redimensionou o volume no Console da AWS, mas o sistema operacional não tem a menor ideia. Este post mostra os passos exatos para fazer o SO usar esse espaço novo de verdade.
TL;DR: Redimensione um volume EBS no EC2 e expanda o filesystem para que o espaço novo fique disponível ao SO.
Stack: AWS EC2, EBS, Linux (bash), parted, resize2fs, growpart
Nível: Intermediário
Tempo de leitura: ~5 min
Já fiz isso mais vezes do que gostaria de admitir. O disco enche em produção às 2 da manhã, e você fica olhando para um volume que a AWS diz ser 500GB mas o SO insiste que ainda é 100GB. Dois comandos resolvem. Este post existe para você encontrar esses dois comandos antes de precisar do jeito difícil.
Modificar o volume
Comece no Console da AWS. Vá em EC2, encontre seu volume em Elastic Block Store e clique em Modify. Defina o novo tamanho e confirme. A AWS aplica a mudança no nível do block device, o SO ainda está feliz e sem saber de nada.
Verificando o espaço na instância
Acesse a instância via SSH e rode lsblk para ver o que o kernel acha sobre o layout do disco. Você vai notar que o block device físico já tem o novo tamanho, a partição é que ainda não foi avisada.
lsblk
Atualizando o disco
Três passos: verificar o uso atual com df, inspecionar o layout de partições com fdisk, expandir a partição com parted e depois redimensionar o filesystem. Não pule o passo do df, ele diz exatamente qual dispositivo e partição você precisa alterar.
Primeiro, verifique o uso do disco para identificar qual partição expandir (provavelmente nvme0n1p1):
sudo df -h
Depois, veja o layout de partições:
sudo fdisk -l
Use o parted para redimensionar a partição principal. Isso expande o limite da partição para preencher o espaço disponível no block device:
sudo parted /dev/nvme0n1
Dentro do parted, rode estes comandos:
print # Ver a lista de partições
resizepart 1 # Redimensionar a partição 1 (ajuste se necessário)
Quando pedir o “End”, informe o tamanho alvo (ajuste para o seu volume):
537GB
Saia do parted:
quit
Agora redimensione o filesystem ext4 na partição. Este é o passo que realmente torna o espaço visível ao SO, sem isso você tem uma partição maior que ninguém pode usar:
sudo resize2fs /dev/nvme0n1p1
Verifique se o SO agora reporta o tamanho correto:
df -h
O que você fez
Você redimensionou um volume EBS pelo Console da AWS, confirmou o novo tamanho no nível do block device, expandiu a partição com parted e redimensionou o filesystem ext4 com resize2fs. O SO agora enxerga e pode usar todo o espaço alocado. Os seus logs podem respirar de novo.
Próximos passos
- Configure alertas de uso de disco: Use o CloudWatch para disparar um alarme quando o uso do disco ultrapassar 80%. Descobrir que o disco está cheio por um alerta às 2 da manhã é um rito de passagem, mas uma vez já basta.
- Automatize com AWS Systems Manager: Para frotas de instâncias, o SSM Run Command permite rodar esses passos de redimensionamento em várias máquinas sem precisar de SSH em cada uma.
- Considere EFS para armazenamento compartilhado: Se várias instâncias precisam do mesmo storage e você continua batendo nesse problema, o Amazon EFS escala automaticamente e elimina toda essa cerimônia de redimensionamento.
Dúvidas ou feedback? Me encontre no LinkedIn ou GitHub.