Pular para o conteúdo principal

Tipos de Instâncias EC2

Entendendo os Tipos de Instância​

O tipo de instância determina os recursos de hardware (CPU, RAM, rede, armazenamento) disponíveis para seu servidor virtual. A AWS oferece mais de 500 tipos de instâncias!

┌─────────────────────────────────────────────────────────────┐
│ NOMENCLATURA DAS INSTÂNCIAS │
├─────────────────────────────────────────────────────────────┤
│ │
│ t3.large │
│ │ │ │
│ │ └── Tamanho (nano, micro, small, │
│ │ medium, large, xlarge, 2xlarge) │
│ │ │
│ └── Família + Geração │
│ (t=burstable, 3=3ª geração) │
│ │
│ Exemplos: │
│ • t3.micro = Burstable, 3ª gen, muito pequena │
│ • m5.xlarge = General purpose, 5ª gen, extra large │
│ • c6i.2xlarge = Compute otimizada, 6ª gen Intel │
│ • r5.4xlarge = Memory otimizada, 5ª gen │
│ │
└─────────────────────────────────────────────────────────────┘

As Famílias de Instâncias​

Visão Geral​

┌─────────────────────────────────────────────────────────────┐
│ FAMÍLIAS DE INSTÂNCIAS EC2 │
├─────────────────────────────────────────────────────────────┤
│ │
│ 🎯 GENERAL PURPOSE (T, M) │
│ Equilíbrio CPU/RAM, uso geral │
│ │
│ ⚡ COMPUTE OTIMIZADA (C) │
│ Mais CPU, cálculo intensivo │
│ │
│ 🧠 MEMORY OTIMIZADA (R, X) │
│ Mais RAM, bancos de dados │
│ │
│ 💾 STORAGE OTIMIZADA (I, D, H) │
│ I/O elevado, big data │
│ │
│ 🎮 ACCELERATED COMPUTING (P, G, Inf) │
│ GPU, machine learning │
│ │
└─────────────────────────────────────────────────────────────┘

Família T - Burstable (Uso Geral)​

┌─────────────────────────────────────────────────────────────┐
│ FAMÍLIA T (Burstable) │
├─────────────────────────────────────────────────────────────┤
│ │
│ Características: │
│ • Capacidade de "burst" além do baseline │
│ • Acumula créditos de CPU quando inativa │
│ • Econômica para cargas variáveis │
│ │
│ ┌─────────────────────────────────────────────────────┐ │
│ │ CPU Usage │ │
│ │ │ │
│ │ 100%| ████ │ │
│ │ | ████ Burst (usa créditos) │ │
│ │ 40%|──────────████─────────────── Baseline │ │
│ │ | ████ ████ │ │
│ │ 0%| ████ ████ │ │
│ │ └──────────────────────────────────► Tempo │ │
│ │ Acumula Usa Acumula │ │
│ │ créditos créditos créditos │ │
│ └─────────────────────────────────────────────────────┘ │
│ │
│ Casos de uso: │
│ ✅ Servidores web com tráfego variável │
│ ✅ Ambientes de desenvolvimento │
│ ✅ Pequenos bancos de dados │
│ ✅ Micro-serviços leves │
│ │
│ ❌ Evite se a carga de CPU for constante > baseline │
│ │
└─────────────────────────────────────────────────────────────┘

Tipos T Comuns:

TipovCPURAMBaseline CPUPreço/h (us-east-1)
t3.nano20.5 GiB5%$0.0052
t3.micro21 GiB10%$0.0104
t3.small22 GiB20%$0.0208
t3.medium24 GiB20%$0.0416
t3.large28 GiB30%$0.0832

Família M - General Purpose​

┌─────────────────────────────────────────────────────────────┐
│ FAMÍLIA M (General Purpose) │
├─────────────────────────────────────────────────────────────┤
│ │
│ Características: │
│ • Equilíbrio CPU/RAM │
│ • Sem burst (performance constante) │
│ • Workloads estáveis │
│ │
│ Proporção: ~4 GiB RAM por vCPU │
│ │
│ Casos de uso: │
│ ✅ Aplicações de negócio │
│ ✅ Servidores de aplicação │
│ ✅ Backends corporativos │
│ ✅ Servidores de jogos │
│ ✅ Bancos de dados médios │
│ │
└─────────────────────────────────────────────────────────────┘

Tipos M Comuns:

TipovCPURAMPreço/h
m5.large28 GiB$0.096
m5.xlarge416 GiB$0.192
m5.2xlarge832 GiB$0.384
m6i.large28 GiB$0.096

Família C - Compute Otimizada​

┌─────────────────────────────────────────────────────────────┐
│ FAMÍLIA C (Compute Otimizada) │
├─────────────────────────────────────────────────────────────┤
│ │
│ Características: │
│ • Proporção CPU/RAM alta │
│ • Processadores de alta frequência │
│ • Ideal para cálculo intensivo │
│ │
│ Proporção: ~2 GiB RAM por vCPU │
│ │
│ Casos de uso: │
│ ✅ Processamento em lote (batch) │
│ ✅ Codificação de vídeo │
│ ✅ Servidores de jogos de alta performance │
│ ✅ Modelagem científica │
│ ✅ Machine learning (inferência) │
│ │
└─────────────────────────────────────────────────────────────┘

Tipos C Comuns:

TipovCPURAMPreço/h
c5.large24 GiB$0.085
c5.xlarge48 GiB$0.170
c6i.2xlarge816 GiB$0.340

Família R - Memory Otimizada​

┌─────────────────────────────────────────────────────────────┐
│ FAMÍLIA R (Memory Otimizada) │
├─────────────────────────────────────────────────────────────┤
│ │
│ Características: │
│ • Muita RAM │
│ • Ideal para dados em memória │
│ • Bancos de dados de alta performance │
│ │
│ Proporção: ~8 GiB RAM por vCPU │
│ │
│ Casos de uso: │
│ ✅ Bancos de dados relacionais │
│ ✅ Cache distribuído (Redis, Memcached) │
│ ✅ Análise em tempo real │
│ ✅ Apache Spark │
│ ✅ SAP HANA │
│ │
└─────────────────────────────────────────────────────────────┘

Tipos R Comuns:

TipovCPURAMPreço/h
r5.large216 GiB$0.126
r5.xlarge432 GiB$0.252
r5.2xlarge864 GiB$0.504

Tabela de Seleção Rápida​

┌─────────────────────────────────────────────────────────────┐
│ GUIA DE SELEÇÃO DE INSTÂNCIA │
├─────────────────────────────────────────────────────────────┤
│ │
│ Sua necessidade → Família recomendada │
│ ────────────────────────────────────────────────────── │
│ │
│ 💡 Orçamento apertado, carga variável → T3 (burstable) │
│ 🏢 Aplicação padrão → M5/M6i │
│ ⚡ Cálculo CPU intensivo → C5/C6i │
│ 🧠 Banco de dados, cache → R5/R6i │
│ 💾 Big Data, data warehouse → I3/D2 │
│ 🎮 Machine Learning, GPU → P4/G4 │
│ │
│ Tamanho inicial recomendado: │
│ • Dev/Test : .micro ou .small │
│ • Produção : .large ou .xlarge │
│ • Scale up conforme necessário │
│ │
└─────────────────────────────────────────────────────────────┘

Processadores e Gerações​

Sufixos de Geração​

SufixoSignificado
(nada)Intel
aAMD (geralmente mais barato)
gAWS Graviton (ARM, econômico)
iIntel última geração
dArmazenamento NVMe local
nRede aprimorada

Exemplos:

  • m5.large = Intel
  • m5a.large = AMD (10-20% mais barato)
  • m6g.large = Graviton (40% mais barato, ARM)
  • m5d.large = Com armazenamento NVMe local

AWS Graviton​

┌─────────────────────────────────────────────────────────────┐
│ AWS GRAVITON │
├─────────────────────────────────────────────────────────────┤
│ │
│ Processadores ARM desenvolvidos pela AWS │
│ │
│ Vantagens: │
│ ✅ Até 40% mais barato que Intel │
│ ✅ Melhor relação performance/preço │
│ ✅ Eficiência energética │
│ │
│ Restrições: │
│ ⚠️ Aplicações devem suportar ARM │
│ ⚠️ Alguns softwares não compatíveis │
│ │
│ Compatível: │
│ ✅ Linux, containers, Node.js, Python, Java │
│ ❌ Windows, alguns softwares legados │
│ │
└─────────────────────────────────────────────────────────────┘

Exercício Prático: Escolhendo o Tipo Certo​

Cenário 1: Site WordPress​

Contexto:
- Site institucional de PME
- 500 visitantes/dia
- Picos ocasionais (promoções)
- Orçamento limitado

Análise:
- Carga variável → Burstable
- Baixo tráfego → Tipo pequeno
- Orçamento → Econômico

✅ Recomendação: t3.micro ou t3.small
Justificativa: Créditos burst cobrem os picos,
custo mínimo para carga baixa

Cenário 2: Banco de Dados PostgreSQL​

Contexto:
- Aplicação de negócio
- 50 usuários simultâneos
- Base de 100 GB
- Consultas complexas

Análise:
- Precisa de RAM para cache → Memory
- Carga constante → Sem burst
- Produção → Performance estável

✅ Recomendação: r5.large ou r5.xlarge
Justificativa: 16-32 GB RAM para cache do PostgreSQL,
performance constante

Cenário 3: Servidor de Jogo Minecraft​

Contexto:
- 20 jogadores máx
- Mundo com mods
- Alta responsividade

Análise:
- CPU intensivo → Compute
- Mods = RAM → Médio
- Responsividade → Frequência de CPU alta

✅ Recomendação: c5.large ou m5.large
Justificativa: Bom equilíbrio CPU/RAM,
frequência de CPU alta para responsividade

Boas Práticas​

1. Comece Pequeno​

DEV     →    TESTE    →    STAGING    →    PRODUÇÃO
t3.micro t3.small t3.medium m5.large

Monitore as métricas e ajuste conforme necessário.

2. Use as Métricas​

Métricas do CloudWatch para monitorar:

CPU Utilization
├── < 20% constantemente → Muito grande, reduza
├── 40-70% → Ótimo
└── > 80% constantemente → Muito pequena, aumente

Memory Utilization
├── < 50% → Talvez RAM em excesso
└── > 80% → Risco de swap, aumente

3. Considere Graviton​

Se sua aplicação for:
✅ Linux
✅ Containerizada ou interpretada (Python, Node, Java)
✅ Open source

→ Teste instâncias Graviton (g) para economizar!

Resumo​

FamíliaCaracterísticaCaso de Uso
TBurstableDev, sites variáveis
MEquilibradoAplicações gerais
CCPU forteCálculo, codificação
RRAM forteBanco de dados, cache
I/DStorage forteBig Data
P/GGPUML, gráficos

Quiz de Validação​

  1. O que significa "t3.large"?
  2. Qual família para um banco de dados em memória?
  3. O que é "burst" na família T?
  4. Qual sufixo indica um processador AMD?
  5. Por que escolher Graviton?
  6. Por qual tamanho começar em um novo projeto?

Próxima seção: Autenticação e Pares de Chaves