El SAP-C02 evalúa la capacidad de diseñar arquitecturas de microservicios a escala empresarial. ECS, EKS, Fargate y API Gateway son los pilares de las aplicaciones cloud-native en AWS.
Contenido
Desacoplamiento
Cada servicio tiene su propia base de datos y se comunica via APIs o mensajería. Sin dependencias directas de esquemas.
Escalado independiente
Cada microservicio escala según su propia demanda. El servicio de pagos puede tener más instancias que el de reportes.
Tolerancia a fallos
El fallo de un servicio no cascadea al resto. Patterns: Circuit Breaker, Bulkhead, Timeout.
CI/CD independiente
Cada equipo puede desplegar su servicio sin coordinación. Pipelines separados por microservicio.
ECS es el orquestador de contenedores nativo de AWS. Define cargas de trabajo como Tasks (contenedores individuales) y Services (grupos de Tasks con escalado y registro de servicio).
Conceptos clave de ECS
ECS Launch Types
EC2 Launch Type
Fargate Launch Type
EKS es Kubernetes gestionado en AWS. AWS gestiona el control plane (kube-apiserver, etcd, scheduler). Tú gestionas los worker nodes (EC2 o Fargate). Compatibilidad nativa con el ecosistema Kubernetes estándar.
Node Groups
Grupos de EC2 instances (Managed o Self-Managed). Managed Node Groups usan ASG y parchado automático.
Fargate Profiles
Pods corren en Fargate. AWS gestiona la infraestructura. Sin worker nodes EC2.
EKS Anywhere
Ejecuta EKS en on-premises (VMware, bare metal). Mismo plano de control para nube y on-premises.
EKS Distro
Distribución Kubernetes open-source que usa EKS. Para instalar en cualquier infraestructura.
IRSA
IAM Roles for Service Accounts. Asigna IAM roles a pods específicos (mínimo privilegio a nivel de pod).
EKS Add-ons
CoreDNS, kube-proxy, VPC CNI, EBS CSI driver gestionados por AWS con updates automáticos.
Características de Fargate
Networking de Fargate
| Tipo | Protocolo | Despliegue | Mejor para |
|---|---|---|---|
| REST API | HTTP/HTTPS | Edge / Regional / Private | APIs REST con transformaciones, caching, autenticación compleja |
| HTTP API | HTTP/HTTPS | Regional únicamente | APIs simples, bajo costo (70% más barato que REST), menor latencia |
| WebSocket API | WebSocket | Regional | Chat, notificaciones en tiempo real, conexiones persistentes bidireccionales |
Autenticación en API Gateway
Throttling y protección
App Mesh es el service mesh de AWS. Inyecta un sidecar proxy (Envoy) en cada microservicio para gestionar el tráfico entre servicios sin modificar el código de la aplicación.
Observabilidad: traces y métricas de tráfico E-W sin código
Traffic shifting: canary/blue-green entre versiones
Circuit breaking y retries automáticos
mTLS entre microservicios sin modificar código
| Criterio | ECS | EKS |
|---|---|---|
| ¿Ya usan Kubernetes? | No es la opción natural | Sí — compatibilidad nativa con k8s |
| ¿Portabilidad multi-cloud? | Limitado a AWS | Sí — mismo YAML funciona en GKE/AKS |
| ¿Overhead operacional tolerable? | Bajo — API nativa AWS | Mayor — k8s tiene curva de aprendizaje |
| ¿Integración profunda con AWS? | Mejor — nativo con todos los servicios | Buena — via plugins (CSI, CNI, etc.) |
| ¿Control granular de scheduling? | Limitado | Completo — taints, tolerations, affinity |
| ¿Costo del control plane? | Gratis | $0.10/h por cluster (~$73/mes) |
| ¿Cargas de trabajo a gran escala? | Funciona bien | Mejor para orquestación compleja |
Trampa: "Fargate elimina la necesidad de gestionar clusters ECS/EKS"
Realidad: Fargate elimina la gestión de instancias EC2 (worker nodes), pero el cluster ECS o el control plane EKS siguen existiendo. Solo cambia quién gestiona la infraestructura de compute.
Trampa: "API Gateway HTTP API tiene todas las funciones de REST API"
Realidad: HTTP API es más barato pero tiene menos funciones: sin caching, sin request/response transformations, sin usage plans, sin private integrations a VPC Links complejos.
Trampa: "ECS Task Role y Instance Role son lo mismo"
Realidad: Son diferentes. Instance Role aplica al EC2 que corre las Tasks. Task Role aplica específicamente a los contenedores en esa Task Definition. Siempre usar Task Role para seguir el principio de mínimo privilegio.
¿Entendiste este tema?
Pon a prueba lo que acabas de aprender
Una empresa tiene microservicios desplegados en ECS Fargate. El servicio de pagos necesita acceder a DynamoDB y Secrets Manager. El equipo de seguridad quiere que SOLO el servicio de pagos tenga esos permisos, no los otros microservicios del mismo cluster. ¿Cómo lograr esto correctamente?
Inicia sesión para llevar tu progreso.