Tu VPC ya está completa por dentro: subredes, puertas a internet y reglas de tráfico. Pero las redes rara vez viven aisladas: a veces necesitas conectar tu VPC con otra VPC, o llegar a servicios de AWS sin pasar por internet. Para eso están el VPC Peering y los endpoints. Con esto cerramos el capítulo de redes.
El problema: las VPCs están aisladas por defecto
Recuerda: una VPC es una parcela vallada y aislada. Dos VPCs distintas (aunque sean de la misma cuenta) no se pueden comunicar entre sí por defecto. Eso es bueno para la seguridad, pero a veces necesitas que sí hablen.
Ejemplo: Tu empresa tiene una VPC para el equipo de desarrollo y otra para el equipo de datos. El equipo de desarrollo necesita acceder a una base de datos que vive en la VPC de datos. ¿Cómo las conectas de forma privada y segura, sin sacar el tráfico a internet?
VPC Peering: unir dos VPCs
El VPC Peering crea una conexión privada directa entre dos VPCs, de modo que sus recursos puedan comunicarse como si estuvieran en la misma red, usando direcciones IP privadas y sin pasar por internet.
Analogía: Es como abrir una puerta privada entre dos parcelas vecinas. Los habitantes de ambas pueden pasar de una a otra directamente, sin salir a la calle pública. Solo pasan por esa puerta los que tú autorices.
Características clave:
- El tráfico va por la red privada de AWS, nunca por internet. Es seguro y rápido.
- Funciona entre VPCs de la misma cuenta o de cuentas distintas, e incluso entre regiones distintas.
- Tienes que añadir rutas en las tablas de rutas de ambas VPCs para que sepan cómo llegar a la otra (recuerda las route tables del subcapítulo 6.4).
⚠️ Limitación importante — no es transitivo: Si la VPC A está conectada con la B, y la B con la C, eso no significa que A pueda hablar con C. El peering conecta solo a los dos extremos directos. Para una topología compleja con muchas VPCs, conectarlas todas con todas (peering) se vuelve un lío. Para eso existe el Transit Gateway (un «router central» que conecta muchas VPCs entre sí), que es la solución a gran escala que verás en arquitecturas grandes (lo mencionaremos en el Capítulo 30).
VPC Endpoints: llegar a servicios de AWS de forma privada
Aquí resolvemos un problema muy común y a menudo invisible. Imagina que un servidor en una subred privada necesita acceder a un bucket de S3.
El problema: S3 es un servicio «público» de AWS (se accede por una URL de internet). Así que, normalmente, ese servidor privado tendría que salir a internet a través del NAT Gateway (subcapítulo 6.3) para llegar a S3. Eso significa:
- Pasar por el NAT Gateway (que cuesta dinero por datos).
- Que el tráfico salga «hacia internet» aunque sea hacia otro servicio de AWS.
Los VPC Endpoints resuelven esto. Un endpoint crea una conexión privada directa entre tu VPC y un servicio de AWS (como S3, DynamoDB y muchos otros), sin salir a internet y sin pasar por el NAT Gateway.
Analogía: En lugar de salir de tu parcela a la calle pública para ir a un servicio que está «a la vuelta de la esquina», abres un túnel privado directo hasta ese servicio. Más seguro, más rápido y más barato.
Ventajas de los endpoints:
- Más seguro: el tráfico nunca toca internet.
- Más barato: evitas costes de NAT Gateway para hablar con servicios de AWS.
- Mejor rendimiento: ruta directa por la red interna de AWS.
Dos tipos de endpoints
| Tipo | Cómo funciona | Para qué servicios |
|---|---|---|
| Gateway Endpoint | Se añade como una ruta en tu tabla de rutas. Gratis. | Solo S3 y DynamoDB |
| Interface Endpoint | Crea una interfaz de red privada dentro de tu subred. Tiene coste. | La mayoría del resto de servicios de AWS |
Consejo práctico muy rentable: Si tienes servidores en subredes privadas que acceden mucho a S3 o DynamoDB, crea un Gateway Endpoint (es gratis) y ahorrarás los costes de NAT Gateway para ese tráfico. Es una de las optimizaciones de coste más fáciles y efectivas que existen.
Otras formas de conectar redes (visión general)
Para que tengas el mapa completo, estas son las formas de conectar tu VPC con el exterior privado (no hace falta dominarlas ahora, solo conocer que existen):
| Servicio | Para qué |
|---|---|
| VPC Peering | Conectar dos VPCs entre sí |
| VPC Endpoints | Llegar a servicios de AWS de forma privada |
| Transit Gateway | Conectar muchas VPCs (y redes on-premise) a través de un router central |
| VPN Site-to-Site | Conectar tu VPC con tu datacenter on-premise por un túnel cifrado sobre internet |
| Direct Connect | Conectar tu VPC con tu datacenter por una línea física dedicada (rápida y estable) |
Los dos últimos son la base de las arquitecturas híbridas que vimos en el Capítulo 1: así se conectan la nube y el on-premise.
Lo que debes recordar
- Las VPCs están aisladas por defecto; para que dos se comuniquen necesitas VPC Peering (una «puerta privada» entre ellas).
- El peering no es transitivo (A-B y B-C no implica A-C); para muchas VPCs se usa Transit Gateway.
- Los VPC Endpoints conectan tu VPC con servicios de AWS (como S3) de forma privada, sin salir a internet ni pasar por el NAT Gateway: más seguro, rápido y barato.
- Los Gateway Endpoints (S3 y DynamoDB) son gratis: úsalos para ahorrar costes de NAT.
- Para conectar con tu datacenter on-premise: VPN (sobre internet) o Direct Connect (línea dedicada).
Con esto cierras el Capítulo 6 y ya entiendes las redes en AWS. En el Capítulo 7 veremos quién puede hacer qué en tu cuenta: la identidad y los accesos con IAM, el pilar de la seguridad en AWS.
Cloud, AWS & Terraform — De cero a experto
Capítulo 1 · Qué es el cloud computing
- 1.1 El modelo cliente-servidor tradicional
- 1.2 Problemas que venía a resolver la nube
- 1.3 On-premise vs cloud vs híbrido
- 1.4 Los tres modelos de servicio: IaaS, PaaS, SaaS
- 1.5 Los cinco pilares del cloud (según NIST)
- 1.6 Ventajas reales: elasticidad, pago por uso, disponibilidad global
Capítulo 2 · El mercado cloud y los grandes proveedores
- 2.1 AWS, Azure y GCP: diferencias y cuotas de mercado
- 2.2 Por qué aprender AWS primero
- 2.3 Conceptos que son universales entre proveedores
Capítulo 3 · Regiones, zonas de disponibilidad y edge
- 3.1 Qué es una región AWS y cómo elegirla
- 3.2 Availability Zones: alta disponibilidad desde el diseño
- 3.3 Edge locations y CloudFront
- 3.4 Latencia, resiliencia y soberanía de datos
Capítulo 4 · Cómputo: EC2
- 4.1 Instancias: tipos, familias y cuándo elegir cada una
- 4.2 AMIs, key pairs y Security Groups
- 4.3 Ciclo de vida de una instancia
- 4.4 Elastic IPs y Placement Groups
- 4.5 Savings Plans vs Reserved vs On-Demand vs Spot
Capítulo 5 · Almacenamiento: S3
- 5.1 Buckets, objetos y claves
- 5.2 Clases de almacenamiento (Standard, IA, Glacier…)
- 5.3 Versionado y ciclo de vida de objetos
- 5.4 Políticas de bucket y ACLs
- 5.5 Hosting de sitios web estáticos
Capítulo 6 · Redes: VPC
- 6.1 Qué es una VPC y por qué la necesitas
- 6.2 Subredes públicas y privadas
- 6.3 Internet Gateway y NAT Gateway
- 6.4 Route Tables y Network ACLs
- 6.5 VPC Peering y endpoints
Capítulo 7 · Identidad y acceso: IAM
- 7.1 Usuarios, grupos, roles y políticas
- 7.2 El principio de mínimo privilegio
- 7.3 Políticas basadas en identidad vs en recurso
- 7.4 MFA y credenciales temporales (STS)
- 7.5 Buenas prácticas de seguridad IAM
Capítulo 8 · Bases de datos gestionadas
- 8.1 RDS: motores, Multi-AZ y réplicas de lectura
- 8.2 Aurora y sus ventajas sobre RDS vanilla
- 8.3 DynamoDB: modelo clave-valor / documentos
- 8.4 ElastiCache para caché en memoria
- 8.5 Cuándo usar cada tipo de base de datos
Capítulo 9 · Por qué Infraestructura como Código
- 9.1 Problemas del aprovisionamiento manual
- 9.2 IaC declarativo vs imperativo
- 9.3 Terraform vs CloudFormation vs Pulumi vs CDK
- 9.4 El ciclo plan → apply → destroy
Capítulo 10 · HCL: el lenguaje de Terraform
- 10.1 Bloques resource, variable, output, locals
- 10.2 Tipos de datos: string, number, bool, list, map, object
- 10.3 Expresiones, referencias y funciones built-in
- 10.4 Condicionales y bucles (count, for_each, for)
Capítulo 11 · Providers y estado
- 11.1 Cómo funciona el provider de AWS
- 11.2 El fichero terraform.tfstate y su importancia
- 11.3 State local vs state remoto (S3 + DynamoDB)
- 11.4 Comandos esenciales: init, plan, apply, destroy, fmt, validate
Capítulo 12 · Tu primera infraestructura real en Terraform
- 12.1 Crear una VPC con subredes desde cero
- 12.2 Levantar una instancia EC2 pública
- 12.3 Asociar un Security Group y una Elastic IP
- 12.4 Outputs y referencias entre recursos
- 12.5 Flujo de trabajo en equipo: PR review de planes
Capítulo 13 · Balanceo de carga y autoescalado
- 13.1 Application Load Balancer vs Network Load Balancer
- 13.2 Target Groups, listeners y reglas
- 13.3 Auto Scaling Groups: políticas y métricas
- 13.4 Warm pools y lifecycle hooks
Capítulo 14 · Serverless con Lambda
- 14.1 El modelo de ejecución de Lambda
- 14.2 Triggers: API Gateway, S3, DynamoDB Streams, SQS
- 14.3 Gestión de dependencias y capas (Layers)
- 14.4 Cold starts y estrategias para reducirlos
- 14.5 Límites y antipatrones
Capítulo 15 · Mensajería y eventos
- 15.1 SQS: colas estándar vs FIFO, DLQ
- 15.2 SNS: topics, suscripciones, fan-out
- 15.3 EventBridge: event buses y reglas
- 15.4 Patrones: pub/sub, desacoplamiento, saga
Capítulo 16 · Entrega de contenido y DNS
- 16.1 Route 53: tipos de registros y routing policies
- 16.2 CloudFront: distribuciones, cachés y origins
- 16.3 ACM: certificados SSL/TLS gratuitos
- 16.4 WAF integrado con CloudFront
Capítulo 17 · Contenedores en AWS
- 17.1 Docker: repaso exprés de conceptos clave
- 17.2 ECR: registro privado de imágenes
- 17.3 ECS: task definitions, services, Fargate vs EC2
- 17.4 EKS: cuándo Kubernetes y cuándo no
Capítulo 18 · Módulos: reutilización y composición
- 18.1 Anatomía de un módulo Terraform
- 18.2 Variables de entrada, outputs y dependencias
- 18.3 Módulos locales vs módulos del Terraform Registry
- 18.4 Versionado de módulos con Git tags
- 18.5 Diseño de módulos genéricos vs específicos de dominio
Capítulo 19 · Workspaces y gestión de entornos
- 19.1 Workspaces de Terraform: casos de uso y limitaciones
- 19.2 Estrategia de directorios por entorno (dev/stg/prod)
- 19.3 Terragrunt: DRY para configuraciones de entorno
- 19.4 Variables de entorno y archivos .tfvars
Capítulo 20 · Backends remotos y locking
- 20.1 Configurar S3 + DynamoDB como backend
- 20.2 State locking: evitar corrupción en equipo
- 20.3 Migración de estado entre backends
- 20.4 terraform import: traer recursos existentes al estado
Capítulo 21 · Testing de infraestructura
- 21.1 Terraform validate y fmt en CI
- 21.2 Checkov y tfsec: análisis de seguridad estático
- 21.3 Terratest: tests de integración en Go
- 21.4 Contract testing entre módulos
Capítulo 22 · Terraform en CI/CD
- 22.1 Pipeline básico: lint → plan → apply en GitHub Actions
- 22.2 Atlantis: GitOps para Terraform
- 22.3 Terraform Cloud / HCP Terraform
- 22.4 Drift detection y reconciliación automática
Capítulo 23 · Seguridad en profundidad
- 23.1 AWS Organizations y Service Control Policies
- 23.2 AWS Config: compliance continuo
- 23.3 GuardDuty: detección de amenazas
- 23.4 Security Hub: visión centralizada
- 23.5 KMS: gestión de claves y rotación
- 23.6 Secrets Manager vs Parameter Store
Capítulo 24 · Observabilidad: logs, métricas y trazas
- 24.1 CloudWatch Logs, métricas y alarmas
- 24.2 CloudWatch Dashboards y Contributor Insights
- 24.3 X-Ray: trazado distribuido
- 24.4 OpenTelemetry en AWS
- 24.5 Managed Grafana y Managed Prometheus
Capítulo 25 · Optimización de costes
- 25.1 AWS Cost Explorer y presupuestos con alertas
- 25.2 Trusted Advisor y Compute Optimizer
- 25.3 Rightsizing: cómo detectar sobredimensionamiento
- 25.4 Savings Plans vs Reserved Instances: decisión estratégica
- 25.5 FinOps: cultura y procesos para controlar el gasto
Capítulo 26 · Alta disponibilidad y disaster recovery
- 26.1 RTO y RPO: definir los objetivos
- 26.2 Estrategias: backup/restore, pilot light, warm standby, multi-site
- 26.3 Route 53 health checks y failover automático
- 26.4 AWS Backup: política centralizada de copias
Capítulo 27 · Well-Architected Framework de AWS
- 27.1 Los seis pilares: excelencia operacional, seguridad, fiabilidad, eficiencia de rendimiento, optimización de costes, sostenibilidad
- 27.2 Well-Architected Tool: revisiones formales
- 27.3 Cómo aplicar el framework en decisiones de diseño
Capítulo 28 · Arquitecturas serverless a escala
- 28.1 Event-driven architecture con Lambda + EventBridge
- 28.2 Saga pattern para transacciones distribuidas
- 28.3 Step Functions: orquestación de workflows complejos
- 28.4 Lambda@Edge y CloudFront Functions
Capítulo 29 · Plataformas de datos en AWS
- 29.1 Data Lake con S3, Glue y Athena
- 29.2 Kinesis Data Streams y Firehose para streaming
- 29.3 Redshift: data warehousing a escala
- 29.4 Lake Formation: gobierno del dato
Capítulo 30 · Multi-cuenta y landing zones
- 30.1 Por qué separar workloads en cuentas distintas
- 30.2 AWS Control Tower y Account Factory
- 30.3 Gestión centralizada de logs y seguridad
- 30.4 Terraform a escala multi-cuenta con módulos compartidos
Capítulo 31 · Platform Engineering e Internal Developer Platform
- 31.1 Golden paths y abstracciones sobre Terraform
- 31.2 Service Catalog de AWS
- 31.3 Backstage como portal de desarrolladores
- 31.4 Módulos Terraform como producto interno
Capítulo 32 · Certificaciones AWS relevantes
- 32.1 Cloud Practitioner: ¿vale la pena?
- 32.2 Solutions Architect Associate → Professional
- 32.3 DevOps Engineer Professional
- 32.4 Specialty: Security, Database, Networking
- 32.5 HashiCorp Terraform Associate
Capítulo 33 · Proyectos para consolidar lo aprendido
- 33.1 Proyecto 1: blog serverless (S3 + CloudFront + Lambda + DynamoDB)
- 33.2 Proyecto 2: API REST con ECS Fargate + RDS + ALB
- 33.3 Proyecto 3: plataforma de datos con Glue + Athena + Redshift
- 33.4 Proyecto 4: landing zone multi-cuenta con Terraform y Control Tower
