Configuración de clusters, tareas y servicios en Amazon ECS

Clase 20 de 76Curso de AWS Certified Solutions Architect Associate

Resumen

En un momento crítico para mantener la disponibilidad del banco Nexia, explorar arquitecturas modernas como microservicios y soluciones serverless cobra relevancia. Los incidentes derivados del monolito impulsan a adoptar tecnologías ágiles que permitan mantener una experiencia positiva para el usuario final sin tiempos muertos.

¿Por qué elegir ECS y Fargate para desplegar servicios?

Amazon Elastic Container Service (ECS) combinado con Fargate emerge como una solución óptima al facilitar la creación y manejo de contenedores en la nube sin administración directa de servidores. Con ECS, pueden definirse tareas específicas que ejecutan los contenedores y servicios que gestionan estas tareas, garantizando alta disponibilidad automática.

¿Qué es un cluster en ECS y cómo configurarlo?

El cluster actúa como entorno donde operan las tareas y servicios:

  • Seleccionar infraestructura (Fargate o EC2 optimiza diferentes opciones).
  • Configurar monitoreo con CloudWatch Container Insights permite seguimiento preciso.
  • Opción sencilla mediante CloudFormation para automatización de recursos.

¿Cómo crear definiciones de tarea en ECS?

La definición de tarea establece configuraciones claras sobre cómo deben ejecutarse las tareas:

  • Utilizar interfaz visual de ECS o brindar archivo JSON.
  • Establecer recursos para CPU y memoria ajustados a requerimientos específicos.
  • Seleccionar roles adecuados:
  • Task Role: otorgar permisos específicos a aplicaciones de AWS.
  • Task Execution Role: para la ejecución y manejo por parte del agente ECS.
  • Definir características adicionales como contenedores, mapeos de puertos y almacenamiento.

¿Qué son los servicios en ECS y cómo garantizan disponibilidad?

Los servicios administran múltiples tareas simultáneamente con mecanismos de reemplazo automático en caso de fallos:

  • Seleccionar familia de tarea y número de réplicas deseado.
  • Utilizar estrategias avanzadas de deployment como rolling updates o blue-green deployments.
  • Establecer configuraciones de red eligiendo VPC, subredes y grupos de seguridad adecuados.

¿Cuáles buenas prácticas favorecen la eficiencia y optimización de costos?

Al implementar soluciones con Fargate, monitorear y optimizar la asignación de memoria y CPU resulta fundamental para reducir costos. Entender claramente las necesidades técnicas específicas permitirá configurar de modo eficiente el entorno para cada tarea.

Compártenos tu experiencia trabajando con estas herramientas. ¿Qué otros consejos podrías brindar sobre ECS y Fargate?