Pular para o conteúdo principal

Introdução ao Amazon EC2

O que é Amazon EC2?​

Amazon EC2 (Elastic Compute Cloud) é o serviço de computação fundamental da AWS. Ele permite que você alugue servidores virtuais (chamados de instâncias) na nuvem.

┌─────────────────────────────────────────────────────────────┐
│ AMAZON EC2 │
├─────────────────────────────────────────────────────────────┤
│ │
│ "Servidores virtuais sob demanda" │
│ │
│ ┌─────────────────────────────────────────────────┐ │
│ │ Instância EC2 │ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │ CPU │ │ RAM │ │ Armazen. │ │ │
│ │ │ (vCPU) │ │ (GiB) │ │ (EBS) │ │ │
│ │ └──────────┘ └──────────┘ └──────────┘ │ │
│ │ │ │
│ │ ┌──────────┐ ┌──────────┐ ┌──────────┐ │ │
│ │ │ SO │ │ Rede │ │ Segurança│ │ │
│ │ │Linux/Win │ │ (IP) │ │ (SG) │ │ │
│ │ └──────────┘ └──────────┘ └──────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────┘ │
│ │
│ Você controla: │
│ • O tipo/tamanho da instância │
│ • O sistema operacional │
│ • Os softwares instalados │
│ • A configuração de rede e segurança │
└─────────────────────────────────────────────────────────────┘

Analogia: Aluguel de Apartamento​

┌────────────────────────────────────────────────────────────────┐
│ ALUGUEL TRADICIONAL vs AMAZON EC2 │
├────────────────────────────────────────────────────────────────┤
│ │
│ 🏠 Apartamento 💻 Instância EC2 │
│ ───────────── ───────────── │
│ Tamanho (m²) Tipo de instância (t2, m5) │
│ Número de quartos vCPU e RAM │
│ Localização (cidade) Região AWS │
│ Contrato (mín. 1 ano) Sob demanda (por segundo) │
│ Móveis opcionais AMI (SO pré-instalado) │
│ Tranca/Alarme Security Group │
│ │
│ 💰 Aluguel mensal fixo 💰 Pagamento por uso │
│ 📋 Aviso prévio de 3 meses 🔄 Parada imediata possível │
└────────────────────────────────────────────────────────────────┘

Casos de Uso do EC2​

Quando Usar EC2?​

Caso de UsoDescriçãoExemplo
Servidores WebHospedar sites e aplicaçõesApache, Nginx
Aplicações de negócioERP, CRM, softwares internosSAP, Oracle
Bancos de dadosBancos auto-gerenciadosMySQL, PostgreSQL
Desenvolvimento/TesteAmbientes temporáriosCI/CD, QA
Computação intensivaProcessamento de dadosAnalytics, ML
GamingServidores de jogosMinecraft, game servers

EC2 vs Outros Serviços​

┌─────────────────────────────────────────────────────────────┐
│ ESCOLHENDO O SERVIÇO DE COMPUTAÇÃO IDEAL │
├─────────────────────────────────────────────────────────────┤
│ │
│ EC2 Lambda ECS/EKS │
│ ┌────────────┐ ┌────────────┐ ┌────────────┐│
│ │ Controle │ │ Serverless │ │ Containers ││
│ │ total │ │ Eventos │ │ Docker ││
│ │ │ │ │ │ ││
│ │ SO completo│ │ Só código │ │ Imagens ││
│ │ 24/7 │ │ Sob demanda│ │ Orquestrado││
│ │ │ │ │ │ ││
│ └────────────┘ └────────────┘ └────────────┘│
│ │
│ Use EC2 se: │
│ ✅ Você precisa de um SO completo │
│ ✅ Aplicações de longa duração (24/7) │
│ ✅ Softwares que não podem ser containerizados │
│ ✅ Controle total da configuração │
│ │
│ NÃO use EC2 se: │
│ ❌ Tarefas curtas e baseadas em eventos → Lambda │
│ ❌ Aplicações containerizadas → ECS/EKS │
│ ❌ Sites estáticos → S3 + CloudFront │
└─────────────────────────────────────────────────────────────┘

Ciclo de Vida de uma Instância EC2​

┌─────────────────────────────────────────────────────────────┐
│ CICLO DE VIDA EC2 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────┐ │
│ │ PENDING │ ← Inicializando │
│ └────┬────┘ │
│ │ │
│ ▼ │
│ ┌─────────┐ ┌─────────┐ │
│ │STOPPING │◄──────►│ RUNNING │ ← Em execução │
│ └────┬────┘ └────┬────┘ (cobrança ativa) │
│ │ │ │
│ ▼ │ │
│ ┌─────────┐ │ │
│ │ STOPPED │◄────────────┘ │
│ └────┬────┘ ← Parada (sem cobrança de compute) │
│ │ │
│ │ Terminar │
│ ▼ │
│ ┌─────────────┐ │
│ │ TERMINATING │ │
│ └──────┬──────┘ │
│ │ │
│ ▼ │
│ ┌─────────────┐ │
│ │ TERMINATED │ ← Removida permanentemente │
│ └─────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘

Estados e Cobrança​

EstadoDescriçãoCobrança
PendingInicializandoNão
RunningEm execução✅ Sim
StoppingParandoSim
StoppedParadaNão (mas EBS é cobrado)
TerminatingEm processo de remoçãoNão
TerminatedRemovidaNão
Atenção

Uma instância Stopped não gera cobrança de compute (CPU/RAM), mas o armazenamento EBS continua sendo cobrado!

Modelos de Cobrança do EC2​

1. On-Demand (Sob Demanda)​

┌─────────────────────────────────────────────────────────────┐
│ ON-DEMAND │
├─────────────────────────────────────────────────────────────┤
│ │
│ 💰 Pagamento: Por hora ou por segundo │
│ 📋 Compromisso: Nenhum │
│ ⚡ Flexibilidade: Máxima │
│ 💲 Preço: Mais alto │
│ │
│ Ideal para: │
│ • Desenvolvimento e teste │
│ • Cargas imprevisíveis │
│ • Aplicações de curta duração │
│ │
│ Exemplo: t3.micro = ~$0.0104/hora (us-east-1) │
└─────────────────────────────────────────────────────────────┘

2. Reserved Instances (Instâncias Reservadas)​

┌─────────────────────────────────────────────────────────────┐
│ RESERVED INSTANCES │
├─────────────────────────────────────────────────────────────┤
│ │
│ 💰 Pagamento: Compromisso de 1 ou 3 anos │
│ 📋 Compromisso: Alto │
│ ⚡ Flexibilidade: Limitada │
│ 💲 Preço: Até 72% de desconto │
│ │
│ Tipos: │
│ • Standard: Melhor preço, menos flexível │
│ • Convertible: Preço intermediário, pode trocar tipo │
│ │
│ Ideal para: │
│ • Cargas estáveis e previsíveis │
│ • Aplicações de produção 24/7 │
│ │
└─────────────────────────────────────────────────────────────┘

3. Spot Instances​

┌─────────────────────────────────────────────────────────────┐
│ SPOT INSTANCES │
├─────────────────────────────────────────────────────────────┤
│ │
│ 💰 Pagamento: Leilão de capacidade ociosa │
│ 📋 Compromisso: Nenhum │
│ ⚡ Flexibilidade: Variável (pode ser interrompida) │
│ 💲 Preço: Até 90% de desconto! │
│ │
│ ⚠️ ATENÇÃO: A AWS pode retomar a instância │
│ com 2 minutos de aviso! │
│ │
│ Ideal para: │
│ • Processamento em lote │
│ • Cargas tolerantes a interrupções │
│ • CI/CD, testes │
│ │
└─────────────────────────────────────────────────────────────┘

Comparação de Preços (Exemplo t3.large, us-east-1)​

On-Demand     ████████████████████████████████  $0.0832/h (100%)
Reserved 1yr █████████████████████ $0.0528/h (63%)
Reserved 3yr ███████████████ $0.0333/h (40%)
Spot ████████ $0.0250/h (30%)

Componentes de uma Instância EC2​

┌─────────────────────────────────────────────────────────────┐
│ COMPONENTES DE UMA INSTÂNCIA EC2 │
├─────────────────────────────────────────────────────────────┤
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ INSTÂNCIA EC2 │ │
│ │ │ │
│ │ ┌────────────────────────────────────────────────┐ │ │
│ │ │ 1. AMI (Amazon Machine Image) │ │ │
│ │ │ Sistema operacional + softwares │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌────────────────────────────────────────────────┐ │ │
│ │ │ 2. Tipo de Instância │ │ │
│ │ │ CPU (vCPU) + RAM (GiB) │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌────────────────────────────────────────────────┐ │ │
│ │ │ 3. Armazenamento (EBS ou Instance Store) │ │ │
│ │ │ Discos conectados │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌────────────────────────────────────────────────┐ │ │
│ │ │ 4. Configuração de Rede │ │ │
│ │ │ VPC, Subnet, IP público/privado │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌────────────────────────────────────────────────┐ │ │
│ │ │ 5. Security Group │ │ │
│ │ │ Regras de firewall │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ │ │ │
│ │ ┌────────────────────────────────────────────────┐ │ │
│ │ │ 6. Par de Chaves │ │ │
│ │ │ Autenticação SSH │ │ │
│ │ └────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘

Metadados da Instância​

Cada instância EC2 tem acesso aos seus próprios metadados através de uma URL especial:

http://169.254.169.254/latest/meta-data/

Informações Disponíveis​

EndpointInformação
/instance-idID da instância
/instance-typeTipo (t3.micro, etc.)
/ami-idID da AMI
/local-ipv4IP privado
/public-ipv4IP público
/placement/availability-zoneZona de disponibilidade

Exemplo de Uso​

# Da instância EC2
curl http://169.254.169.254/latest/meta-data/instance-id
# Resultado: i-0123456789abcdef0

curl http://169.254.169.254/latest/meta-data/instance-type
# Resultado: t3.micro
Utilidade

Os metadados são úteis para:

  • Scripts de configuração automática
  • Aplicações que precisam conhecer seu ambiente
  • Recuperação de credentials IAM temporários

Resumo​

ConceitoDescrição
EC2Serviço de máquinas virtuais da AWS
InstânciaUm servidor virtual individual
AMIImagem de sistema (SO + softwares)
TipoConfiguração de CPU/RAM
On-DemandPagamento por uso, flexível
ReservedCompromisso de longo prazo, economia
SpotCapacidade ociosa, muito econômico mas pode ser interrompido

Quiz de Validação​

  1. O que é uma instância EC2?
  2. Qual a diferença entre os estados "Stopped" e "Terminated"?
  3. Qual modelo de cobrança oferece maior flexibilidade?
  4. Qual modelo oferece maior economia com risco de interrupção?
  5. Quais são os 6 principais componentes de uma instância EC2?
  6. Para que servem os metadados da instância?

Próxima seção: Regiões e Zonas de Disponibilidade