Cloud Computing & AWS
Descubre qué es la nube, sus modelos de servicio, los grandes proveedores y profundiza en el ecosistema de Amazon Web Services.
☁️ Definición de Cloud Computing
¿Qué es?
La computación en la nube es el suministro de recursos informáticos bajo demanda —servidores, almacenamiento, bases de datos, redes, software— a través de internet, pagando solo por lo que se usa.
Definición oficial del NIST (National Institute of Standards and Technology): "modelo que permite acceso ubicuo, conveniente y bajo demanda a un conjunto compartido de recursos configurables."
Breve Historia
El concepto nació en los 60s con los mainframes compartidos. Amazon lanzó AWS en 2006 con S3 y EC2. Google y Microsoft siguieron en 2008-2010. Hoy la nube mueve más de $600 mil millones al año.
Características Esenciales
Según el NIST, la nube tiene 5 características esenciales:
- Autoservicio bajo demanda
- Acceso amplio desde la red
- Conjunto de recursos compartidos (multi-tenancy)
- Rápida elasticidad y escalabilidad
- Servicio medido (pago por uso)
Ventajas Clave
¿Por qué migrar a la nube?
- 🟠 Sin inversión inicial en hardware
- 🟠 Escalar en minutos, no meses
- 🟠 Alta disponibilidad y redundancia
- 🟠 Acceso global desde cualquier lugar
- 🟠 Actualizaciones automáticas
- 🟠 Recuperación ante desastres integrada
🏗️ Tipos de Implementación (Deployment Models)
Nube Pública
Los recursos son propiedad del proveedor y compartidos entre múltiples clientes. Accesible vía internet. Ejemplo: AWS, Azure, GCP.
Nube Privada
Infraestructura dedicada exclusivamente a una organización. Mayor control y seguridad. Montada on-premise o en datacenter dedicado.
Nube Híbrida
Combina nube pública y privada conectadas entre sí. Permite mover datos y apps entre entornos según necesidad.
Multi-Nube
Uso simultáneo de múltiples proveedores de nube. Evita el vendor lock-in y aprovecha las fortalezas de cada proveedor.
📦 Los 4 Modelos de Servicio en la Nube
Infrastructure as a Service
El proveedor ofrece servidores virtuales, almacenamiento y redes. Tú gestionas el SO, middleware y aplicaciones. Máximo control.
Platform as a Service
El proveedor gestiona la infraestructura y el SO. Tú solo** te preocupas por el código y los datos. Ideal para desarrollo ágil.
Software as a Service
El proveedor gestiona todo. El usuario solo usa la aplicación desde el navegador. Sin instalación ni mantenimiento.
Function as a Service
Ejecutas funciones individuales sin gestionar servidores. Solo pagas por cada ejecución. Escala automáticamente a cero.
🧩 ¿Quién gestiona qué? — Modelo de Responsabilidad Compartida
| Componente | On-Premise | IaaS | PaaS | SaaS |
|---|---|---|---|---|
| Aplicaciones | 👤 Tú | 👤 Tú | 👤 Tú | ☁️ Nube |
| Datos | 👤 Tú | 👤 Tú | 👤 Tú | ☁️ Nube |
| Runtime / Middleware | 👤 Tú | 👤 Tú | ☁️ Nube | ☁️ Nube |
| Sistema Operativo | 👤 Tú | 👤 Tú | ☁️ Nube | ☁️ Nube |
| Virtualización | 👤 Tú | ☁️ Nube | ☁️ Nube | ☁️ Nube |
| Servidores / Hardware | 👤 Tú | ☁️ Nube | ☁️ Nube | ☁️ Nube |
| Almacenamiento Físico | 👤 Tú | ☁️ Nube | ☁️ Nube | ☁️ Nube |
| Red Física | 👤 Tú | ☁️ Nube | ☁️ Nube | ☁️ Nube |
💰 Modelos de Precios en la Nube
Pay-as-you-go
Pagas solo por los recursos que consumes, por segundo u hora. Sin compromisos a largo plazo. Ideal para cargas variables.
Sin pago inicialReserved Instances
Compromiso de 1 a 3 años a cambio de descuentos del 40-75%. Perfecto para cargas de trabajo predecibles y estables.
Hasta 75% descuentoSpot / Preemptible
Capacidad sobrante del proveedor a precio reducido. Puede interrumpirse. Ideal para procesamiento por lotes y ML training.
Hasta 90% descuentoFree Tier
Capa gratuita para explorar y aprender. AWS ofrece 12 meses gratis en servicios seleccionados más servicios always-free.
aws.amazon.com/free🏢 Los Grandes Proveedores de Cloud
Amazon Web Services
Pionero y líder del mercado desde 2006. El ecosistema más amplio con +200 servicios. La referencia del sector.
~32% del mercadoMicrosoft Azure
Segunda en el mercado. Fuerte integración con el ecosistema Microsoft (Office 365, Active Directory, .NET).
~23% del mercadoGoogle Cloud Platform
Tercera en mercado pero líder en AI/ML, Big Data y Kubernetes (GKE). Fuerte en cargas analíticas.
~11% del mercadoIBM Cloud
Especializada en enterprise, mainframe e industria regulada (finanzas, salud). Fuerte en IA con Watson.
~4% del mercado⚖️ Comparativa de Proveedores
| Criterio | 🟠 AWS | 🔵 Azure | 🔴 GCP |
|---|---|---|---|
| Lanzamiento | 2006 | 2010 | 2008 |
| Servicios | +200 | +200 | +150 |
| Cómputo IaaS | EC2 | Virtual Machines | Compute Engine |
| Object Storage | S3 | Blob Storage | Cloud Storage |
| Base de datos relacional | RDS / Aurora | Azure SQL | Cloud SQL / AlloyDB |
| Serverless | Lambda | Azure Functions | Cloud Functions / Run |
| Kubernetes Gestionado | EKS | AKS | GKE |
| AI / ML | SageMaker | Azure ML | Vertex AI |
| Fortaleza clave | Ecosistema más maduro | Integración Microsoft | Big Data & AI |
🌍 Infraestructura Global de AWS
Región (Region)
Área geográfica con múltiples centros de datos. Ejemplo: us-east-1 (Virginia), sa-east-1 (São Paulo). Los datos no salen de la región sin tu permiso.
Zona de Disponibilidad (AZ)
Uno o más datacenters físicamente separados dentro de una región. Conectados por fibra de baja latencia. Aislan fallos entre sí.
Edge Location / PoP
Puntos de presencia para cachear contenido con CloudFront (CDN) cerca del usuario final. Reduce latencia globalmente.
Adicionalmente, si quieres explorar el mapa interactivo real y exacto de AWS, puedes hacerlo visitando su sitio web oficial de Infraestructura Global: 🔗 Mapa Interactivo de Infraestructura Global de AWS
☁️ Servicios Esenciales de AWS
Elastic Compute Cloud
Servidores virtuales (instancias) en la nube. Elige CPU, RAM, SO y región. Escala vertical y horizontalmente. El servicio más fundamental de AWS.
Serverless Functions
Ejecuta código sin gestionar servidores. Soporta Node.js, Python, Java, Go y más. Facturación por milisegundo de ejecución. Escala a cero automáticamente.
Contenedores y Kubernetes
ECS es el orquestador de contenedores propio de AWS. EKS es Kubernetes gestionado. Ambos se integran con Fargate para serverless containers.
Simple Storage Service
Almacenamiento de objetos infinitamente escalable. Guarda archivos, imágenes, backups, datasets y sitios web estáticos. 99.999999999% (11 nueves) de durabilidad.
Elastic Block Store
Discos virtuales de alta performance para instancias EC2. Similar a un disco duro en la nube. Persiste independientemente de la instancia.
Elastic File System
Sistema de archivos NFS compartido que múltiples instancias EC2 pueden montar simultáneamente. Escala automáticamente con el uso.
Relational Database Service
BD relacionales gestionadas: MySQL, PostgreSQL, MariaDB, Oracle, SQL Server y Aurora. AWS gestiona backups, parches, alta disponibilidad y réplicas.
High-Performance DB
Base de datos relacional compatible con MySQL y PostgreSQL, 5x más rápida que MySQL estándar. Arquitectura distribuida y serverless disponible.
NoSQL Key-Value & Document
Base de datos NoSQL totalmente gestionada. Latencia de un dígito en milisegundos. Escala automáticamente. Ideal para apps móviles, gaming, IoT.
Virtual Private Cloud
Red virtual privada e aislada dentro de AWS. Define subnets públicas/privadas, tablas de rutas, gateways y grupos de seguridad. Fundamento de toda arquitectura AWS.
ELB / ALB / NLB
Distribuye el tráfico entrante entre múltiples instancias. ALB (capa 7, HTTP/S), NLB (capa 4, TCP/UDP). Integrado con Auto Scaling.
Content Delivery Network
CDN global con +600 puntos de presencia. Cachea contenido cerca del usuario. Integrado con S3 y ALB. Soporte de HTTPS y Geo-restriction.
Identity and Access Management
Controla quién puede hacer qué en AWS. Usuarios, grupos, roles y políticas. Principio de mínimo privilegio. Es gratis y esencial en toda cuenta AWS.
Key Management Service
Gestión de claves de cifrado. Crea, rota y audita el uso de claves criptográficas. Integrado con S3, RDS, EBS, DynamoDB y más.
Managed REST & WebSocket API
Crea, publica y gestiona APIs REST, HTTP y WebSocket. Integra con Lambda para arquitecturas serverless completas. Throttling y autenticación integrados.
Mensajería y Notificaciones
SQS es una cola de mensajes desacoplada. SNS es un sistema pub/sub para notificaciones. Fundamentales en arquitecturas de microservicios y event-driven.
Plataforma ML Completa
Plataforma end-to-end para Machine Learning. Entrena, ajusta y despliega modelos a escala. Incluye notebooks Jupyter, pipelines y AutoML.
Generative AI Foundation Models
Accede a modelos de IA generativa de Anthropic (Claude), Meta (Llama), Stability AI y Amazon (Titan) via API. Sin gestionar infraestructura de IA.
Infrastructure as Code
Describe y provisiona infraestructura AWS mediante plantillas YAML o JSON. Permite versionar y reproducir entornos. La base de IaC en AWS.
CI/CD Gestionado
Automatiza el pipeline de entrega de software. Integra CodeCommit, CodeBuild, CodeDeploy. Conecta con GitHub y Jenkins. Despliega automáticamente.
🏛️ Arquitectura Web de Referencia en AWS
🏛️ AWS Well-Architected Framework
El AWS Well-Architected Framework es el conjunto de buenas prácticas definidas por AWS para construir sistemas seguros, de alto rendimiento, resilientes y eficientes en la nube. Se organiza en 6 pilares fundamentales.
Excelencia Operacional
Automatiza operaciones, monitorea sistemas, mejora continuamente. Usa IaC (CloudFormation / Terraform). Documenta procesos con runbooks.
Seguridad
Aplica mínimo privilegio en IAM. Habilita MFA. Cifra datos en reposo y tránsito con KMS. Monitorea con CloudTrail y GuardDuty.
Fiabilidad
Diseña para Multi-AZ. Usa Auto Scaling grupos. Implementa Circuit Breakers. Prueba fallos con Chaos Engineering.
Eficiencia de Rendimiento
Elige el tipo correcto de instancia. Usa caching (ElastiCache). Aprovecha CDN (CloudFront). Revisa métricas con CloudWatch.
Optimización de Costos
Usa Reserved Instances para cargas estables. Spot para batch. Elimina recursos huérfanos. Monitorea con Cost Explorer y presupuestos.
Sostenibilidad
Elige regiones con energía renovable. Usa instancias Graviton (ARM) más eficientes. Apaga recursos en horas sin carga. Optimiza el código.
🔐 Seguridad: Reglas de Oro en AWS
Nunca uses el Root Account
La cuenta root tiene acceso total. Crea inmediatamente un usuario IAM con permisos administrativos y usa ese en el día a día. Activa MFA en root.
CRÍTICOPrincipio de Mínimo Privilegio
Otorga solo los permisos estrictamente necesarios. Prefiere políticas Allow explícitas sobre *. Revisa permisos regularmente.
Rota las credenciales
Nunca almacenes Access Keys en código fuente. Usa Roles IAM para aplicaciones en EC2/Lambda. Rota keys cada 90 días mínimo.
AWS Secrets ManagerCifra todo
Activa cifrado en S3 (SSE-S3 o SSE-KMS), EBS, RDS. Usa HTTPS siempre. Habilita CloudTrail para auditoría completa de todas las acciones.
KMS CloudTrail💰 Tips de Optimización de Costos
Monitorea con Cost Explorer
Activa AWS Cost Explorer y configura alertas de presupuesto. Identifica qué servicios consumen más y optimiza antes de recibir una factura sorpresa.
Trusted Advisor
AWS Trusted Advisor analiza tu cuenta y recomienda mejoras en seguridad, rendimiento, tolerancia a fallos y ahorro de costos de forma automática.
Elimina Recursos Huérfanos
IPs elásticas no asociadas, snapshots antiguos, Load Balancers sin tráfico, instancias detenidas... todos generan costo. Revisa mensualmente.
Reserved vs Spot Savings Plans
Para EC2 estables: Reserved Instances 1-3 años (hasta 75% off). Para batch y ML: Spot Instances (hasta 90% off). Compute Savings Plans para Lambda.
📚 Certificaciones AWS
🥉 Cloud Practitioner
Nivel básico. Conceptos generales de la nube y servicios AWS fundamentales. Recomendado como primer paso. Sin experiencia técnica previa necesaria.
CLF-C02 Foundational🥈 Solutions Architect Associate
La más popular y reconocida. Diseño de arquitecturas escalables, resilientes y seguras en AWS. Altamente valorada por empleadores.
SAA-C03 Associate🥇 Solutions Architect Professional
Nivel avanzado. Arquitecturas complejas y multi-cuenta. Alta demanda en el mercado. Requiere experiencia real con AWS.
SAP-C02 Professional⚡ Developer / SysOps / DevOps
Certificaciones especializadas en desarrollo (DVA), operaciones (SOA) y DevOps (DOP). Ideales si tienes un rol técnico específico.
Associate Professional🔑 IAM — Identity and Access Management
Crear usuario y asignar permisos
Abre la terminal con AWS CLI configurado (aws configure) e ingresa tu región, Access Key y Secret Key.
Crea un nuevo usuario IAM con nombre descriptivo para identificarlo fácilmente en tu cuenta.
Adjunta una política gestionada de AWS al usuario para otorgarle los permisos necesarios (principio de mínimo privilegio).
Genera un Access Key para que el usuario pueda autenticarse programáticamente desde su entorno local.
# Crear usuario
aws iam create-user --user-name jordy-dev
# Asignar política
aws iam attach-user-policy --user-name jordy-dev \
--policy-arn arn:aws:iam::aws:policy/AmazonS3ReadOnlyAccess
# Crear access key
aws iam create-access-key --user-name jordy-dev
📋 Copiar
🖥️ EC2 — Elastic Compute Cloud
Lanzar instancia y conectarse por SSH
Elige una AMI (Amazon Machine Image). ami-0c02fb55956c7d316 corresponde a Amazon Linux 2 en us-east-1.
Selecciona el tipo de instancia. t2.micro es elegible para Free Tier (750 h/mes gratis en el primer año).
Especifica tu Key Pair (MiClave) y el Security Group que permita el puerto 22 para SSH desde tu IP.
Obtén la IP pública de tu instancia en la consola y conéctate con el archivo .pem descargado al crear el Key Pair.
aws ec2 run-instances --image-id ami-0c02fb55956c7d316 \
--instance-type t2.micro --key-name MiClave \
--security-group-ids sg-xxxxxxxx --count 1
# Conectar por SSH
ssh -i "MiClave.pem" ec2-user@<IP-PUBLICA>
📋 Copiar
🪣 S3 — Simple Storage Service
Crear bucket, subir archivos y habilitar sitio web estático
Crea un bucket con nombre globalmente único en toda AWS. Usa un sufijo con la fecha o tu nombre para asegurar unicidad.
Sube un archivo individual con cp o sincroniza toda una carpeta local con sync (solo sube los archivos nuevos o modificados).
Habilita el hosting de sitio web estático especificando el documento de índice. El bucket quedará accesible vía URL pública de S3.
Para acceso público, recuerda deshabilitar el "Block Public Access" y agregar la política de bucket correspondiente en la consola.
aws s3 mb s3://mi-bucket-unico-2024
aws s3 cp archivo.html s3://mi-bucket-unico-2024/
aws s3 sync ./carpeta s3://mi-bucket-unico-2024/
# Habilitar sitio web estático
aws s3 website s3://mi-bucket-unico-2024 \
--index-document index.html
📋 Copiar
⚡ Lambda — Serverless Functions
Crear función serverless e invocarla
Empaqueta tu código en un archivo ZIP. El handler index.handler indica que Lambda ejecutará la función handler exportada desde index.js.
Crea un rol IAM con la política AWSLambdaBasicExecutionRole para que Lambda pueda escribir logs en CloudWatch.
Despliega la función especificando el runtime, el rol y el archivo ZIP. Lambda escala automáticamente con cada invocación.
Invoca la función y revisa la respuesta en output.json. Lambda cobra solo por tiempo de ejecución (primer 1M de peticiones/mes son gratis).
aws lambda create-function --function-name MiFuncion \
--runtime nodejs18.x --role arn:aws:iam::123:role/lambda-role \
--handler index.handler --zip-file fileb://function.zip
# Invocar
aws lambda invoke --function-name MiFuncion output.json
📋 Copiar
🗃️ RDS — Relational Database Service
Crear base de datos MySQL gestionada
Define un identificador único para tu instancia de BD. Este será el nombre con el que la identificarás en la consola y en el CLI.
Selecciona la clase db.t3.micro (elegible para Free Tier) y el motor MySQL. RDS gestiona parches, backups y alta disponibilidad automáticamente.
Asigna credenciales de administrador seguras. Nunca hardcodees la contraseña en tu código; usa AWS Secrets Manager.
El storage inicial de 20 GB es más que suficiente para desarrollo. RDS puede escalar automáticamente el almacenamiento si se habilita autoscaling.
aws rds create-db-instance \
--db-instance-identifier mi-db \
--db-instance-class db.t3.micro \
--engine mysql --master-username admin \
--master-user-password MiPassword123 \
--allocated-storage 20
📋 Copiar
🌐 VPC — Virtual Private Cloud
Crear red privada virtual desde cero
Crea la VPC con un bloque CIDR privado. 10.0.0.0/16 permite hasta 65 536 direcciones IP internas en tu red virtual.
Crea al menos una subred dentro de la VPC. 10.0.1.0/24 es una subred pública con 256 IPs disponibles. Asígnala a una AZ específica.
Crea un Internet Gateway (IGW) para permitir que los recursos de tu VPC se comuniquen con internet de forma bidireccional.
Adjunta el IGW a tu VPC y actualiza la tabla de rutas de la subred pública para que el tráfico 0.0.0.0/0 salga por el IGW.
aws ec2 create-vpc --cidr-block 10.0.0.0/16
aws ec2 create-subnet --vpc-id vpc-xxxx --cidr-block 10.0.1.0/24
aws ec2 create-internet-gateway
aws ec2 attach-internet-gateway \
--vpc-id vpc-xxxx --internet-gateway-id igw-xxxx
📋 Copiar