AWS Certified Cloud Practitioner
Post 6 of 25
24%
Complete
AWS Cloud Practitioner #6: Amazon EC2 - Tu Servidor en la Nube
Domina Amazon EC2: instance types, familias, pricing models (On-Demand, Reserved, Spot), y aprende cuándo usar cada opción para optimizar costos y performance.
Recommended Prerequisites
For the best learning experience, we recommend reading these posts first:
AWS Cloud Practitioner #1: De Servidores Físicos a la Nube
Aprende qué es cloud computing y las diferencias entre IaaS, PaaS y SaaS con una metodología bottom-up que construye tu conocimiento paso a paso.
Cloud Architecture7 min read→AWS Cloud Practitioner #3: Superpoderes de la Nube - Elasticity, Scalability y HA
Comprende las ventajas clave de cloud computing: elasticity, scalability, high availability y agility. Aprende cómo AWS implementa estos conceptos.
Cloud Architecture9 min read→
🎯 Lo que Aprenderás Hoy
Al finalizar este post, podrás:
- Explicar qué es Amazon EC2 y casos de uso
- Identificar instance types y familias (T, M, C, R, etc.)
- Comparar pricing models: On-Demand vs. Reserved vs. Spot vs. Dedicated
- Elegir la opción correcta según el caso de uso
- Comprender conceptos clave: AMI, Security Groups, User Data
El Problema Real
Trabajas en una startup. Tu CTO dice:
"Necesitamos un servidor para nuestra aplicación web. Presupuesto limitado."
Opciones:
Opción 1: Comprar servidor físico
Costo: $5,000 upfront + $200/mes mantenimiento
Tiempo setup: 2-3 semanas
Flexibilidad: 0
Opción 2: Amazon EC2
Costo: $0 upfront + $8.35/mes (t2.micro)
Tiempo setup: 5 minutos
Flexibilidad: Cambia tipo de instancia cuando quierasEC2 gana por: menor costo, velocidad, flexibilidad.
¿Qué es Amazon EC2?
Amazon EC2 (Elastic Compute Cloud) es un servicio que te permite rentar servidores virtuales en la nube.
Analogía: Es como Uber vs. comprar un auto.
Comprar servidor físico: Alto costo inicial, mantenimiento constante, depreciation EC2: Pagas solo por las horas que usas, sin mantenimiento de hardware, actualizas cuando quieras
Características Clave
1. Elastic (elástico)
Puedes:
- Lanzar 1 instancia o 1,000 en minutos
- Escalar hacia arriba o abajo según demanda
- Cambiar instance type sin perder datos2. Complete control
Tienes acceso root/admin:
- Instala cualquier software
- Configura firewall
- Gestiona OS3. Flexible pricing
4 modelos de precios (explicaremos abajo):
- On-Demand (por hora)
- Reserved (descuento por compromiso)
- Spot (hasta 90% descuento)
- Dedicated (hardware exclusivo)4. Integrated
Se integra con otros servicios AWS:
- EBS (storage)
- VPC (networking)
- IAM (security)
- CloudWatch (monitoring)Conceptos Fundamentales
1. Instance (Instancia)
Una instance es un servidor virtual en EC2.
Piensa en ello como una computadora en la nube:
- Tiene CPU, RAM, Storage, Network
- Corre un OS (Linux, Windows, etc.)
- Puede ejecutar aplicaciones como cualquier servidor2. AMI (Amazon Machine Image)
Un AMI es una plantilla que contiene:
- Sistema operativo (Amazon Linux, Ubuntu, Windows, etc.)
- Software pre-instalado
- Configuraciones
# Lanzar instance con AMI de Amazon Linux
aws ec2 run-instances \
--image-id ami-0c55b159cbfafe1f0 \ # AMI ID
--instance-type t2.micro
# Tipos de AMIs:
# - AWS-provided: Amazon Linux, Ubuntu, Windows Server
# - AWS Marketplace: Con software pre-instalado (WordPress, etc.)
# - Custom: Tus propias AMIs con tu configuración3. Instance Type
Define las especificaciones del servidor:
- CPU: Número de vCPUs
- Memory: RAM
- Storage: Instance storage (ephemeral)
- Network: Bandwidth
Ejemplo: t2.micro
- 1 vCPU
- 1 GB RAM
- EBS-only storage
- Low to Moderate network
Ejemplo: c5.4xlarge
- 16 vCPUs
- 32 GB RAM
- EBS-only storage
- Up to 10 Gbps networkInstance Families (Familias de Instancias)
AWS organiza instances en familias según su propósito.
Nomenclatura
Ejemplo: c5.2xlarge
c = Family (Compute Optimized)
5 = Generation (5ta generación)
2x = Size dentro de la familia
large = Base sizeFamilias Principales
1. General Purpose (T, M, A)
Para workloads balanceados (CPU, memory, network).
Familia T (Burstable):
t2.micro, t2.small, t2.medium, t3.large
Características:
- Baseline CPU performance
- Puede hacer "burst" cuando necesita más CPU
- Acumula "CPU credits" cuando está idle
- Ideal para: Web servers, dev environments
Ejemplo:
t2.micro: 1 vCPU, 1 GB RAM, $8.35/mes
Baseline: 10% CPU constant
Burst: 100% CPU temporalmente (usa credits)
Caso de uso:
Blog con 1,000 visitas/día
- 90% del tiempo: usa 10% CPU (acumula credits)
- Picos de tráfico: burst a 100% CPUFamilia M (Balanced):
m5.large, m5.xlarge, m5.2xlarge
Características:
- Balance entre compute, memory, network
- Performance consistente
- Ideal para: Aplicaciones empresariales, backends
Ejemplo:
m5.large: 2 vCPUs, 8 GB RAM, $69.35/mes
Caso de uso:
Aplicación web empresarial con tráfico constante2. Compute Optimized (C)
Para workloads que requieren mucho CPU.
Familia C:
c5.large, c5.xlarge, c5.2xlarge
Características:
- Ratio CPU:Memory alto
- High-performance processors
- Ideal para: Batch processing, gaming servers, scientific modeling
Ejemplo:
c5.large: 2 vCPUs, 4 GB RAM, $61.32/mes
(Comparado con m5.large: 2 vCPUs, 8 GB RAM)
← Menos RAM, mismo CPU, más barato
Caso de uso:
Video encoding: Procesar 1000 videos/día
Necesita: Mucho CPU, poco RAM3. Memory Optimized (R, X)
Para workloads que requieren mucha RAM.
Familia R:
r5.large, r5.xlarge, r5.2xlarge
Características:
- Ratio Memory:CPU alto
- Hasta 768 GB RAM
- Ideal para: In-memory databases, big data analytics
Ejemplo:
r5.large: 2 vCPUs, 16 GB RAM, $90.25/mes
(Comparado con m5.large: 2 vCPUs, 8 GB RAM)
← Doble RAM, mismo CPU
Caso de uso:
Redis cache con 10GB de data en memoria4. Storage Optimized (I, D)
Para workloads que requieren mucho I/O de disco.
Familia I:
i3.large, i3.xlarge
Características:
- NVMe SSD storage local
- High IOPS (Input/Output Operations Per Second)
- Ideal para: NoSQL databases, data warehousing
Caso de uso:
Cassandra database con 1TB de datos locales5. Accelerated Computing (P, G, F)
Para workloads que requieren GPU o FPGA.
Familia P (GPU):
p3.2xlarge, p3.8xlarge
Características:
- NVIDIA Tesla V100 GPUs
- Ideal para: Machine Learning, video rendering
Caso de uso:
Entrenar modelos de deep learningComparación Visual
| Family | vCPU | RAM | Uso Principal | Ejemplo |
|---|---|---|---|---|
| T | 1-8 | 0.5-32 GB | Web servers, dev/test | Blog WordPress |
| M | 2-96 | 8-384 GB | General purpose apps | Backend API |
| C | 2-96 | 4-192 GB | Compute-intensive | Video encoding |
| R | 2-96 | 16-768 GB | Memory-intensive | Redis cache |
| I | 2-64 | 15-512 GB | Storage I/O | NoSQL database |
| P | 8-96 | 61-768 GB | GPU workloads | ML training |
Pricing Models (Modelos de Precios)
1. On-Demand
¿Qué es? Pagas por hora o segundo, sin compromiso.
Características:
✅ No upfront payment
✅ No long-term commitment
✅ Puedes terminar cuando quieras
❌ Más caro que otras opciones
Pricing:
t2.micro: $0.0116/hora = $8.35/mes (24/7)
t2.small: $0.023/hora = $16.79/mes¿Cuándo usar?
✅ Workloads impredecibles
✅ Dev/test environments
✅ Apps nuevas (no sabes tráfico aún)
✅ Short-term spikes
Ejemplo:
Lanzas nueva app, no sabes si tendrá éxito
Usa On-Demand primeros 3 meses
Luego migra a Reserved si es exitosa2. Reserved Instances (RI)
¿Qué es? Comprometes 1 o 3 años, obtienes hasta 75% descuento.
Opciones:
- 1 año: ~40% descuento
- 3 años: ~60% descuento
Payment options:
1. All Upfront: Pagas todo por adelantado (mayor descuento)
2. Partial Upfront: Pagas parte ahora, resto mensual
3. No Upfront: Pagas mensual (menor descuento)
Flexibility:
- Standard RI: No puedes cambiar instance type (mayor descuento)
- Convertible RI: Puedes cambiar instance type (menor descuento)Ejemplo de ahorro:
Workload: Servidor web 24/7
On-Demand (t2.small):
$0.023/hora × 730 horas/mes × 12 meses = $201.48/año
Reserved 1 año (No Upfront):
~40% descuento = $120.89/año
Ahorro: $80.59/año (40%)
Reserved 3 años (All Upfront):
~60% descuento = $80.59/año
Ahorro: $120.89/año (60%)¿Cuándo usar?
✅ Workloads estables y predecibles
✅ Apps que correrán 24/7 por años
✅ Producción (después de validar tráfico)
Ejemplo:
Base de datos principal de tu empresa
Sabes que correrá 24/7 por 3 años mínimo
→ Usa Reserved Instance (3 años, All Upfront)Standard vs. Convertible:
Standard RI:
- Instance type: t2.small → NO PUEDES cambiar a t2.medium
- Mayor descuento (~60%)
- Usa si: Sabes exactamente qué necesitas
Convertible RI:
- Instance type: t2.small → PUEDES cambiar a t2.medium, m5.large, etc.
- Menor descuento (~54%)
- Usa si: Puede que necesites cambiar specs3. Spot Instances
¿Qué es? Compras capacidad no utilizada de AWS. Hasta 90% descuento.
Catch: AWS puede terminar tu instance con 2 minutos de aviso si necesita la capacidad.
Pricing:
On-Demand t2.medium: $0.0464/hora
Spot t2.medium: $0.0139/hora (70% descuento)
Cómo funciona:
1. Defines "maximum price" que estás dispuesto a pagar
2. Si Spot price ≤ tu max price → instance corre
3. Si Spot price > tu max price → AWS termina tu instance¿Cuándo usar?
✅ Workloads tolerantes a interrupciones
✅ Batch processing
✅ Data analysis
✅ Image processing
✅ CI/CD builds
❌ NO uses para:
❌ Databases
❌ Production web servers
❌ Cualquier cosa que no pueda ser interrumpida
Ejemplo CORRECTO:
Procesamiento de 10,000 imágenes
- Si instance termina a mitad → retoma después
- Ahorro: 70%
Ejemplo INCORRECTO:
Base de datos MySQL
- Si instance termina → data loss, downtimeSpot Fleet:
# Lanza múltiples Spot Instances con fallback
aws ec2 request-spot-fleet \
--spot-fleet-request-config '{
"TargetCapacity": 10,
"LaunchSpecifications": [
{"InstanceType": "c5.large"},
{"InstanceType": "c5.xlarge"},
{"InstanceType": "m5.large"}
]
}'
# AWS lanzará combinación óptima basado en precio4. Dedicated Hosts
¿Qué es? Servidor físico completo dedicado para tu uso.
Características:
- Hardware físico completo para ti
- Puedes ver sockets, cores, host ID
- Necesario para: Software licensing (Windows Server, SQL Server)
- Más caro que otras opciones
Pricing:
On-Demand: $2.000+/hora
Reserved: Hasta 70% descuento¿Cuándo usar?
✅ Compliance requirements (regulaciones que requieren hardware dedicado)
✅ Server-bound software licenses (SQL Server, Windows Server)
✅ Regulatory requirements que no permiten multi-tenancy
Ejemplo:
Tienes licencia de Windows Server que especifica:
"Máximo 2 sockets físicos"
Con EC2 normal: No puedes ver hardware físico
Con Dedicated Host: Puedes ver y controlar socket countDedicated Hosts vs. Dedicated Instances:
Dedicated Instances:
- Hardware dedicado, pero no sabes cuál
- Más barato
- Usa si: Solo necesitas aislamiento
Dedicated Hosts:
- Hardware específico que puedes ver
- Más caro
- Usa si: Necesitas license management5. Savings Plans
¿Qué es? Comprometes cierta cantidad de gasto por hora ($/hora) por 1 o 3 años.
Ejemplo:
Te comprometes a gastar $10/hora en compute por 1 año
→ Obtienes descuento en TODO compute que uses
Tipos:
1. Compute Savings Plans: Aplica a EC2, Fargate, Lambda
2. EC2 Instance Savings Plans: Solo EC2, mayor descuento
Descuento: Hasta 72%
Flexibilidad:
- Puedes cambiar instance type, OS, region
- Más flexible que Reserved InstancesComparación de Pricing Models
| Modelo | Descuento | Commitment | Flexibility | Uso |
|---|---|---|---|---|
| On-Demand | 0% | No | Alta | Dev/test, nuevas apps |
| Reserved | 40-75% | 1-3 años | Baja | Workloads estables 24/7 |
| Spot | 50-90% | No | Baja* | Batch, procesamiento |
| Dedicated | Varía | Opcional | Baja | Compliance, licensing |
| Savings Plans | 40-72% | 1-3 años | Alta | General, múltiples services |
*Baja porque puede ser terminada
Optimización de Costos
Estrategia Híbrida
La mayoría de empresas usan combinación de pricing models.
Arquitectura ejemplo:
┌─────────────────────────────────────┐
│ Web Application │
├─────────────────────────────────────┤
│ Base capacity (siempre corre): │
│ → 5 instances m5.large │
│ → Reserved Instances (60% ahorro) │
│ │
│ Variable capacity (picos): │
│ → 0-20 instances m5.large │
│ → On-Demand (flexibilidad) │
│ │
│ Background jobs (batch): │
│ → Spot Instances (80% ahorro) │
└─────────────────────────────────────┘
Resultado:
- Base: Optimizado con Reserved
- Picos: Manejados con On-Demand
- Batch: Optimizado con Spot
- Ahorro total: ~65%Herramientas de Optimización
1. Right-sizing:
# AWS Compute Optimizer analiza uso y recomienda
Ejemplo:
Tienes: m5.large (2 vCPU, 8 GB RAM)
Uso real: 20% CPU, 3 GB RAM
Recomendación: Cambiar a t3.small (2 vCPU, 2 GB RAM)
Ahorro: $30/mes2. Auto Scaling:
# Escala automáticamente basado en demanda
Configuración:
Min instances: 2 (Reserved)
Max instances: 10
Scale up: Cuando CPU > 70%
Scale down: Cuando CPU < 30%
Resultado:
Pagas solo por lo que necesitas en cada momento3. Scheduled scaling:
# Para workloads predecibles
Ejemplo: Tienda online
Lun-Vie 9am-6pm: 10 instances
Lun-Vie 6pm-9am: 2 instances
Sab-Dom: 3 instances
Ahorro: 60% vs. correr 10 instances 24/7Otros Conceptos Clave
User Data
Script que corre cuando instance arranca por primera vez.
# Ejemplo: Instalar y arrancar web server automáticamente
#!/bin/bash
yum update -y
yum install -y httpd
systemctl start httpd
systemctl enable httpd
echo "<h1>Hello from $(hostname -f)</h1>" > /var/www/html/index.html# Lanzar instance con User Data
aws ec2 run-instances \
--image-id ami-0c55b159cbfafe1f0 \
--instance-type t2.micro \
--user-data file://setup.shUso: Automatizar setup de instances.
Metadata
Información sobre la instance accesible desde dentro de la instance.
# Desde dentro de la EC2 instance:
curl http://169.254.169.254/latest/meta-data/
# Obtener instance ID
curl http://169.254.169.254/latest/meta-data/instance-id
# Obtener public IP
curl http://169.254.169.254/latest/meta-data/public-ipv4
# Usar en scripts
INSTANCE_ID=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)
aws ec2 create-tags --resources $INSTANCE_ID --tags Key=Name,Value=WebServerInstance Lifecycle
States de una instance:
pending → running → stopping → stopped → terminating → terminated
↑ ↓
└──────────────────┘
pending: Arrancando
running: Corriendo (pagas)
stopping: Apagando
stopped: Apagada (NO pagas compute, SÍ pagas EBS storage)
terminating: Siendo eliminada
terminated: Eliminada (data perdida si no tenías EBS)📝 Preparación para el Examen
Puntos Clave para Memorizar
Instance Families:
- 📌 T: Burstable, dev/test, web servers
- 📌 M: General purpose, balanced
- 📌 C: Compute optimized, batch processing
- 📌 R: Memory optimized, in-memory databases
- 📌 I: Storage optimized, NoSQL databases
- 📌 P/G: GPU, machine learning
Pricing Models:
- 📌 On-Demand: No commitment, pagas por hora
- 📌 Reserved: Commitment 1-3 años, hasta 75% descuento
- 📌 Spot: Hasta 90% descuento, puede ser terminado
- 📌 Dedicated: Hardware dedicado, compliance
Cuándo usar cada pricing:
- 📌 On-Demand: Dev/test, apps nuevas
- 📌 Reserved: Workloads estables 24/7
- 📌 Spot: Batch processing, tolerante a interrupciones
- 📌 Savings Plans: Flexibilidad + descuento
Preguntas de Práctica
Pregunta 1:
Una empresa necesita procesar 10,000 imágenes diariamente. El procesamiento puede ser interrumpido y retomado. ¿Qué pricing model es más cost-effective?
A) On-Demand B) Reserved Instances C) Spot Instances D) Dedicated Hosts
Respuesta: C) Spot Instances
El procesamiento es tolerante a interrupciones (puede retomarse), perfecto para Spot. Ahorro de hasta 90% vs. On-Demand.
Pregunta 2:
Una aplicación requiere 16 GB de RAM y 4 vCPUs. ¿Qué familia de instances es más apropiada?
A) T (Burstable) B) C (Compute Optimized) C) R (Memory Optimized) D) M (General Purpose)
Respuesta: D) M (General Purpose)
Ratio de 4 GB RAM por vCPU (16/4) es balanceado. M family es para workloads balanced. Si requiriera 32 GB RAM con 4 vCPUs (8:1 ratio), sería R family.
🎓 Resumen
Lo que aprendimos:
- EC2: Servidores virtuales en la nube con complete control
- Instance Families: T (burstable), M (balanced), C (compute), R (memory), I (storage), P (GPU)
- Pricing Models: On-Demand (flexible), Reserved (ahorro), Spot (mayor ahorro), Dedicated (compliance)
- Optimización: Usa combinación de pricing models para optimizar costos
Decisión de Pricing:
¿Workload estable 24/7 por 1+ años?
├─ SÍ → Reserved Instance o Savings Plan
└─ NO → ¿Es tolerante a interrupciones?
├─ SÍ → Spot Instance
└─ NO → On-Demand
¿Necesitas compliance/licensing específico?
└─ SÍ → Dedicated Host/Instance⏭️ Próximo Post
En el Post #7 exploraremos Amazon S3 - Simple Storage Service:
- Object storage en la nube
- Storage classes (Standard, IA, Glacier)
- Versioning, lifecycle policies
- Security y encryption
📚 Recursos
Tags: #AWS #CloudPractitioner #EC2 #Compute #Pricing #InstanceTypes #Certification
Related Articles
AWS Cloud Practitioner #15: AWS Pricing y Billing Fundamentals
Comprende el modelo de pricing de AWS: pay-as-you-go, Free Tier, calculadora de costos, y cómo optimizar gastos.
AWS Cloud Practitioner #1: De Servidores Físicos a la Nube
Aprende qué es cloud computing y las diferencias entre IaaS, PaaS y SaaS con una metodología bottom-up que construye tu conocimiento paso a paso.
AWS Cloud Practitioner #2: Infraestructura Global AWS - Regions, AZs y Edge Locations
Descubre cómo AWS distribuye su infraestructura globalmente y aprende a elegir la región correcta para tus aplicaciones usando metodología bottom-up.
AWS Cloud Practitioner #3: Superpoderes de la Nube - Elasticity, Scalability y HA
Comprende las ventajas clave de cloud computing: elasticity, scalability, high availability y agility. Aprende cómo AWS implementa estos conceptos.