AWS Cloud Avanzado
Profundiza en los servicios esenciales de Amazon Web Services con explicaciones claras, diagramas interactivos y comandos listos para usar en la terminal.
Cuenta, Precios y Seguridad
Las mejores prácticas al crear tu cuenta de AWS se centran en la seguridad y el control de gastos.
AWS Free Tier y Presupuestos
- Alertas de Facturación: Activa las alertas desde Billing Preferences para ser notificado si sales de la capa gratuita.
- AWS Budgets: Crea un presupuesto (ej. $0) para recibir alertas inmediatas si incurres en gastos imprevistos.
Autenticación MFA
Configura la autenticación multifactor (MFA) utilizando una app en tu móvil (como Google Authenticator) en el usuario raíz y los usuarios IAM para proteger la cuenta contra accesos no autorizados.
Regiones y Zonas de Disponibilidad (AZ)
Una región es una agrupación geográfica de centros de datos de AWS. Cada región contiene varias Zonas de Disponibilidad (AZ), que son centros de datos aislados pero interconectados.
Explicación sencilla
Piensa en una ciudad (región) y en los edificios dentro de esa ciudad (AZ). Cada edificio tiene su propio suministro eléctrico y de red, pero todos están conectados a la infraestructura municipal.
Analogía: Si un edificio (AZ) se queda sin luz, la ciudad (región) sigue funcionando gracias a los demás edificios.
Ejemplo práctico en AWS
Desplegar una instancia EC2 en us-east-1a y otra en us-east-1b. Un Elastic Load Balancer distribuye tráfico entre ambas AZ para garantizar alta disponibilidad.
Casos de uso reales
Aplicaciones financieras, SaaS multitenant y juegos en línea que necesitan 99.99% uptime.
Instancias EC2 (Elastic Compute Cloud)
IaaS (Infraestructura como Servicio) que permite lanzar servidores virtuales bajo demanda, dándote control total sobre el sistema operativo.
Componentes y Familias
- Componentes clave: vCPU (Procesamiento), RAM (Memoria), Red, y Almacenamiento (EBS o Instance Store).
- User Data (Datos de Usuario): Script de bootstrapping que se ejecuta solo una vez, durante el primer arranque de la instancia.
| Procesador | Características y Uso |
|---|---|
| Intel Xeon (ej. m6i) | Rendimiento alto y confiable. Arquitectura tradicional x86. |
| AMD EPYC (ej. m6a) | Más núcleos a un precio ligeramente menor que Intel. |
| AWS Graviton (ej. t4g) | Procesadores basados en ARM creados por AWS. Más eficientes y económicos. |
La Capa Gratuita: t2.micro
Ofrece 1 vCPU y 1 GB de RAM. Es una instancia "burstable" (uso general), excelente para pruebas. Incluye 750 horas al mes por 12 meses en el Free Tier.
Amazon S3 (Simple Storage Service)
Almacenamiento de objetos de escala "infinita". Ideal para backups, sitios estáticos, archivos multimedia y data lakes.
Buckets y Objetos
- Buckets: Deben tener un nombre único a nivel global (entre todas las cuentas y regiones). Se definen a nivel de región.
- Objetos: Son los archivos. Tamaño máximo de 5 TB. Las subidas de más de 5 GB requieren Multipart Upload.
- Carpetas: En S3 no existen carpetas reales, la clave (ruta) funciona como un prefijo continuo (ej.
fotos/2025/img1.jpg).
Eliminación
Un bucket no se puede eliminar si contiene objetos. No hay papelera de reciclaje; la eliminación es permanente. Debes vaciarlo completamente antes de eliminarlo.
Security Groups (SG)
Los Security Groups actúan como firewalls virtuales a nivel de instancia para controlar el tráfico entrante y saliente.
Reglas principales
- Inbound (Entrada): Tráfico que permites hacia tu instancia.
- Outbound (Salida): Tráfico que tu instancia envía hacia afuera (por defecto permite todo).
- Todas las reglas son
ALLOW(no hayDENY).
Puertos Comunes
22 SSH (Linux) | 80 HTTP | 443 HTTPS | 3389 RDP (Windows)
Timeout vs Connection Refused: Timeout indica que la petición nunca llega al servicio (ej. bloqueada por el SG). Connection refused indica que llega, pero el puerto está cerrado en el SO.
# Crear SG y permitir HTTP y SSH
aws ec2 create-security-group --group-name web-sg --description "Web SG"
aws ec2 authorize-security-group-ingress --group-id sg-xxxx --protocol tcp --port 22 --cidr 0.0.0.0/0
aws ec2 authorize-security-group-ingress --group-id sg-xxxx --protocol tcp --port 80 --cidr 0.0.0.0/0
SSH en AWS
SSH (Secure Shell) permite acceder de forma segura a instancias Linux mediante la terminal.
Uso de claves .pem
Generas un archivo .pem en la consola (Key Pair) y lo utilizas con tu cliente SSH local para autenticarte sin necesidad de contraseñas de texto plano.
# Conectarse a la instancia
ssh -i "MiClave.pem" ec2-user@<IP-PUBLICA>
Buena Práctica
No expongas el puerto 22 a 0.0.0.0/0. Limítalo solo a tu IP personal. Alternativamente, utiliza AWS Systems Manager (SSM) Session Manager para conectarte sin abrir puertos entrantes.
Elastic IP (EIP)
Una Elastic IP es una dirección IPv4 pública estática dedicada a tu cuenta de AWS.
| Tipo de IP | Características |
|---|---|
| IP Pública (Auto-assigned) | Asignada al iniciar la instancia. Cambia si detienes y arrancas la instancia. |
| IP Privada | Accesible solo dentro de la red VPC. No cambia mientras la instancia exista. |
| Elastic IP | IP pública fija que puedes asociar y desasociar libremente entre instancias. |
⚠️ Atención a los Costos: Se cobra una tarifa por hora cuando la Elastic IP no está asociada a una instancia activa, para evitar el acaparamiento de direcciones IPv4.
# Reservar Elastic IP
aws ec2 allocate-address --domain vpc
# Asociar a una instancia EC2
aws ec2 associate-address --instance-id i-xxxxxx --allocation-id eipalloc-xxxxxx
Auto Scaling Group (ASG)
Un ASG ajusta automáticamente el número de instancias EC2 para satisfacer la demanda de tu aplicación. Es la clave para optimizar costos y asegurar alta disponibilidad.
¿Cómo crear un Auto Scaling Group?
Para configurar un ASG, necesitas definir dos componentes principales:
- 1. Launch Template (Plantilla de lanzamiento): Define "Qué" se va a crear. Aquí configuras el ID de la imagen (AMI), el tipo de instancia (ej.
t2.micro), los Security Groups y el par de claves SSH. - 2. Configuración del ASG: Define "Dónde" y "Cuántos". Seleccionas la VPC, las Subredes (para distribuirlas en varias AZs) y los límites de capacidad:
- Capacidad Deseada (Desired): Cuántas instancias quieres ejecutando normalmente.
- Capacidad Mínima (Min): El límite inferior (ej. no menos de 2 para alta disponibilidad).
- Capacidad Máxima (Max): El límite superior para evitar que los costos se disparen en un ataque o pico anómalo.
Estrategias de Escalado
- Escalado Dinámico (Target Tracking): Le dices al ASG "Mantén el uso medio de CPU al 60%". El ASG añade (Scale Out) o elimina (Scale In) instancias automáticamente para lograr ese objetivo.
- Escalado Programado (Scheduled): Sube la capacidad a las 8 AM antes de que lleguen los empleados, la baja a las 6 PM.
- Predictivo: Usa Machine Learning para anticipar picos de tráfico basándose en tu histórico.
Balanceadores de Carga y Target Groups
El Elastic Load Balancer (ELB) es el único punto de contacto para tus clientes. Recibe el tráfico y lo distribuye uniformemente.
Arquitectura interna de un ALB (Application Load Balancer)
Para que un balanceador sepa a dónde enviar el tráfico, utiliza tres componentes esenciales que seguramente te evaluarán:
1. Listeners (Agentes de escucha)
Un proceso que verifica si hay solicitudes de conexión. Se configura con un protocolo y un puerto (ej. HTTP en puerto 80). El Listener contiene Reglas (ej. Si la URL contiene /api, ve al Grupo de Destino A. Si es /web, ve al Grupo B).
2. Target Groups (Grupos de Destino)
Un Grupo de Destino es la agrupación lógica de tus recursos (instancias EC2, funciones Lambda o direcciones IP). Nota clave: Cuando creas un Auto Scaling Group, lo asocias a un Target Group. Así, cuando el ASG crea una nueva EC2, la registra automáticamente en este grupo de destino para que reciba tráfico.
3. Health Checks (Comprobaciones de Estado)
El balanceador hace "pings" constantes (ej. peticiones HTTP al archivo /index.html). Si una instancia EC2 en el Target Group no responde con un código HTTP 200 repetidas veces, se marca como Unhealthy y el balanceador deja de enviarle tráfico hasta que se recupere.
| Paso para desplegar la arquitectura | Acción requerida |
|---|---|
| 1. Launch Template | Definir AMI, RAM, Security Group y llaves SSH. |
| 2. Target Group | Crear un grupo de destino vacío y configurar el Health Check HTTP. |
| 3. Load Balancer | Crear el ALB en tus subredes públicas. Añadir un Listener que reenvíe el tráfico al Target Group. |
| 4. Auto Scaling Group | Usar la Launch Template y adjuntarle el Target Group creado. Establecer Desired=2, Min=2, Max=4. |
CloudWatch
Servicio integral de monitoreo y observabilidad para los recursos y aplicaciones en AWS.
- Métricas: Datos de rendimiento (CPUUtilization, NetworkIn, etc.).
- Logs: Recopila registros de tus EC2, Lambda o VPC Flow Logs.
- Alarmas: Reacciona a umbrales. Ej: Si la CPU > 90%, envía un email por SNS y dispara una política del Auto Scaling.
- Eventos (EventBridge): Responde a cambios de estado en AWS o ejecuta tareas Cron.
CloudFormation
Te permite modelar y configurar tus recursos de AWS como código (Infrastructure as Code - IaC).
Ventajas Principales
Escribes una plantilla en formato YAML o JSON y CloudFormation se encarga de crear, actualizar o eliminar la infraestructura en el orden correcto y de manera predecible. Esto permite versionar infraestructuras completas en Git.
AWSTemplateFormatVersion: '2010-09-09'
Description: Template básico EC2
Resources:
MiInstancia:
Type: AWS::EC2::Instance
Properties:
InstanceType: t2.micro
ImageId: ami-0c02fb55956c7d316
AWS Lambda
Computación Serverless que te permite ejecutar código sin aprovisionar ni administrar servidores.
Características Clave
- Event-driven: Se ejecuta en respuesta a eventos (subidas a S3, cambios en DynamoDB, peticiones a API Gateway).
- Pago por uso exacto: Pagas solo por los milisegundos que dura la ejecución.
- Límites: Tiempo máximo de ejecución de 15 minutos. Sujeto a Cold Starts (arranques en frío).
# Crear función Lambda
aws lambda create-function --function-name ProcesadorImagen \
--runtime nodejs18.x --role arn:aws:iam::1234:role/LambdaRole \
--handler index.handler --zip-file fileb://mi-codigo.zip
VPC (Virtual Private Cloud)
Tu red privada y aislada de forma lógica en la nube de AWS. Es la base sobre la que construyes todo.
Componentes Core
- Subredes (Subnets): Segmentos de la IP de la VPC. Pueden ser Públicas (tienen ruta hacia internet) o Privadas (no tienen acceso directo a internet).
- Internet Gateway (IGW): La "puerta" que conecta tu VPC con internet público.
- NAT Gateway: Permite que las instancias en subredes privadas descarguen actualizaciones de internet sin recibir conexiones entrantes.
- Tablas de Enrutamiento (Route Tables): Definen las reglas de hacia dónde va el tráfico.
NACL vs Security Group
Diferencias entre los dos firewalls principales dentro de una VPC.
| Característica | Security Group (SG) | Network ACL (NACL) |
|---|---|---|
| Aplica a | Instancia (EC2, RDS) | Subred (Subnet) completa |
| Estado de sesión | Stateful: El tráfico de retorno se permite automáticamente | Stateless: Debes crear reglas explícitas de entrada y salida |
| Reglas permitidas | Solo permite reglas de ALLOW | Permite reglas ALLOW y DENY |
| Evaluación de reglas | Se evalúan todas las reglas antes de decidir | Evaluadas en orden numérico estricto (de menor a mayor) |
VPC Endpoints
Permiten conectar tu VPC de forma privada a servicios de AWS (como S3 o DynamoDB) sin requerir un Internet Gateway, dispositivo NAT ni una conexión VPN.
Tipos de Endpoints
- Gateway Endpoint: Se añade como una ruta en tu tabla de enrutamiento. Solo disponible para S3 y DynamoDB. Son gratuitos.
- Interface Endpoint: Crea una interfaz de red (ENI) con una IP privada en tu subred que sirve como punto de entrada para el tráfico hacia otros servicios (SNS, SQS, Secrets Manager, etc.). Generan costos por hora y datos.
Ventaja: El tráfico se mantiene íntegramente dentro de la red global de AWS, mejorando la seguridad de los datos al no exponerlos al internet público.