Características de Amazon ECS

Amazon Elastic Container Service (Amazon ECS) es un servicio de orquestación de contenedores totalmente administrado que ayuda a las empresas a implementar, administrar y escalar fácilmente aplicaciones en contenedores. El plano de control de Amazon ECS, basado en opiniones y sin versiones, se integra profundamente con el resto del entorno de AWS para proporcionar una solución segura y fácil de usar para ejecutar cargas de trabajo de contenedores en la nube. Amazon ECS puede ejecutarse con Amazon Elastic Compute Cloud (Amazon EC2), AWS Fargate o incluso con una infraestructura local con Amazon ECS Anywhere.

Características clave

AWS Fargate está integrado en Amazon ECS, lo que significa que ya no tiene que preocuparse de administrar servidores, manejar la planificación de la capacidad o averiguar cómo aislar las cargas de trabajo de los contenedores por seguridad. Simplemente defina los requisitos de su aplicación, seleccione AWS Fargate como tipo de lanzamiento en la consola o la interfaz de línea de comandos (Command Line Interface, CLI) y AWS Fargate se encargará de todo el escalado y la administración de la infraestructura necesarios para ejecutar sus contenedores en opciones informáticas flexibles, con integraciones automáticas con otros servicios de AWS de soporte que su aplicación necesite.

Con Amazon ECS Anywhere, puede usar la misma consola conocida de Amazon ECS y las herramientas del operador para administrar las cargas de trabajo en contenedores locales para una experiencia consistente en todas sus aplicaciones basadas en contenedores. También puede usar Amazon ECS en AWS Outposts para ejecutar aplicaciones en contenedores que requieren latencias particularmente bajas para los sistemas locales.

Amazon ECS se integra de forma nativa con las herramientas de seguridad, identidad, administración y gobernanza en las que ya confía, lo que le ayuda a llegar a la producción de forma rápida y satisfactoria. Puede asignar permisos pormenorizados para cada uno de sus contenedores, lo que le proporciona un alto nivel de aislamiento al crear las aplicaciones. Lance sus contenedores con los niveles de seguridad y conformidad que espera de AWS. Además, mediante las integraciones con Amazon GuardDuty, puede detectar de manera rápida y fácil las amenazas externas a sus cargas de trabajo antes de que se intensifiquen.

Amazon ECS es un servicio de organización de contenedores completamente administrado, con la configuración y las prácticas operativas recomendadas de AWS incorporadas; además de no tener plano de control, nodos o complementos que deba administrar. Se integra de forma nativa tanto con AWS como con herramientas de terceros para facilitar que los equipos se centren en crear las aplicaciones, no el entorno.

Desarrollo

Amazon ECS es compatible con la administración de contenedores de Windows. Una imagen de máquina de Amazon (AMI) con Windows optimizada para Amazon ECS ofrece un nivel mejorado de visibilidad y desempeño al momento del lanzamiento de contenedores e instancias en relación con la CPU, el uso de memoria y las métricas de reserva.

La CLI de AWS Copilot es una herramienta para que los desarrolladores creen, liberen y operen aplicaciones en contenedores listas para la producción en Amazon ECS y AWS Fargate. Copilot incorpora las prácticas recomendadas, desde la infraestructura hasta la entrega continua y las pone a disposición de los clientes desde la comodidad de su línea de comando. Además, puede monitorear el estado del servicio al ver los registros o el estado del servicio, aumentar o reducir el escalado de los servicios de producción y poner en marcha un nuevo entorno para pruebas automatizadas. Descargue AWS Copilot.

Amazon ECS se puede usar con cualquier repositorio de imágenes de Docker alojado por terceros o cualquier registro de Docker con acceso privado, como Docker Hub y Amazon Elastic Container Registry (ECR). Lo único que debe especificar es el repositorio en la definición de tareas y Amazon ECS recuperará las imágenes correspondientes a las aplicaciones.

Administración

Amazon ECS le permite definir tareas a través de una plantilla de notación de objetos JavaScript (JSON) denominada Task Definition (Definición de tarea). En una definición de tareas, puede especificar el contenedor o los contenedores necesarios para dicha tarea, así como la imagen y el repositorio de Docker, los requisitos de 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 también le brindan control de versiones sobre la especificación de su aplicación.

Amazon ECS le ofrece un conjunto de acciones de API sencillas que le permiten integrar y ampliar el servicio. Las acciones de API le permiten crear y eliminar clústeres, registrar tareas y anular su registro, lanzar y terminar 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 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 detendrá los contenedores que ejecuten la versión anterior. Amazon ECS registra y anula el registro de contenedores automáticamente del Application Load Balancer asociado.

Amazon ECS recuperará automáticamente los contenedores con estado incorrecto para asegurarse de que disponga de la cantidad adecuada de contenedores para su aplicación.

Los proveedores de capacidad permiten definir reglas flexibles sobre cómo se ejecutan las cargas de trabajo en contenedores en diferentes tipos de capacidad informática y administrar el escalado de la capacidad. Los proveedores de capacidad trabajan con Amazon Elastic Compute Cloud (Amazon EC2) y AWS Fargate. Al ejecutar servicios y tareas, puede dividirlos en diferentes proveedores de capacidad, lo que habilita nuevas capacidades, como ejecutar un servicio en un porcentaje de división predefinido de la capacidad de Fargate y la de Fargate Spot.

Amazon Elastic Block Store (Amazon EBS) es un servicio de almacenamiento en bloques fácil de usar, escalable y de alto rendimiento que le permite aprovisionar almacenamiento rentable para sus implementaciones de Amazon ECS y AWS Fargate. Puede usar todas las configuraciones y capacidades de EBS con las cargas de trabajo de contenedores implementadas en Amazon ECS.

Amazon Elastic File System (Amazon EFS) es un sistema de archivos elásticos totalmente administrado, simple y escalable, que le permite crear aplicaciones modernas, conservar y compartir datos y estados desde sus implementaciones de Amazon ECS y AWS Fargate. Todos los aspectos de la utilización de Amazon EFS con contenedores, incluida la conectividad, están resueltos, sin necesidad de administración. Puede centrarse simplemente en sus aplicaciones, no en la infraestructura. Más información sobre el almacenamiento de archivos persistente.

Programación y ubicación de tareas

Amazon ECS incluye varias estrategias de programación que colocan los contenedores en clústeres en función de las necesidades de sus recursos (por ejemplo, CPU o RAM) y requisitos de disponibilidad. Con las estrategias de programación disponibles, puede programar tareas en lote, servicios y aplicaciones de ejecución prolongada, y procesos daemon.

La programación de tareas de Amazon ECS le permite ejecutar procesos que realizan un trabajo y luego se detienen, como las tareas de procesamiento en lote. La programación inicia las tareas de manera automática a partir de una cola de tareas o en función de un intervalo de tiempo que usted defina.

Más información sobre la programación de tareas de Amazon ECS »

La programación del servicio de Amazon ECS le permite ejecutar aplicaciones y servicios sin estado. Esta estrategia de programación garantiza que se ejecute constantemente un número específico de tareas y que estas se reinicien si tienen errores. Los clientes pueden asegurarse de que las tareas se registren en el balanceador de carga Elastic Load Balancing y pueden realizar comprobaciones de estado que los usuarios definan para las tareas en ejecución.

La programación daemon de Amazon ECS ejecuta automáticamente la misma tarea en cada instancia seleccionada en su clúster de ECS. Esto facilita la ejecución de tareas que proveen una funcionalidad de administración común para un servicio, como registro, monitoreo o backups.

Amazon ECS le permite a los usuarios personalizar la manera en la que se ubican las tareas en un clúster de instancias Amazon EC2 en función de atributos integrados, como el tipo de instancias, la zona de disponibilidad o los atributos personalizados definidos por el usuario. Utilice atributos como environment=production para etiquetar recursos, las acciones de la API list para encontrarlos y las acciones de las API RunTask y CreateService para programar tareas en ellos.

Con Amazon ECS, utilice estrategias de ubicación como empaquetamiento y distribución para definir con mayor precisión dónde se colocarán las tareas. Las políticas se pueden conectar para lograr capacidades de ubicación sofisticadas sin la necesidad de escribir código.

Redes

Amazon ECS Service Connect simplifica la detección de servicios, la conectividad y la observabilidad del tráfico para Amazon ECS. Service Connect lo ayuda a crear aplicaciones más rápidamente al permitirle concentrarse en el código de la aplicación en lugar de la infraestructura de redes. Puede usar Service Connect a fin de definir nombres lógicos para los puntos de conexión de los servicios y utilizar dichos nombres en las aplicaciones de los clientes para conectarse a las dependencias. ECS Service Connect envía el tráfico a los puntos de conexión que están en buen estado y proporciona una telemetría detallada del tráfico en la consola de ECS y en Amazon CloudWatch. Las implementaciones nativas de ECS son más sólidas con ECS Service Connect, ya que este es compatible con el drenaje de conexiones automático, que hace que las aplicaciones de clientes cambien a una nueva versión del punto de conexión del servicio sin experimentar errores de tráfico.

Con ECS Service Connect, puede hacer lo siguiente:

• Configurar la forma en la que las aplicaciones de cliente se conectan a las dependencias en tan solo un paso

•Escribir y operar aplicaciones distribuidas resilientes con nombres lógicos

• Supervise y distribuya el tráfico entre tareas de ECS sin implementar y configurar equilibradores de carga

• Implemente servicios más rápido y brinde integración absoluta de los microservicios de ECS que conforman una aplicación

Más información sobre la migración de los servicios de Amazon ECS existentes de detección de servicios a ECS Service Connect »

Amazon ECS está integrado con AWS Cloud Map para facilitar la detección y la conexión entre sus servicios en contenedores. AWS Cloud Map es un servicio de descubrimiento de recursos en la nube que le permite definir nombres personalizados para los recursos de su aplicación. Aumenta la disponibilidad de su aplicación porque el servicio web siempre detectará las ubicaciones más actualizadas de estos recursos que cambian de manera dinámica.

Más información sobre la migración de los servicios de Amazon ECS existentes de detección de servicios a ECS Service Connect »

Amazon ECS admite las redes de Docker y se integra con Amazon VPC para brindar aislamiento a contenedores. Esto le brinda control sobre la manera en la que los contenedores se conectan con otros servicios y con el tráfico externo. Con Amazon ECS, puede elegir entre cuatro modos de red para los contenedores que se adaptan a diferentes casos de uso:

Redes de tareas/awsvpc
Este modo asigna a cada tarea de ECS en ejecución una interfaz de red elástica exclusiva, lo que permite utilizar todas las características de red en una VPC, como las instancias EC2.

Puente
Este modo crea un puente de Linux que conecta todos los contenedores en ejecución en el host en una red virtual local, a la cual se puede obtener acceso mediante la conexión de red predeterminada del host.

Host
Este modo añade contenedores directamente a la pila de red del host, lo que expone los contenedores en la red del host sin aislamiento.

Ninguno
Este modo desactiva la red externa para contenedores.

Amazon ECS se integra con Elastic Load Balancing, lo que permite distribuir el tráfico en los contenedores con balanceadores de carga de aplicaciones o balanceadores de carga de redes. Debe especificar la definición de tarea y el balanceador de carga a utilizar y Amazon ECS agregará y quitará contenedores automáticamente del balanceador de carga. Especifique 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 EC2. Además, utilice el enrutamiento basado en rutas para compartir un equilibrador de carga con varios servicios.

Monitoreo y registro

Amazon ECS proporciona funciones de supervisión para los contenedores y clústeres mediante Amazon CloudWatch. Puede monitorear el uso promedio y total de la CPU y la memoria durante la ejecución de tareas según su agrupación por definición de tarea, servicio o clúster. Configure alarmas de CloudWatch que le avisen cuando sea necesario incrementar o reducir la capacidad de los contenedores o clústeres.

Amazon ECS le permite registrar todas las llamadas a la API de Amazon ECS y recibir los archivos de registro mediante AWS CloudTrail. La información registrada incluye la identidad del intermediario de la 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 suministra un historial de llamadas a la API realizadas desde la consola de administración, los SDK y la CLI de AWS. Permite realizar análisis de seguridad, controlar cambios a recursos y llevar adelante auditorías de conformidad.

AWS Config se integra con Amazon ECS para proporcionarle visibilidad de la configuración de los recursos de AWS en su cuenta de AWS. AWS Config le permite a los usuarios monitorear y hacer un seguimiento de cómo se configuraron los recursos, cómo se relacionan entre sí y cómo cambian las configuraciones y las relaciones con el tiempo. AWS Config le permite simplificar la conformidad y la seguridad, la resolución de problemas operativos y la administración de recursos.

Implementaciones híbridas

Puede usar Amazon ECS en AWS Outposts para ejecutar aplicaciones en contenedores que requieren latencias particularmente bajas para los sistemas locales. Outposts es un servicio totalmente administrado que extiende la infraestructura de AWS, los servicios de AWS, las API y las herramientas a prácticamente cualquier sitio conectado. Con Amazon ECS en Outposts, puede administrar contenedores locales con la misma facilidad que administra sus contenedores en la nube.

Con Amazon ECS Anywhere, puede usar la misma consola conocida de Amazon ECS y las herramientas del operador para administrar las cargas de trabajo en contenedores locales para una experiencia consistente en todas sus aplicaciones basadas en contenedores. La integración de AWS Systems Manager (SSM) establece automáticamente y de forma segura la confianza entre su hardware local y el plano de control de AWS.

Más información sobre Amazon ECS Anywhere »