AWS Certified Cloud Practitioner

Post 4 of 25

16%

Complete

Cloud Architecture13 min read

AWS Cloud Practitioner #4: Well-Architected Framework - Los 6 Pilares

Aprende los 6 pilares del AWS Well-Architected Framework: Operational Excellence, Security, Reliability, Performance Efficiency, Cost Optimization y Sustainability.

🎯 Lo que Aprenderás Hoy

Al finalizar este post, podrás:

  • Explicar los 6 pilares del AWS Well-Architected Framework
  • Identificar trade-offs entre pilares
  • Aplicar principios de diseño cloud a arquitecturas reales
  • Responder preguntas del examen sobre best practices

El Problema Real

Eres arquitecto cloud en una startup. El CEO te pide diseñar la infraestructura para una nueva aplicación.

Pregunta: ¿Cómo sabes si tu arquitectura es "buena"?

Opciones:

plaintext
Opción A: Solo optimizar costos
Resultado: $200/mes ✓ pero cae 2 veces/semana ❌
 
Opción B: Solo optimizar confiabilidad
Resultado: 99.99% uptime ✓ pero $15,000/mes ❌
 
Opción C: Balance entre todos los factores
Resultado: 99.95% uptime ✓ + $800/mes ✓ + seguro ✓

Problema: ¿Cómo evalúas arquitecturas de forma consistente?

Solución: El AWS Well-Architected Framework.


¿Qué es el Well-Architected Framework?

El AWS Well-Architected Framework es un conjunto de best practices y principios para diseñar y operar sistemas en la nube.

Info

Analogía: Es como un checklist de un arquitecto de edificios. Verifica: cimientos, estructura, seguridad, eficiencia energética, etc. El Well-Architected Framework hace lo mismo para arquitecturas cloud.

Componentes Clave

  1. 6 Pilares (áreas de enfoque)
  2. Design Principles (principios de diseño generales)
  3. Questions (preguntas para evaluar tu arquitectura)
  4. Best Practices (recomendaciones específicas)

Metodología Bottom-Up

Vamos a explorar cada pilar individualmente, luego veremos cómo se relacionan:

  1. Operational Excellence
  2. Security
  3. Reliability
  4. Performance Efficiency
  5. Cost Optimization
  6. Sustainability (nuevo en 2021)

🔸 Pilar 1: Operational Excellence

¿Qué es?

La capacidad de ejecutar y monitorear sistemas para entregar valor de negocio y mejorar continuamente procesos y procedimientos.

En términos simples: Correr tu sistema eficientemente y aprender de los errores.

Principios de Diseño

1. Perform operations as code

En lugar de configurar manualmente, usa Infrastructure as Code (IaC).

yaml
# Ejemplo: CloudFormation (IaC)
Resources:
  WebServer:
    Type: AWS::EC2::Instance
    Properties:
      ImageId: ami-0c55b159cbfafe1f0
      InstanceType: t2.micro
 
# Beneficio: Reproducible, versionado, auditable

2. Make frequent, small, reversible changes

plaintext
❌ Deploy mensual con 500 cambios
✅ Deploy diario con 5-10 cambios
 
Beneficio: Si algo falla, sabes exactamente qué cambió

3. Refine operations procedures frequently

Después de cada incidente, actualiza procedimientos. Concepto de "post-mortem".

4. Anticipate failure

bash
# Chaos Engineering (ejemplo)
# Simula fallo de servidor para validar auto-recovery
aws ec2 terminate-instances --instance-ids i-1234567890abcdef0
 
# Sistema debería: detectar fallo + lanzar nueva instancia

5. Learn from operational failures

Cada fallo es oportunidad de mejora.

Servicios AWS Clave

  • CloudFormation: Infrastructure as Code
  • CloudWatch: Monitoring y logging
  • Systems Manager: Automation
  • AWS Config: Compliance tracking

Caso de Uso Real

Empresa: Netflix

Problema: ¿Cómo garantizar que sistemas fallen gracefully?

Solución:

  • Chaos Monkey: Termina instancias aleatoriamente en producción
  • Fuerza al equipo a diseñar para resiliencia
  • Resultado: Netflix puede perder servers sin afectar usuarios

🔸 Pilar 2: Security

¿Qué es?

Proteger información, sistemas y activos mientras entregas valor de negocio mediante evaluación de riesgos y estrategias de mitigación.

Principios de Diseño

1. Implement a strong identity foundation

plaintext
Principio: Centraliza gestión de identidades
Implementa: Least privilege
 
# Ejemplo AWS
Usuario Admin: SOLO cuando sea absolutamente necesario
Usuario Dev: Solo acceso a recursos de desarrollo
Usuario ReadOnly: Solo lectura para reporting

2. Enable traceability

Registra TODO lo que pasa en tu cuenta AWS.

bash
# CloudTrail: Quién hizo qué y cuándo
{
  "eventName": "RunInstances",
  "userIdentity": {
    "userName": "juan@empresa.com"
  },
  "requestParameters": {
    "instanceType": "t2.micro"
  },
  "eventTime": "2025-11-16T10:30:00Z"
}

3. Apply security at all layers

plaintext
Security layers:
├── Edge: WAF (bloquea ataques)
├── Network: Security Groups (firewall)
├── Compute: OS hardening
├── Application: Input validation
└── Data: Encryption

4. Automate security best practices

bash
# Ejemplo: Auto-remediation
# Si S3 bucket se vuelve público → automáticamente hacerlo privado
 
aws s3api put-bucket-acl \
  --bucket mi-bucket \
  --acl private

5. Protect data in transit and at rest

plaintext
Data in transit: HTTPS/TLS
Data at rest: Encryption (AES-256)

6. Keep people away from data

Minimiza acceso directo. Usa roles y políticas.

7. Prepare for security events

Incident response plan documentado y practicado.

Servicios AWS Clave

  • IAM: Identity and Access Management
  • KMS: Key Management Service (encryption)
  • CloudTrail: Auditing
  • GuardDuty: Threat detection
  • WAF: Web Application Firewall

Ejemplo Práctico

plaintext
Escenario: Aplicación con datos sensibles
 
❌ Mal diseño:
- S3 bucket público
- Contraseñas en código
- Sin MFA
- Sin encryption
 
✅ Buen diseño:
- S3 bucket privado
- Secretos en AWS Secrets Manager
- MFA obligatorio
- Encryption at rest (S3) y in transit (HTTPS)
- CloudTrail habilitado

🔸 Pilar 3: Reliability

¿Qué es?

Capacidad de un sistema de recuperarse de disrupciones y dinámicamente adquirir recursos para cumplir demanda.

En términos simples: Tu sistema funciona cuando se supone que debe funcionar.

Principios de Diseño

1. Automatically recover from failure

plaintext
Sin auto-recovery:
Server falla → Admin recibe alerta → Manualmente inicia nuevo server
Downtime: 15 minutos
 
Con auto-recovery (Auto Scaling):
Server falla → Auto Scaling detecta → Lanza nuevo server automáticamente
Downtime: 2 minutos

2. Test recovery procedures

bash
# Game Day: Simula desastres
# Ejemplo: Apaga toda una región
aws ec2 stop-instances --region us-east-1 --instance-ids $(aws ec2 describe-instances --query 'Reservations[*].Instances[*].InstanceId' --output text)
 
# Valida que aplicación siga funcionando en us-west-2

3. Scale horizontally

plaintext
Vertical scaling (❌ riesgoso):
1 server grande (t2.2xlarge)
Si falla → TODO se cae
 
Horizontal scaling (✅ resiliente):
5 servers pequeños (t2.micro)
Si 1 falla → otros 4 siguen funcionando

4. Stop guessing capacity

plaintext
On-premise:
Tienes que adivinar tráfico futuro
Compras servers para peak capacity
90% del tiempo desperdiciado
 
Cloud:
Auto Scaling ajusta capacidad automáticamente
Pagas solo por lo que usas

5. Manage change through automation

Cambios manuales = errores humanos. Automatiza con IaC.

Servicios AWS Clave

  • Auto Scaling: Ajusta capacidad automáticamente
  • ELB (Elastic Load Balancing): Distribuye tráfico
  • RDS Multi-AZ: Database replication automática
  • Route 53: DNS con health checks

Arquitectura Multi-AZ

plaintext
---
config:
  theme: base
  themeVariables:
    darkMode: false
---
flowchart TB
    user@{img: "https://api.iconify.design/material-symbols/person.svg", label: "Usuario", pos: "b", w: 50, h: 50}

    subgraph aws["AWS Region"]
        elb@{img: "https://api.iconify.design/logos/aws-elb.svg", label: "ELB<br/>Load Balancer", pos: "b", w: 60, h: 60}

        subgraph az1["AZ-1a"]
            ec2_1@{img: "https://api.iconify.design/logos/aws-ec2.svg", label: "EC2<br/>Instance", pos: "b", w: 50, h: 50}
            rds_primary@{img: "https://api.iconify.design/logos/aws-rds.svg", label: "RDS<br/>Primary", pos: "b", w: 50, h: 50}
        end

        subgraph az2["AZ-1b"]
            ec2_2@{img: "https://api.iconify.design/logos/aws-ec2.svg", label: "EC2<br/>Instance", pos: "b", w: 50, h: 50}
            rds_standby@{img: "https://api.iconify.design/logos/aws-rds.svg", label: "RDS<br/>Standby", pos: "b", w: 50, h: 50}
        end
    end

    user --> elb
    elb --> ec2_1
    elb --> ec2_2
    ec2_1 --> rds_primary
    ec2_2 --> rds_primary
    rds_primary -.->|"sync replication"| rds_standby

    style aws fill:#fff,stroke:#232F3E
    style az1 fill:#fff,stroke:#FF9900,stroke-dasharray: 5 5
    style az2 fill:#fff,stroke:#FF9900,stroke-dasharray: 5 5

    classDef default fill:#fff,stroke:#232F3E

Beneficio: Si AZ-1a falla completamente, AZ-1b sigue funcionando.


🔸 Pilar 4: Performance Efficiency

¿Qué es?

Usar recursos IT eficientemente para cumplir requisitos del sistema y mantener esa eficiencia a medida que la demanda cambia.

En términos simples: Usar los recursos correctos para el trabajo correcto.

Principios de Diseño

1. Democratize advanced technologies

plaintext
Antes:
Implementar Machine Learning = Contratar 5 data scientists + 6 meses
 
Ahora:
aws rekognition detect-labels --image image.jpg
(Servicio AWS managed)

2. Go global in minutes

bash
# Deploy en múltiples regiones
aws cloudformation deploy --region us-east-1 --template template.yml
aws cloudformation deploy --region eu-west-1 --template template.yml
aws cloudformation deploy --region ap-southeast-1 --template template.yml
 
# Usuarios acceden desde región más cercana (menor latencia)

3. Use serverless architectures

plaintext
Traditional:
EC2 server corriendo 24/7
Costo: $70/mes (siempre encendido)
 
Serverless (Lambda):
Solo corre cuando hay requests
Costo: $5/mes (pay-per-invocation)

4. Experiment more often

plaintext
Cloud = bajo costo de experimentación
 
Test A: t2.micro ($8/mes)
Test B: t3.small ($15/mes)
Test C: c5.large ($62/mes)
 
Mide performance → Elige óptimo → Elimina otros
Costo de experimento: $85 por 1 mes

5. Consider mechanical sympathy

Elige el servicio correcto para el caso de uso.

plaintext
Workload: Base de datos relacional
❌ EC2 + MySQL manual
✅ RDS (managed database)
 
Workload: Key-value simple
❌ RDS
✅ DynamoDB (NoSQL)
 
Workload: File storage
❌ Database
✅ S3

Servicios AWS Clave

  • CloudFront: CDN (reduce latency)
  • Lambda: Serverless compute
  • DynamoDB: NoSQL performante
  • ElastiCache: In-memory caching

Ejemplo de Optimización

plaintext
Problema: Página web carga en 3 segundos (lento)
 
Análisis:
- 2s: Queries a database
- 0.8s: Loading imágenes
- 0.2s: Rendering
 
Optimización:
1. ElastiCache Redis para cache de queries → 2s → 0.1s
2. CloudFront CDN para imágenes → 0.8s → 0.2s
3. Total: 3s → 0.5s (6x más rápido)
 
Costo adicional: $30/mes
Beneficio: Mejor UX + más conversiones

🔸 Pilar 5: Cost Optimization

¿Qué es?

Entregar valor de negocio al menor precio posible.

Principios de Diseño

1. Implement cloud financial management

plaintext
Establece:
- Budgets (presupuestos)
- Alertas cuando se exceden
- Revisiones mensuales de costos

2. Adopt a consumption model

plaintext
Pay-as-you-go vs. upfront investment
 
Ejemplo:
Dev environment: Solo necesario 9am-6pm, Lun-Vie
Sin optimización: 24/7 = 168 horas/semana
Optimizado: 9 horas × 5 días = 45 horas/semana
Ahorro: 73%

3. Measure overall efficiency

plaintext
Métrica: Costo por transacción
 
Mes 1: $1,000 / 10,000 transacciones = $0.10/tx
Mes 2: $1,200 / 15,000 transacciones = $0.08/tx
 
Aunque costo absoluto aumentó, eficiencia mejoró

4. Stop spending money on undifferentiated heavy lifting

plaintext
❌ Gestionar servers, patches, backups
✅ Usar managed services (RDS, Lambda, etc.)
 
Razón: Tu tiempo vale más que el costo del servicio

5. Analyze and attribute expenditure

bash
# Usa tags para identificar costos por proyecto
aws ec2 create-tags \
  --resources i-1234567890abcdef0 \
  --tags Key=Project,Value=WebApp Key=Environment,Value=Production
 
# Luego analiza:
# Proyecto WebApp: $500/mes
# Proyecto MobileApp: $300/mes

Servicios AWS Clave

  • Cost Explorer: Visualiza gastos
  • Budgets: Alertas de presupuesto
  • Savings Plans: Descuentos por compromiso
  • Trusted Advisor: Recomendaciones de optimización

Estrategias de Ahorro

plaintext
1. Right-sizing
   Cambiar t2.large ($67/mes) → t2.medium ($33/mes)
   Si utilización es solo 30%
   Ahorro: $34/mes
 
2. Reserved Instances
   On-Demand: $70/mes
   Reserved (1 año): $45/mes
   Ahorro: 36%
 
3. Spot Instances
   On-Demand: $70/mes
   Spot: $21/mes (cuando hay exceso de capacidad)
   Ahorro: 70% (para workloads tolerantes a interrupciones)
 
4. S3 Storage Classes
   S3 Standard: $23/TB/mes
   S3 Glacier: $4/TB/mes (para archives)
   Ahorro: 83% para datos raramente accedidos

🔸 Pilar 6: Sustainability

¿Qué es?

Minimizar el impacto ambiental de workloads en la nube.

Nuevo pilar agregado en 2021.

Principios de Diseño

1. Understand your impact

plaintext
Mide:
- Utilización de recursos
- Consumo energético estimado
- Carbon footprint
 
AWS Customer Carbon Footprint Tool:
Muestra emisiones de CO2 de tu cuenta AWS

2. Establish sustainability goals

plaintext
Objetivo: Reducir carbon footprint 20% en 6 meses
 
Acciones:
- Migrar a regiones con energía renovable
- Optimizar utilización de recursos
- Usar Graviton (ARM) processors (más eficientes)

3. Maximize utilization

plaintext
Server con 10% utilización = 90% desperdicio energético
 
Solución:
- Consolidar workloads
- Usar auto-scaling
- Apagar recursos cuando no se usan

4. Anticipate and adopt new hardware

plaintext
AWS Graviton3 processors:
- 60% mejor performance/watt vs. generación anterior
- Mismo costo
 
Migrar a Graviton = menor impacto ambiental sin costo extra

5. Use managed services

plaintext
AWS opera data centers a escala masiva
Eficiencia energética mucho mayor que data center individual
 
Usar RDS vs. EC2 + MySQL = menor footprint por eficiencias de escala

Prácticas Sostenibles

plaintext
1. Elige regiones con energía renovable
   - us-west-2 (Oregon): 95% renovable
   - eu-north-1 (Stockholm): 98% renovable
 
2. Usa instance types eficientes
   - Graviton (ARM): Más eficiente
   - Newer generations: Mejor performance/watt
 
3. Optimiza storage
   - Elimina snapshots antiguos
   - Usa S3 Intelligent-Tiering
   - Lifecycle policies automáticas
 
4. Serverless cuando sea posible
   - Lambda solo consume cuando ejecuta
   - Vs. EC2 idle 90% del tiempo

El Panorama Completo: Relaciones Entre Pilares

Los 6 pilares están interrelacionados. Optimizar uno puede afectar a otros.

Trade-offs Comunes

plaintext
1. Security vs. Cost
   Encryption + WAF + GuardDuty = más seguro pero más caro
   Balance: Implementa según nivel de riesgo
 
2. Performance vs. Cost
   Instancias grandes = más rápido pero más caro
   Balance: Right-sizing
 
3. Reliability vs. Cost
   Multi-region deployment = más confiable pero 2x costo
   Balance: Multi-AZ (no multi-region) para mayoría de casos
 
4. Operational Excellence vs. Speed
   Automatización completa = más tiempo inicial
   Balance: Automatiza progresivamente

Matriz de Decisiones

EscenarioPrioridad 1Prioridad 2Prioridad 3
Aplicación médicaSecurityReliabilityCost Opt.
Startup MVPCost Opt.PerformanceSecurity
eCommerce Black FridayReliabilityPerformanceCost Opt.
Sistema financieroSecurityReliabilityOperational Ex.

Well-Architected Tool

AWS ofrece una herramienta gratuita para evaluar tus arquitecturas.

Cómo Usar

bash
# 1. Accede a AWS Console → Well-Architected Tool
 
# 2. Crea workload
Nombre: "Mi Aplicación Web"
Descripción: "eCommerce con 10K usuarios/día"
 
# 3. Responde preguntas por pilar
Ejemplo (Security):
"¿Cómo gestionas credenciales?"
[ ] Hardcoded en código
[ ] Environment variables
[x] AWS Secrets Manager ✓
 
# 4. Recibe reporte
- Riesgos identificados (High/Medium/Low)
- Recomendaciones específicas
- Links a documentación

Output Ejemplo

plaintext
Pilar: Reliability
Riesgo: ALTO
Problema: No usas Multi-AZ para RDS
Impacto: Si AZ falla, database no disponible
Recomendación: Habilita Multi-AZ
Costo adicional: ~2x
Link: https://docs.aws.amazon.com/rds/multi-az.html

📝 Preparación para el Examen

Puntos Clave para Memorizar

Los 6 Pilares:

  1. 📌 Operational Excellence: Run and monitor systems
  2. 📌 Security: Protect data and systems
  3. 📌 Reliability: Recover from failures, meet demand
  4. 📌 Performance Efficiency: Right resources for the job
  5. 📌 Cost Optimization: Lowest price point
  6. 📌 Sustainability: Minimize environmental impact

Principios Generales de Diseño Cloud:

  • Stop guessing capacity needs
  • Test systems at production scale
  • Automate to make experimentation easier
  • Allow for evolutionary architectures
  • Drive architectures using data
  • Improve through game days

Preguntas de Práctica

Pregunta 1:

Una empresa quiere asegurar que puede recuperarse rápidamente de fallos de hardware. ¿Qué pilar del Well-Architected Framework aplica?

A) Operational Excellence B) Security C) Reliability D) Cost Optimization

Success

Respuesta: C) Reliability

Reliability se enfoca en la capacidad de recuperarse de fallos y mantener funcionamiento. Incluye: Multi-AZ, backups, auto-recovery.

Pregunta 2:

¿Cuál es un ejemplo del principio "implement security at all layers"?

A) Solo usar WAF B) Solo encriptar datos C) WAF + Security Groups + encryption + IAM + logging D) Solo usar HTTPS

Success

Respuesta: C) WAF + Security Groups + encryption + IAM + logging

Security at all layers significa implementar controles en CADA capa: edge, network, compute, application, data.


🎓 Resumen

Lo que aprendimos:

  1. Well-Architected Framework: Conjunto de best practices para diseñar en cloud
  2. 6 Pilares: Operational Excellence, Security, Reliability, Performance, Cost, Sustainability
  3. Trade-offs: Los pilares están interrelacionados, optimizar uno puede afectar otros
  4. Well-Architected Tool: Herramienta gratuita para evaluar arquitecturas

Framework completo:

plaintext
Well-Architected Framework
├── Operational Excellence (ejecutar y mejorar)
├── Security (proteger data y systems)
├── Reliability (recuperarse de fallos)
├── Performance Efficiency (recursos correctos)
├── Cost Optimization (menor precio)
└── Sustainability (menor impacto ambiental)

⏭️ Próximo Post

En el Post #5 exploraremos el Modelo de Responsabilidad Compartida:

  • ¿Qué gestiona AWS vs. qué gestionas tú?
  • Responsabilidades en IaaS, PaaS, SaaS
  • Security compliance
  • Casos de uso reales

📚 Recursos


Tags: #AWS #CloudPractitioner #WellArchitected #BestPractices #Architecture #Certification

Written by Jhonny Lorenzo

Researcher at TrautsLab

Related Articles

Recent Articles

Comments