Neste laboratório, criei uma infraestrutura de rede do zero na AWS e coloquei um servidor web Apache (httpd) no ar em uma instância Amazon EC2, utilizando apenas o Console de Gerenciamento da AWS.
O projeto cobre desde a criação da rede (VPC, sub-rede, gateway de internet e rotas) até a automação da instalação do servidor por User Data e a publicação de uma página HTML acessível pela internet.
- ✅ Criar uma VPC e uma sub-rede pública novas
- ✅ Configurar Internet Gateway e tabela de rotas
- ✅ Lançar uma instância EC2 Amazon Linux do tipo T3 (menor que medium)
- ✅ Atribuir automaticamente um IPv4 público
- ✅ Instalar e iniciar o httpd via User Data
- ✅ Usar volume SSD de uso geral (gp2) como volume raiz
- ✅ Configurar Security Group liberando SSH (22) e HTTP (80)
- ✅ Conectar à instância via EC2 Instance Connect
- ✅ Publicar a página
projects.htmle validar no navegador
flowchart LR
U["👤 Usuário<br/>Navegador"] -->|"HTTP 80"| IGW
subgraph AWS["☁️ AWS Cloud"]
subgraph VPC["🔷 VPC 10.0.0.0/16"]
IGW["🌐 Internet Gateway"] --> RT["🛣️ Route Table<br/>0.0.0.0/0 → IGW"]
RT --> SUB
subgraph SUB["🟢 Sub-rede pública 10.0.1.0/24"]
EC2["🖥️ EC2 t3.small<br/>Amazon Linux + httpd<br/>gp2 · IPv4 público"]
end
SG["🛡️ Security Group<br/>SSH 22 · HTTP 80"] -.protege.-> EC2
end
end
style U fill:#0d6efd,color:#fff,stroke:#0a58ca
style IGW fill:#8C4FFF,color:#fff,stroke:#6f3fd1
style RT fill:#FF9900,color:#000,stroke:#cc7a00
style EC2 fill:#2ea44f,color:#fff,stroke:#22863a
style SG fill:#D22128,color:#fff,stroke:#a51a20
| 🎨 Categoria | 🔧 Tecnologia | 📝 Função no projeto |
|---|---|---|
| ☁️ Cloud | Amazon EC2 | Servidor virtual que hospeda o site |
| 🌐 Rede | Amazon VPC | Rede privada isolada e sub-rede pública |
| 🚪 Rede | Internet Gateway | Conecta a VPC à internet |
| 🛣️ Rede | Route Table | Direciona o tráfego externo para o gateway |
| 🛡️ Segurança | Security Group | Libera apenas SSH (22) e HTTP (80) |
| 💾 Storage | EBS gp2 | Volume raiz SSD de uso geral |
| 🐧 SO | Amazon Linux | Sistema operacional da instância |
| 🕸️ Web | Apache httpd | Servidor web |
| 🔑 Acesso | EC2 Instance Connect | SSH direto pelo navegador |
| 🔹 Recurso | 🔸 Valor |
|---|---|
| VPC | lab-vpc · 10.0.0.0/16 |
| Sub-rede | lab-subnet-publica · 10.0.1.0/24 |
| Internet Gateway | lab-igw (anexado à VPC) |
| Rota | 0.0.0.0/0 → lab-igw |
| Security Group | lab-sg-web (TCP 22 e TCP 80) |
| AMI | Amazon Linux |
| Tipo de instância | t3.small |
| Volume raiz | gp2 · 8 GiB |
| IP público | Atribuição automática habilitada |
Script executado automaticamente na inicialização da instância:
#!/bin/bash
yum update -y
yum install -y httpd
systemctl enable httpd
systemctl start httpd
usermod -a -G apache ec2-user
chown -R ec2-user:apache /var/www/html
chmod 2775 /var/www/html
find /var/www/html -type d -exec chmod 2775 {} \;
find /var/www/html -type f -exec chmod 0664 {} \;💡 O script instala e inicia o Apache, habilita o serviço na inicialização do sistema e concede permissão de escrita em
/var/www/html.
- Criar a VPC
10.0.0.0/16e habilitar nomes de host DNS - Criar a sub-rede pública
10.0.1.0/24 - Habilitar a atribuição automática de IPv4 público na sub-rede
- Criar o Internet Gateway e anexá-lo à VPC
- Criar a tabela de rotas, adicionar
0.0.0.0/0 → IGWe associá-la à sub-rede
- Criar o Security Group com entrada SSH (22) e HTTP (80)
- Lançar a EC2 com AMI Amazon Linux,
t3.smalle volumegp2 - Selecionar a VPC, a sub-rede e o Security Group criados
- Colar o script de User Data em Detalhes avançados
- Conectar via EC2 Instance Connect
- Criar o arquivo
projects.htmle copiá-lo para/var/www/html - Acessar
http://<IP-PUBLICO>/projects.htmlno navegador
<!DOCTYPE html>
<html>
<body>
<h1>SEU-NOME's re/Start Project Work</h1>
<p>EC2 Instance Challenge Lab</p>
</body>
</html>sudo cp projects.html /var/www/html/- 🌐 Como a VPC, a sub-rede, o Internet Gateway e a tabela de rotas trabalham juntos para dar acesso à internet
- 🛡️ A função do Security Group como firewall da instância
- 🤖 Como automatizar a configuração de um servidor com User Data
- 🔑 Como acessar uma instância com EC2 Instance Connect, sem precisar de cliente SSH local
- 🔐 Como ajustar permissões de arquivos e diretórios no Linux
- Restringir o acesso SSH a um IP específico
- Habilitar HTTPS com certificado
- Adicionar um Elastic IP para manter o IP fixo
- Provisionar a mesma infraestrutura com Terraform ou CloudFormation
- Evoluir para um Application Load Balancer com Auto Scaling
⚠️ Ao finalizar o laboratório, encerre a instância para evitar cobranças desnecessárias.

