¿Qué es Amazon Elastic Container Service? - Amazon Elastic Container Service

Las traducciones son generadas a través de traducción automática. En caso de conflicto entre la traducción y la version original de inglés, prevalecerá la version en inglés.

¿Qué es Amazon Elastic Container Service?

Amazon Elastic Container Service (Amazon ECS) es un servicio de orquestación de contenedores completamente administrado que facilita la implementación, la administración y el escalado de aplicaciones en contenedores. Como servicio totalmente gestionado, Amazon ECS incluye prácticas recomendadas operativas y de AWS configuración integradas. Está integrado con herramientas AWS tanto como de terceros, como Amazon Elastic Container Registry y Docker. Esta integración facilita a los equipos centrarse en crear las aplicaciones, no en el entorno. Puede ejecutar y escalar sus cargas de trabajo de contenedores Regiones de AWS en la nube y de forma local, sin la complejidad de administrar un plano de control.

Terminología y componentes de Amazon ECS

Amazon ECS consta de tres capas:

  • Capacidad: la infraestructura en la que se ejecutan sus contenedores

  • Controlador: implementan y administran las aplicaciones que se ejecutan en los contenedores

  • Aprovisionamiento: las herramientas que puede utilizar para interactuar con el programador a fin de implementar y administrar las aplicaciones y los contenedores

En el siguiente diagrama se muestran las capas de Amazon ECS.


                Diagrama que muestra las capas de capacidad, controlador y aprovisionamiento.

Capacidad de Amazon ECS

La capacidad de Amazon ECS es la infraestructura en la que se ejecutan sus contenedores. A continuación, se muestran una descripción general de las opciones de capacidad:

  • Instancias de Amazon EC2 en la nube AWS

    Usted elige el tipo de instancia y la cantidad de instancias y administra la capacidad.

  • Sin servidor (AWS Fargate (Fargate)) en la nube AWS

    Fargate es un motor de cómputo sin servidor. pay-as-you-go Con Fargate, no necesita administrar servidores, gestionar la planificación de la capacidad ni aislar las cargas de trabajo de contenedores por seguridad.

  • Máquinas virtuales (VM) o servidores locales en las instalaciones

    Amazon ECS Anywhere admite el registro de una instancia externa, por ejemplo, un servidor ubicado en las instalaciones o una máquina virtual (VM), en el clúster de Amazon ECS.

La capacidad se puede ubicar en cualquiera de los siguientes recursos: AWS

  • Zonas de disponibilidad

  • Local Zones

  • Zonas de Wavelength

  • Regiones de AWS

  • AWS Outposts

Controlador de Amazon ECS

El programador de Amazon ECS es el software que administra sus aplicaciones.

Aprovisionamiento de Amazon ECS

Existen varias opciones para aprovisionar Amazon ECS:

  • AWS Management Console: proporciona una interfaz web que se puede utilizar para obtener acceso a los recursos de Amazon ECS.

  • AWS Command Line Interface (AWS CLI): proporciona comandos para un amplio conjunto de AWS servicios, incluido Amazon ECS. Es compatible con Windows, Mac y Linux. Para obtener más información, consulte AWS Command Line Interface.

  • AWS SDK: proporciona API específicas para cada idioma y se ocupa de muchos de los detalles de la conexión. Incluyen cálculos de firmas, control de reintentos de solicitud y control de errores. Para obtener más información, consulte SDK de AWS.

  • Copiloto: proporciona una herramienta de código abierto para que los desarrolladores creen, publiquen y operen aplicaciones en contenedores listas para producción en Amazon ECS. Para obtener más información, consulte Copilot en el sitio web. GitHub

  • AWS CDK: proporciona un marco de desarrollo de software de código abierto que puede utilizar para modelar y aprovisionar los recursos de sus aplicaciones en la nube mediante lenguajes de programación conocidos. La AWS CDK aprovisiona sus recursos de forma segura y repetible a través de AWS CloudFormation.

Ciclo de vida de la aplicación

El siguiente diagrama muestra el ciclo de vida de la aplicación y su funcionamiento con los componentes de Amazon ECS.


                Diagrama que muestra las capas de capacidad, controlador y aprovisionamiento.

Debe diseñar sus aplicaciones para que puedan ejecutarse en contenedores. Un contenedor es una unidad estandarizada de desarrollo de software que contiene todo lo que la aplicación de software necesita para ejecutarse. Esto incluye código, tiempo de ejecución, herramientas del sistema y bibliotecas del sistema relevantes. Los contenedores se crean a partir de una plantilla de solo lectura denominada imagen. Las imágenes se crean normalmente a partir de un Dockerfile. Un Dockerfile es un archivo de texto sin formato que especifica todos los componentes incluidos en el contenedor. Una vez construidas, estas imágenes se almacenan en un registro, como Amazon ECR, desde donde se pueden descargar.

Después de crear y almacenar la imagen, debe crear una definición de tarea de Amazon ECS. Una definición de tarea es un esquema de la aplicación. Se trata de un archivo de texto en formato JSON que describe los parámetros y uno o varios contenedores que forman la aplicación. Por ejemplo, puede usarla para especificar la imagen y los parámetros para el sistema operativo, qué contenedores utilizar, qué puertos abrir para la aplicación, así como qué volúmenes de datos se van a utilizar con los contenedores en la tarea. Los parámetros específicos disponibles para la definición de tareas dependerán de las necesidades de la aplicación específica.

Después de definir la definición de la tarea, la implementa como un servicio o una tarea en el clúster. Un clúster es una agrupación lógica de tareas o servicios que se ejecuta en la infraestructura de capacidad registrada en un clúster.

Una tarea es la instancia creada de una definición de tarea dentro de un clúster. Puede ejecutar una tarea independiente o ejecutar una tarea como parte de un servicio. Puede utilizar un servicio de Amazon ECS para ejecutar y mantener simultáneamente el número deseado de tareas en un clúster de Amazon ECS. El funcionamiento es que, en caso de que alguna de las tareas falle o se pare por algún motivo, el programador de servicio de Amazon ECS lanza otra instancia en función de la definición de tarea. Lo hace para reemplazarlo y así mantener el número deseado de tareas en el servicio.

El agente de contenedor se ejecuta en cada instancia de contenedor dentro de un clúster de Amazon ECS. El agente envía información a Amazon ECS acerca de la utilización de recursos y tareas actualmente en ejecución en cada recurso. Envía y detiene tareas cada vez que recibe una solicitud proveniente de Amazon ECS.

Tras implementar la tarea o el servicio, puede utilizar cualquiera de las siguientes herramientas para supervisar la implementación y la aplicación:

  • CloudWatch

  • Supervisión en tiempo de ejecución