0Pricing
AWS Solutions Architect · Lección

Tipo de lanzamiento EC2 frente a Fargate

Compare la gestión de instancias de contenedor EC2 por cuenta propia con el uso de Fargate para ejecutar contenedores sin servidor y comprenda las diferencias de costes

Tipo de lanzamiento EC2 frente a Fargate es una lección gratuita de AWS Solutions Architect en CoddyKit. Esta es la lección 2 de 4. Puedes leer la lección completa abajo gratuitamente — luego la practicas en el navegador con un editor de código integrado y un tutor de IA 24/7. Forma parte de la ruta de aprendizaje de AWS Solutions Architect, y tu progreso se sincroniza en la web y la app de CoddyKit. El curso de AWS Solutions Architect incluye 4 lecciones en total.

Dos formas de ejecutar tareas de ECS

ECS ofrece dos tipos de lanzamiento que determinan dónde se ejecutan los contenedores: el tipo de lanzamiento EC2 ejecuta los contenedores en instancias de EC2 que usted aprovisiona y administra dentro del clúster; el tipo de lanzamiento Fargate es un motor informático sin servidor en el que AWS administra por completo los servidores subyacentes. La definición de tareas y la configuración del servicio son prácticamente idénticas en ambos casos; la diferencia clave es quién se responsabiliza de administrar la infraestructura y el modelo de costes.

Tipo de lanzamiento EC2: control total

Con el tipo de lanzamiento EC2, registra instancias de EC2 como instancias de contenedor en el clúster mediante el ECS Container Agent (preinstalado en las AMI optimizadas para ECS). Puede elegir los tipos de instancia, controlar la configuración a nivel del sistema operativo, aplicar líneas base de seguridad personalizadas y usar instancias Spot para ahorrar costes. ECS distribuye las tareas entre las instancias registradas según estrategias de colocación de empaquetado compacto o distribución uniforme. Usted es responsable de aplicar parches, escalar y mantener la flota de EC2 subyacente.

# Launch an ECS-optimised EC2 instance that joins the cluster
# User data for ECS container agent
#!/bin/bash
echo ECS_CLUSTER=MyAppCluster >> /etc/ecs/ecs.config
echo ECS_ENABLE_CONTAINER_METADATA=true >> /etc/ecs/ecs.config

Fargate: contenedores sin servidor

Con Fargate, usted especifica la CPU y la memoria por tarea, y AWS aprovisiona de forma transparente la capacidad de cómputo subyacente. No hay instancias de EC2 que registrar, aplicar parches o escalar; AWS se encarga de todo. Las tareas obtienen su propio kernel aislado (mediante microVM de Firecracker), lo que proporciona un aislamiento de seguridad más sólido que las instancias de contenedor de EC2, donde varias tareas comparten el mismo host. Fargate requiere el modo de red awsvpc, lo que significa que cada tarea obtiene su propia ENI y dirección IP de VPC.

aws ecs run-task \
  --cluster 'MyAppCluster' \
  --task-definition 'myapp-task:5' \
  --launch-type FARGATE \
  --network-configuration '{
    "awsvpcConfiguration": {
      "subnets": ["subnet-aaa111"],
      "securityGroups": ["sg-xyz"],
      "assignPublicIp": "ENABLED"
    }
  }'

Comparación de modelos de costes

Los modelos de costes son fundamentalmente diferentes. Tipo de lanzamiento EC2: usted paga por las instancias de EC2 subyacentes (independientemente de si hay tareas en ejecución), pero puede utilizar Reserved Instances o Savings Plans para obtener descuentos, y Spot Instances para ahorrar hasta un 90 % en cargas de trabajo interrumpibles. Fargate: usted paga solo por la vCPU y la memoria consumidas por cada tarea y por segundo; no hay costes por inactividad entre tareas. Para cargas de trabajo variables o por lotes, Fargate suele ser más económico; para cargas de trabajo con una utilización alta y constante, EC2 con Reserved Instances puede resultar más barato.

Fargate Spot para ahorrar costes

Fargate Spot proporciona capacidad de cómputo de Fargate con precios considerablemente reducidos (hasta un 70 % de descuento), a cambio de la posibilidad de sufrir interrupciones cuando AWS necesite recuperar capacidad. Fargate Spot es ideal para el procesamiento por lotes, las canalizaciones de CI/CD y los entornos de desarrollo y puesta en escena. Configure una estrategia de proveedores de capacidad para combinar Fargate (bajo demanda) y Fargate Spot: use base=1 en Fargate para garantizar al menos una tarea, y valores de weight para distribuir la capacidad restante entre ambos.

aws ecs create-service \
  --cluster 'MyAppCluster' \
  --service-name 'BatchService' \
  --task-definition 'batch-task:1' \
  --desired-count 10 \
  --capacity-provider-strategy \
    'capacityProvider=FARGATE,weight=1,base=1' \
    'capacityProvider=FARGATE_SPOT,weight=4'

Cuándo elegir el tipo de lanzamiento EC2

Elija el tipo de lanzamiento EC2 cuando necesite: instancias con GPU (Fargate ofrece compatibilidad limitada con GPU), tipos de instancia específicos que no estén disponibles en Fargate, configuración personalizada del sistema operativo (ajuste del kernel y controladores personalizados), rendimiento de red que requiera grupos de ubicación o redes mejoradas, contenedores de Windows (EC2 admite contenedores de Windows Server; Fargate admite Windows, pero con limitaciones), o cuando ejecute cargas con una utilización alta y constante, en cuyo caso las Reserved Instances de EC2 ofrecen una ventaja de costes significativa frente a la facturación por segundo de Fargate.

Cuándo elegir Fargate

Elija Fargate cuando desee: eliminar la carga de gestión de EC2 (sin aplicar parches al sistema operativo ni escalar el clúster), pagar solo por lo que utiliza por segundo, ejecutar cargas de trabajo variables o por lotes que no justifiquen capacidad de EC2 inactiva, conseguir un aislamiento más sólido de las tareas mediante microVM de Firecracker, o acelerar el desarrollo centrándose exclusivamente en el código de la aplicación. Fargate es la recomendación predeterminada para las nuevas cargas de trabajo de ECS en el examen SAA-C03, salvo que se indique un requisito específico de EC2.

Proveedores de capacidad de ECS

Los proveedores de capacidad abstraen la capa de cómputo de los servicios de ECS. En EC2, un proveedor de capacidad se vincula a un grupo de Auto Scaling; ECS escala automáticamente el ASG cuando no se pueden colocar tareas debido a una capacidad insuficiente. En Fargate, FARGATE y FARGATE_SPOT son proveedores de capacidad integrados. Definir una estrategia de proveedores de capacidad en un servicio permite combinar capacidad bajo demanda y Spot/Fargate Spot, lo que proporciona un control detallado sobre el equilibrio entre costes y disponibilidad para cada carga de trabajo.

Comparación de la carga operativa

La carga operativa difiere considerablemente entre los tipos de lanzamiento. El tipo de lanzamiento EC2 requiere: selección y actualización de AMI, configuración de EC2 Auto Scaling, aplicación de parches al sistema operativo mediante SSM o scripts personalizados, gestión de la capacidad de las instancias de contenedor y refuerzo de la seguridad a nivel de instancia. Fargate elimina todo lo anterior: AWS se encarga de aplicar parches a la plataforma de Fargate, no hay instancias que gestionar ni que planificar la capacidad del clúster. Sin embargo, Fargate ofrece menos flexibilidad para la personalización a nivel del sistema operativo y el ajuste del rendimiento de red.

Dimensionamiento de CPU y memoria de tareas para Fargate

Las definiciones de tareas de Fargate deben especificar la CPU y la memoria a partir de un conjunto fijo de combinaciones. Valores de CPU: 256, 512, 1024, 2048, 4096, 8192, 16384 (en unidades de vCPU, donde 1024 = 1 vCPU). La memoria debe estar dentro de los rangos permitidos para cada valor de CPU; por ejemplo, 256 de CPU permite entre 512 y 2048 MB de memoria. Los contenedores de la tarea comparten el límite de CPU y memoria de la tarea. Es importante dimensionar correctamente los recursos: Fargate factura exactamente lo que usted especifica, por lo que aprovisionar recursos en exceso desperdicia dinero sin aportar un beneficio de rendimiento real si las cargas de trabajo están limitadas por la CPU.

# Valid Fargate combinations
# 256 CPU (.25 vCPU): 512, 1024, or 2048 MB
# 512 CPU (.5 vCPU): 1024 to 4096 MB
# 1024 CPU (1 vCPU): 2048 to 8192 MB
# 2048 CPU (2 vCPU): 4096 to 16384 MB
# 4096 CPU (4 vCPU): 8192 to 30720 MB

ECS Exec para la depuración

ECS Exec le permite abrir una sesión de shell interactiva directamente en un contenedor en ejecución (tanto en EC2 como en Fargate), sin SSH ni hosts bastión. Internamente, utiliza AWS Systems Manager Session Manager. Habilítelo en el servicio y use la CLI execute-command para iniciar una sesión de bash. Esto resulta especialmente útil para depurar problemas de producción en contenedores. El rol de tarea necesita ssmmessages:CreateControlChannel y los permisos de SSM relacionados.

aws ecs execute-command \
  --cluster 'MyAppCluster' \
  --task 'abc123def456' \
  --container 'myapp' \
  --interactive \
  --command '/bin/bash'

Comprobación rápida

Compruebe su comprensión de los conceptos de AWS Solutions Architect (SAA-C03) de esta lección.

Resumen de la lección

En esta lección ha aprendido que el tipo de lanzamiento EC2 ofrece control total sobre los tipos de instancia y la configuración del sistema operativo, a cambio de gestionar la flota subyacente; es ideal para GPU, hardware especializado o cargas de trabajo con una utilización alta y constante. Fargate elimina la gestión de la infraestructura mediante la facturación de las tareas por segundo y un sólido aislamiento con Firecracker; es ideal para la mayoría de las cargas de trabajo web y de API, así como para los trabajos por lotes. Fargate Spot reduce los costes hasta un 70 % para cargas de trabajo tolerantes a interrupciones. A continuación, exploraremos Amazon ECR para almacenar y extraer imágenes de contenedor.

Preguntas frecuentes

¿La lección «Tipo de lanzamiento EC2 frente a Fargate» es gratis?

Sí — el texto completo de «Tipo de lanzamiento EC2 frente a Fargate» es gratis para leer aquí en la web. Para practicarla de forma interactiva (editor de código integrado y tutor de IA 24/7) y desbloquear el resto del curso de AWS Solutions Architect, actualiza a CoddyKit PRO. El curso de AWS Solutions Architect incluye 4 lecciones en total.

¿Qué aprenderé en «Tipo de lanzamiento EC2 frente a Fargate»?

Compare la gestión de instancias de contenedor EC2 por cuenta propia con el uso de Fargate para ejecutar contenedores sin servidor y comprenda las diferencias de costes Practicas AWS Solutions Architect con código real que ejecutas directamente en el navegador, y un tutor de IA 24/7 responde tus preguntas mientras trabajas en la lección.

¿Necesito experiencia previa para empezar AWS Solutions Architect?

No se requiere experiencia previa. AWS Solutions Architect en CoddyKit está estructurado para principiantes hasta estudiantes avanzados, así que puedes empezar aquí o desde el inicio y avanzar a tu ritmo. Esta es la lección 2 de 4.

¿Cuánto tiempo toma la lección «Tipo de lanzamiento EC2 frente a Fargate»?

La mayoría de las lecciones de CoddyKit toman alrededor de 5–10 minutos. Cada una es compacta e interactiva, así que avanzas constantemente y retomas exactamente por donde dejaste en la web y la app.

¿Puedo escribir y ejecutar código en esta lección de AWS Solutions Architect?

Sí. Cada lección de AWS Solutions Architect incluye un editor de código integrado, así que escribes y ejecutas código real directamente en tu navegador y obtienes retroalimentación instantánea de IA — sin configuración local necesaria.

Todas las lecciones de este curso

  1. Clústeres de ECS, definiciones de tareas y servicios
  2. Tipo de lanzamiento EC2 frente a Fargate
  3. ECR: almacenamiento y extracción de imágenes de contenedor
  4. Auto Scaling y balanceo de carga de servicios de ECS
← Volver a AWS Solutions Architect