Amazon EC2 Container Service (ECS) le permite ejecutar y administrar fácilmente aplicaciones con contenedores de Docker en un clúster de instancias de Amazon EC2. Las aplicaciones empaquetadas como contenedores a nivel local se implementarán y ejecutarán de la misma forma que los contenedores administrados por Amazon ECS. Amazon ECS elimina la necesidad de instalar, operar y escalar su propia infraestructura de administración de clústeres, y le permite programar aplicaciones compatibles con Docker en su clúster, según sus necesidades de recursos y requisitos de disponibilidad. Amazon ECS le permite pasar de un solo contenedor a miles de contenedores en cientos de instancias sin incrementar la complejidad de la ejecución de su aplicación. Puede ejecutar cualquier elemento: aplicaciones, trabajos por lotes o microservicios. Amazon ECS elimina la complejidad de la infraestructura, de manera que puede concentrarse en diseñar, crear y ejecutar aplicaciones con contenedores.

Con Amazon ECS, dispone de una visibilidad y un control absolutos del clúster, desde la creación y terminación de contenedores de Docker hasta la visualización de información detallada sobre el estado del clúster. Puede integrar y usar su propio programador de contenedores o conectar EC2 Container Service al proceso de entrega de software existente (por ejemplo, sistemas de entrega e integración continuas).

Amazon EC2 Container Service

Introducción

Disfrute de doce meses de acceso a la capa de uso gratuita de AWS y de otras características del nivel Basic de AWS Support, entre otras, un servicio ininterrumpido de soporte al cliente, foros de soporte y muchas más.

AmazonEC2ContainerService_ProductDetail

Amazon EC2 Container Service soporta Docker y le permite ejecutar y administrar contenedores de Docker en un clúster de instancias de Amazon EC2. Cada instancia EC2 de un clúster administrado por Amazon ECS ejecuta un demonio de Docker, por lo que cualquier aplicación empaquetada como contenedor a nivel local se implementará y ejecutará en Amazon ECS sin necesidad de realizar ningún cambio de configuración.

La administración de una infraestructura propia de administración de contenedores implica instalar, utilizar y escalar software de administración de clústeres, sistemas de administración de la configuración y soluciones de monitorización propios. Resulta complicado diseñar y administrar la disponibilidad y escalabilidad de estos sistemas. Amazon EC2 Container Service elimina la complejidad de la administración de contenedores. Con Amazon ECS, basta con lanzar un clúster de instancias de contenedor y especificar las tareas que desea ejecutar. Amazon se encarga de toda la administración de los clústeres.

Amazon EC2 Container Service le permite definir tareas a través de una plantilla JSON declarativa denominada definición de tareas. En una definición de tareas, puede especificar el contenedor o contenedores necesarios para dicha tarea, así como el repositorio de Docker, los requisitos de imagen, memoria y CPU, los volúmenes de datos compartidos y la forma en que los contenedores están vinculados entre sí. Puede lanzar tantas tareas como desee a partir de un archivo único de definición de tareas que puede registrar en el servicio. Los archivos de definición de tareas le permiten controlar la versión de la especificación de su aplicación.

Amazon EC2 Container Service le ofrece un conjunto de API sencillas que le permiten integrar y ampliar el servicio. Las API le permiten crear y eliminar clústeres, registrar tareas y anular su registro, lanzar y eliminar contenedores de Docker y ofrecer información detallada sobre el estado del clúster y de sus instancias. También puede usar AWS CloudFormation para aprovisionar clústeres de Amazon ECS, registrar definiciones de tareas y programar contenedores.

Amazon EC2 Container Service incorpora programadores que colocan los contenedores en sus clústeres de acuerdo con sus necesidades de recursos (p. ej., CPU o RAM) y requisitos de disponibilidad. Haciendo uso de los programadores disponibles, puede programar aplicaciones y servicios de larga ejecución, así como trabajos por lotes. Las API de Amazon ECS también proporcionan información completa del estado de los clústeres, que le permite escribir sus propios programadores o integrar programadores de terceros (p. ej., Marathon). Amazon ECS es un sistema de simultaneidad optimista y estado compartido que presenta el estado del clúster al completo a todos los programadores. Puede desarrollar sus propios programadores o integrar programadores de terceros utilizando las API de Amazon ECS o Blox, una colección de proyectos de código abierto para la administración y organización de contenedores. Para obtener más información, consulte la página de Blox GitHub.

Recuperación automática de los contenedores
El programador de Amazon ECS recuperará automáticamente los contenedores en mal estado, para asegurarse de que dispone de la cantidad deseada de contenedores para su aplicación.

Implementaciones de contenedores
Amazon ECS le permite actualizar con facilidad las versiones de sus contenedores. Puede cargar una versión nueva de la definición de tareas de su aplicación y el programador de Amazon ECS iniciará contenedores nuevos automáticamente a partir de la imagen actualizada, y eliminará los contenedores que ejecuten la versión anterior. Amazon ECS activará y anulará automáticamente el registro de sus contenedores del ELB asociado.

Amazon ECS se integra con Elastic Load Balancing (ELB), lo que permite distribuir el tráfico entre sus contenedores. Solo debe especificar la definición de tarea y el ELB que desea utilizar, y el programador del Servicio ECS de Amazon agregará y eliminará contenedores del ELB automáticamente. Puede especificar un puerto dinámico en la definición de tarea, que asigna a su contenedor un puerto no utilizado cuando se programa en una instancia de EC2. Puede utilizar el enrutamiento basado en ruta para compartir un ELB con varios servicios.

La CLI de Amazon EC2 Container Service (Amazon ECS CLI) permite simplificar la experiencia de desarrollo local y configurar fácilmente un clúster de Amazon ECS junto con los recursos asociados (como una instancia EC2). Amazon ECS CLI soporta Docker Compose, una herramienta de código abierto que sirve para definir y ejecutar aplicaciones multicontenedor. Puede aplicar la misma definición de Compose usada para definir una aplicación multicontenedor en la máquina de desarrollo y en la fase de producción. Amazon ECS CLI es de código abierto y se puede descargar aquí.

Amazon ECS proporciona funciones de monitorización para los contenedores y clústeres. Con Amazon CloudWatch, puede monitorizar el uso medio y total de la CPU y la memoria durante la ejecución de tareas, y agruparlas por definición de tarea, servicio o clúster. También puede configurar alarmas de CloudWatch que le avisen cuando sea necesario incrementar o reducir la capacidad de los contenedores o clústeres.

Puede enviar los logs de agente de ECS pertenecientes a cada instancia y los logs de contenedor de Docker a Logs de Amazon CloudWatch para simplificar el diagnóstico de problemas. También puede registrar todas las llamadas al API de Amazon ECS y recibir los archivos de log mediante AWS CloudTrail. La información registrada incluye la identidad del intermediario del API, la hora a la que se produce la llamada, la dirección IP de origen del intermediario, los parámetros de solicitud y los elementos de respuesta enviados por Amazon ECS. CloudTrail le proporciona un historial de las llamadas realizadas al API desde la consola de administración de Amazon ECS, los AWS SDK y la CLI de AWS. Además, le permite realizar un análisis de la seguridad, un seguimiento de los cambios en los recursos y auditorías de conformidad.

Amazon EC2 Container Service puede utilizarse con cualquier registro de Docker privado accesible o de terceros o con nexos de Docker, un repositorio hospedado de imágenes de Docker. Lo único que necesita es especificar el repositorio en la definición de tareas, y Amazon ECS recuperará las imágenes adecuadas para las aplicaciones.

Amazon EC2 Container Service permite especificar una función de IAM para cada tarea de ECS. Esto permite que las instancias de contenedor de ECS tengan una función mínima, respetando la política de acceso de “Último privilegio” y permitiéndole administrar la función de la instancia y la función de la tarea por separado. También ganará visibilidad en cuanto a qué tarea está utilizando qué función, lo cual se rastrea en los logs de CloudTrail.