Introdução
O Ubuntu Linux é uma escolha comum para servidores de aplicação, gateways de integração e serviços de backend na AWS, por sua estabilidade, suporte de longo prazo (LTS) e vasta documentação. Este tutorial detalha o processo de criação de uma instância EC2 com Ubuntu, cobrindo desde a escolha da AMI até o primeiro acesso via SSH.
Pré-requisitos
- Conta AWS ativa com permissões para criar recursos EC2 e Security Groups
- Um Key Pair já criado, no formato .pem (ex. producao-servidores-linux.pem)
- AWS CLI instalado e configurado, para a criação via linha de comando
- Cliente SSH disponível no sistema operacional local
Passo 1: Escolher a AMI oficial do Ubuntu
A Canonical publica AMIs oficiais do Ubuntu na AWS Marketplace. Para localizar a versão mais recente do Ubuntu 22.04 LTS na região sa-east-1:
aws ec2 describe-images \
--owners 099720109477 \
--filters "Name=name,Values=ubuntu/images/hvm-ssd/ubuntu-jammy-22.04-amd64-server-*" \
--query "sort_by(Images, &CreationDate)[-1].[ImageId,Name]" \
--region sa-east-1O proprietário 099720109477 corresponde à conta oficial da Canonical na AWS. O comando retorna o ImageId mais recente, por exemplo ami-0fedcba1234567890.
Passo 2: Criar o Security Group
aws ec2 create-security-group \
--group-name ssh-acesso-restrito \
--description "Permite SSH apenas da rede corporativa" \
--vpc-id vpc-0a1b2c3d4e5f6789aLibere a porta 22 apenas para IPs confiáveis:
aws ec2 authorize-security-group-ingress \
--group-id sg-0def456abc789012 \
--protocol tcp \
--port 22 \
--cidr 203.0.113.0/24Passo 3: Lançar a instância via console AWS
- No console EC2, clique em Launch instance.
- Defina o nome, por exemplo: ubuntu-app-backend-01.
- Em Application and OS Images, selecione Ubuntu Server 22.04 LTS.
- Escolha o tipo de instância, por exemplo t3.medium.
- Selecione o Key Pair já criado.
- Configure a VPC, sub-rede e o Security Group criado anteriormente.
- Ajuste o volume EBS conforme necessário (ex. 30 GiB, gp3).
- Clique em Launch instance.
Passo 4: Lançar a instância via AWS CLI
aws ec2 run-instances \
--image-id ami-0fedcba1234567890 \
--instance-type t3.medium \
--key-name producao-servidores-linux \
--security-group-ids sg-0def456abc789012 \
--subnet-id subnet-0123abcd4567ef89 \
--block-device-mappings "DeviceName=/dev/sda1,Ebs={VolumeSize=30,VolumeType=gp3}" \
--tag-specifications 'ResourceType=instance,Tags=[{Key=Name,Value=ubuntu-app-backend-01}]' \
--region sa-east-1Verificando o status da instância
aws ec2 describe-instances \
--instance-ids i-0a1b2c3d4e5f67890 \
--query "Reservations[].Instances[].State.Name"Aguarde o status mudar para running antes de tentar conectar.
Passo 5: Conectar via SSH
Obtenha o IP público da instância:
aws ec2 describe-instances \
--instance-ids i-0a1b2c3d4e5f67890 \
--query "Reservations[].Instances[].PublicIpAddress"Conecte-se usando a chave privada correspondente:
chmod 400 producao-servidores-linux.pem
ssh -i producao-servidores-linux.pem [email protected]Boas práticas
- Restrinja o acesso SSH por IP de origem e considere usar AWS Systems Manager Session Manager para eliminar a necessidade da porta 22 aberta.
- Execute
sudo apt-get update && sudo apt-get upgrade -ylogo após o primeiro acesso para aplicar patches de segurança. - Configure o Amazon CloudWatch Agent para monitorar métricas de sistema operacional, como uso de memória e disco.
- Use tags consistentes (Ambiente, Projeto, Responsável) para facilitar o controle de custos e a governança de múltiplas instâncias.
- Automatize a criação de instâncias recorrentes com Terraform ou AWS CloudFormation, reduzindo erros manuais de configuração de rede e segurança.