Linux + AWS: O Guia do Sysadmin para Trabalhar com EC2, IAM e S3
Linux e AWS são a combinação mais pedida em vagas de infraestrutura hoje. Toda instância EC2 é uma máquina Linux — e entender o sistema por baixo separa o sysadmin que resolve problemas do que fica esperando a nuvem resolver sozinha.
AWS CLI no Linux
O primeiro passo para trabalhar com AWS no terminal é instalar e configurar a AWS CLI:
# Instalação (Linux x86_64)
curl "https://awscli.amazonaws.com/awscli-exe-linux-x86_64.zip" -o "awscliv2.zip"
unzip awscliv2.zip
sudo ./aws/install
# Verificar instalação
aws --version
# Configurar credenciais
aws configure
# AWS Access Key ID: AKIA...
# AWS Secret Access Key: ...
# Default region name: us-east-1
# Default output format: json
# Testar autenticação
aws sts get-caller-identity
EC2: Linux na Nuvem
EC2 (Elastic Compute Cloud) é simplesmente uma VM Linux rodando na AWS. Tudo que você já sabe de administração Linux se aplica diretamente.
# Listar suas instâncias com estado e IP
aws ec2 describe-instances --query 'Reservations[].Instances[].[InstanceId,State.Name,PublicIpAddress,Tags[?Key==`Name`].Value|[0]]' --output table
# Iniciar instância parada
aws ec2 start-instances --instance-ids i-1234567890abcdef0
# Parar instância
aws ec2 stop-instances --instance-ids i-1234567890abcdef0
# Conectar via SSH — igual a qualquer servidor Linux
ssh -i ~/.ssh/minha-chave.pem [email protected]
User Data: bootstrap na primeira inicialização
# Criar instância com script de configuração automático
aws ec2 run-instances --image-id ami-0c55b159cbfafe1f0 --instance-type t3.micro --key-name minha-chave --user-data file://setup.sh
#!/bin/bash
# setup.sh — roda como root na primeira inicialização
yum update -y
yum install -y nginx
systemctl enable nginx --now
echo "Servidor provisionado" > /usr/share/nginx/html/index.html
Security Groups: o Firewall da AWS
Security Groups são o equivalente ao ufw/iptables na AWS. Definem quais portas aceitam tráfego de entrada e saída.
# Ver regras de um security group
aws ec2 describe-security-groups --group-ids sg-12345
# Liberar SSH apenas do seu IP atual
MY_IP=$(curl -s ifconfig.me)
aws ec2 authorize-security-group-ingress --group-id sg-12345 --protocol tcp --port 22 --cidr ${MY_IP}/32
# Liberar HTTP para o mundo
aws ec2 authorize-security-group-ingress --group-id sg-12345 --protocol tcp --port 80 --cidr 0.0.0.0/0
# Remover regra
aws ec2 revoke-security-group-ingress --group-id sg-12345 --protocol tcp --port 22 --cidr ${MY_IP}/32
IAM: Permissões na AWS
IAM (Identity and Access Management) é o sistema de permissões da AWS. O conceito é o mesmo do Linux — usuário, grupo, permissão — mas aplicado a serviços cloud.
# Criar usuário para deploy automatizado
aws iam create-user --user-name deploy-bot
# Criar chave de acesso para o usuário
aws iam create-access-key --user-name deploy-bot
# Adicionar política gerenciada (permissão pronta da AWS)
aws iam attach-user-policy --user-name deploy-bot --policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
# Ver políticas do usuário
aws iam list-attached-user-policies --user-name deploy-bot
Princípio do menor privilégio: dê apenas as permissões que o usuário/serviço realmente precisa — nunca AdministratorAccess para bots de deploy.
S3: Armazenamento e Backup
S3 é usado para armazenar arquivos estáticos, backups, logs e imagens de container:
# Criar bucket
aws s3 mb s3://meu-bucket-backup-2026
# Copiar arquivo para S3
aws s3 cp /var/log/app.log s3://meu-bucket-backup-2026/logs/
# Sincronizar diretório (como rsync, mas para S3)
aws s3 sync /var/backups/ s3://meu-bucket-backup-2026/backups/
# Listar objetos no bucket
aws s3 ls s3://meu-bucket-backup-2026/ --recursive --human-readable
# Download de arquivo
aws s3 cp s3://meu-bucket-backup-2026/backups/db.tar.gz /tmp/
Script de backup automático para S3
#!/bin/bash
# backup-s3.sh — agendar no cron
DATE=$(date +%Y-%m-%d)
BUCKET="s3://meu-bucket-backup"
# Backup do MySQL
mysqldump -u root -p$DB_PASS meu_banco | gzip > /tmp/backup-$DATE.sql.gz
aws s3 cp /tmp/backup-$DATE.sql.gz $BUCKET/mysql/
rm /tmp/backup-$DATE.sql.gz
echo "Backup $DATE concluído"
SSM Session Manager: SSH sem Porta 22
O AWS Systems Manager permite acessar instâncias sem abrir a porta 22, usando IAM para autenticar. Ideal para ambientes de alta segurança:
# Instalar o plugin SSM (Amazon Linux)
sudo yum install -y session-manager-plugin
# Conectar a uma instância sem SSH exposto
aws ssm start-session --target i-1234567890abcdef0
# Rodar comando remoto sem sessão interativa
aws ssm send-command --instance-ids i-1234567890abcdef0 --document-name "AWS-RunShellScript" --parameters 'commands=["df -h"]' --query 'Command.CommandId' --output text
CloudWatch: Logs e Monitoramento
# Ver grupos de logs
aws logs describe-log-groups --query 'logGroups[].logGroupName' --output table
# Consultar logs recentes (últimos 30 min)
aws logs filter-log-events --log-group-name /var/log/nginx/access.log --start-time $(date -d '30 minutes ago' +%s)000 --filter-pattern "ERROR"
O Diferencial do Sysadmin Linux na AWS
Engenheiros cloud que não entendem Linux ficam travados quando o problema está no sistema operacional, não na infraestrutura. Saber ler logs com journalctl, diagnosticar conectividade com ss e traceroute, e entender permissões de arquivo torna você o profissional que resolve o problema, não o que abre ticket.
A combinação LPIC-1 + AWS Solutions Architect Associate é o perfil com maior diferença salarial entre júnior e pleno no mercado de infraestrutura brasileiro em 2026.