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.

Región (Ciudad) AZ 1 (Edificio) AZ 2 (Edificio) Usuario Usuario

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 hay DENY).
Usuario Security Group EC2

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.

Internet Load Balancer Listener: Puerto 80 Target Group (Web) Auto Scaling Group (ASG) EC2 (AZ-A) EC2 (AZ-B)
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.