Saltar al contenido principal

Lab : Diseño de Arquitectura HA

Objetivo del Lab​

En este laboratorio, usted va a diseñar una arquitectura altamente disponible para una aplicación web. Analizará los requisitos, identificará los SPOF y propondrá una solución robusta.

Parte 1 : Escenario​

Contexto​

ShopOnline es una plataforma de comercio electrónico que sufre pérdidas financieras por cada minuto de indisponibilidad. La dirección exige una arquitectura con 99.9% de disponibilidad.

Requisitos​

┌─────────────────────────────────────────────────────────────┐
│ REQUISITOS SHOPONLINE │
├─────────────────────────────────────────────────────────────┤
│ │
│ DISPONIBILIDAD │
│ • 99.9% uptime (máx 8.76h downtime/año) │
│ • Failover automático < 2 minutos │
│ • Cero pérdida de datos │
│ │
│ RENDIMIENTO │
│ • Tiempo de respuesta < 500ms │
│ • Soporte para 10,000 usuarios simultáneos │
│ • Picos de carga x3 durante rebajas │
│ │
│ SEGURIDAD │
│ • HTTPS obligatorio │
│ • Base de datos no expuesta a Internet │
│ • Cumplimiento PCI-DSS (pago) │
│ │
│ PRESUPUESTO │
│ • Máximo $2,000/mes │
│ │
└─────────────────────────────────────────────────────────────┘

Arquitectura Actual (a mejorar)​

┌─────────────────────────────────────────────────────────────┐
│ ARQUITECTURA ACTUAL │
├─────────────────────────────────────────────────────────────┤
│ │
│ Internet │
│ │ │
│ ▼ │
│ ┌───────────────────────────────────────────────────────┐ │
│ │ VPC │ │
│ │ │ │
│ │ ┌──────────────────────────────────────────────┐ │ │
│ │ │ Subnet Pública (AZ-a) │ │ │
│ │ │ │ │ │
│ │ │ ┌─────────────────────────┐ │ │ │
│ │ │ │ EC2 Instance │ │ │ │
│ │ │ │ (Web + App + API) │ │ │ │
│ │ │ │ t3.large │ │ │ │
│ │ │ │ IP: 52.x.x.x │ │ │ │
│ │ │ └───────────┬─────────────┘ │ │ │
│ │ │ │ │ │ │
│ │ └────────────────────┼──────────────────────────┘ │ │
│ │ │ │ │
│ │ ┌────────────────────┼──────────────────────────┐ │ │
│ │ │ Subnet Privada (AZ-a) │ │ │
│ │ │ │ │ │ │
│ │ │ ┌───────────▼─────────────┐ │ │ │
│ │ │ │ RDS │ │ │ │
│ │ │ │ MySQL 5.7 │ │ │ │
│ │ │ │ Single-AZ │ │ │ │
│ │ │ └─────────────────────────┘ │ │ │
│ │ │ │ │ │
│ │ └───────────────────────────────────────────────┘ │ │
│ │ │ │
│ └───────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────┘

Parte 2 : Análisis de los SPOF​

Ejercicio 2.1 : Identificar los SPOF​

Analice la arquitectura actual y liste todos los puntos de fallo único:

#ComponenteTipo de SPOFImpacto si falla
1???
2???
3???
4???
💡 Solución
#ComponenteTipo de SPOFImpacto si falla
1EC2 únicoCómputoSitio completamente caído
2RDS Single-AZBase de datosPosible pérdida de datos
3Solo una AZInfraestructuraTodo caído si AZ falla
4IP pública en EC2AccesoNo hay failover posible
5Sin LBDistribuciónImposible escalar

Ejercicio 2.2 : Calcular la Disponibilidad Actual​

Si cada componente tiene 99% de disponibilidad individual, ¿cuál es la disponibilidad total?

Arquitectura en serie: Dispo = Dispo_EC2 × Dispo_RDS × Dispo_AZ
💡 Solución
Dispo = 0.99 × 0.99 × 0.99 = 0.970 = 97%

Downtime anual = 3% × 365 días = 10.95 días

¡Está LEJOS del 99.9% requerido (8.76 horas)!

Parte 3 : Diseño de la Solución​

Ejercicio 3.1 : Dibujar la Arquitectura Objetivo​

Diseñe una arquitectura que alcance 99.9% de disponibilidad.

Componentes a incluir:

  • Application Load Balancer
  • Instancias EC2 Multi-AZ
  • RDS Multi-AZ
  • Auto Scaling Group

Plantilla a completar:

┌─────────────────────────────────────────────────────────────────────────┐
│ SU ARQUITECTURA │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ Internet │
│ │ │
│ [Dibuje aquí] │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
│ │
└─────────────────────────────────────────────────────────────────────────┘
💡 Solución Arquitectura
┌─────────────────────────────────────────────────────────────────────────┐
│ ARQUITECTURA HA SHOPONLINE │
├─────────────────────────────────────────────────────────────────────────┤
│ │
│ Internet │
│ │ │
│ ┌──────▼──────┐ │
│ │ IGW │ │
│ └──────┬──────┘ │
│ │ │
│ ┌──────────────────────────────┼──────────────────────────────┐ │
│ │ VPC │ (10.0.0.0/16) │ │
│ │ │ │ │
│ │ ┌──────────────────────────┴────────────────────────────┐ │ │
│ │ │ SUBNETS PÚBLICAS │ │ │
│ │ │ │ │ │
│ │ │ ┌─────────────────┐ ┌─────────────────┐ │ │ │
│ │ │ │ Public AZ-a │ │ Public AZ-b │ │ │ │
│ │ │ │ 10.0.1.0/24 │ │ 10.0.2.0/24 │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ ┌───────────┐ │ │ ┌───────────┐ │ │ │ │
│ │ │ │ │ ALB │◄─┼────────┼──│ ALB │ │ │ │ │
│ │ │ │ │ node │ │ │ │ node │ │ │ │ │
│ │ │ │ └─────┬─────┘ │ │ └─────┬─────┘ │ │ │ │
│ │ │ └────────┼────────┘ └────────┼────────┘ │ │ │
│ │ │ │ │ │ │ │
│ │ └───────────┼──────────────────────────┼─────────────────┘ │ │
│ │ │ │ │ │
│ │ ┌───────────┼──────────────────────────┼─────────────────┐ │ │
│ │ │ │ SUBNETS PRIVADAS (App) │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ ┌────────▼────────┐ ┌────────▼────────┐ │ │ │
│ │ │ │ Private AZ-a │ │ Private AZ-b │ │ │ │
│ │ │ │ 10.0.11.0/24 │ │ 10.0.12.0/24 │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ ┌───────────┐ │ │ ┌───────────┐ │ │ │ │
│ │ │ │ │ EC2 (ASG) │ │ │ │ EC2 (ASG) │ │ │ │ │
│ │ │ │ │ min:2 │ │ │ │ max:6 │ │ │ │ │
│ │ │ │ └─────┬─────┘ │ │ └─────┬─────┘ │ │ │ │
│ │ │ └────────┼────────┘ └────────┼────────┘ │ │ │
│ │ │ │ │ │ │ │
│ │ └───────────┼──────────────────────────┼─────────────────┘ │ │
│ │ │ │ │ │
│ │ ┌───────────┼──────────────────────────┼─────────────────┐ │ │
│ │ │ │ SUBNETS PRIVADAS (DB) │ │ │ │
│ │ │ │ │ │ │ │
│ │ │ ┌────────▼────────┐ ┌────────▼────────┐ │ │ │
│ │ │ │ DB AZ-a │ │ DB AZ-b │ │ │ │
│ │ │ │ 10.0.21.0/24 │ │ 10.0.22.0/24 │ │ │ │
│ │ │ │ │ │ │ │ │ │
│ │ │ │ ┌───────────┐ │ │ ┌───────────┐ │ │ │ │
│ │ │ │ │ RDS │◄─┼────────┼──│ RDS │ │ │ │ │
│ │ │ │ │ Primary │ │ sync │ │ Standby │ │ │ │ │
│ │ │ │ └───────────┘ │ │ └───────────┘ │ │ │ │
│ │ │ └─────────────────┘ └─────────────────┘ │ │ │
│ │ │ │ │ │
│ │ └────────────────────────────────────────────────────────┘ │ │
│ │ │ │
│ └───────────────────────────────────────────────────────────────┘ │
│ │
└─────────────────────────────────────────────────────────────────────────┘

Ejercicio 3.2 : Tabla de Configuración​

Complete la tabla de configuración para su arquitectura:

ComponenteConfiguraciónJustificación
ALB??
EC2Tipo: ?, Número min: ?, max: ??
RDSTipo: ?, Multi-AZ: ??
ASGPolítica de escalado: ??
💡 Solución
ComponenteConfiguraciónJustificación
ALBInternet-facing, 2 AZDistribución + HA
EC2t3.medium, min:2, max:62 para HA, 6 para picos
RDSdb.t3.medium, Multi-AZ: SíFailover auto + 0 pérdida de datos
ASGTarget Tracking CPU 70%Escalado automático según carga

Parte 4 : Estimación de Costos​

Ejercicio 4.1 : Calcular el Costo Mensual​

Estime el costo mensual de su arquitectura:

ServicioConfiguraciónCosto/mes
ALB1 ALB + uso?
EC22-6 t3.medium?
RDSdb.t3.medium Multi-AZ?
NAT Gateway2 (HA)?
Data TransferEstimado?
TOTAL?
💡 Solución Estimación
ServicioConfiguraciónCosto/mes
ALB1 ALB + uso~$25
EC22 t3.medium (min)~$60
RDSdb.t3.medium Multi-AZ~$100
NAT Gateway2 + datos~$70
EBS100GB gp3~$20
Data Transfer~100GB~$10
TOTAL~$285/mes

✅ Dentro del presupuesto de $2,000/mes con margen para escalado

Parte 5 : Plan de Pruebas HA​

Ejercicio 5.1 : Escenarios de Prueba​

Describa cómo probaría la alta disponibilidad:

PruebaAcciónResultado Esperado
Failover EC2??
Failover RDS??
Falla AZ??
💡 Solución
PruebaAcciónResultado Esperado
Failover EC2Terminar 1 instanciaASG lanza nueva, ALB redirige
Failover RDSReboot with failoverStandby pasa a primary, < 2min
Falla AZDesactivar subnet AZ-aTráfico 100% en AZ-b
Scale OutGenerar cargaNuevas instancias automáticas
Health CheckDetener nginxALB retira instancia unhealthy

Entregable Final​

Documento a Producir​

Cree un documento "Arquitectura HA ShopOnline" que contenga:

  1. Análisis del existente (SPOF identificados)
  2. Diagrama de arquitectura objetivo (con todos los componentes)
  3. Tabla de configuración (detallada)
  4. Estimación de costos
  5. Plan de pruebas HA
  6. Cálculo de disponibilidad teórica

Criterios de Evaluación​

CriterioPuntos
SPOF correctamente identificados/15
Arquitectura coherente y completa/25
Configuración justificada/20
Costos dentro del presupuesto/15
Plan de pruebas pertinente/15
Calidad del documento/10
Total/100

Próxima semana: Auto Scaling