¿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 administración de contenedores muy escalable y rápido que facilita la ejecución, detención y administración de contenedores en un clúster. Los contenedores se definen en una definición de tarea que se utiliza para ejecutar tareas individuales o tareas dentro de un servicio. En este contexto, un servicio es una configuración que le permite ejecutar y mantener un número especificado de tareas simultáneamente en un clúster. Puede ejecutar sus tareas y servicios en una infraestructura sin servidor administrada por AWS Fargate. De forma alternativa, para obtener más control sobre su infraestructura, puede ejecutar sus tareas y servicios en un clúster de instancias Amazon EC2 que administre.

Amazon ECS le permite lanzar y detener sus aplicaciones basadas en contenedores utilizando llamadas a la API sencillas. También puede recuperar el estado del clúster desde un servicio centralizado y tener acceso a muchas características familiares de Amazon EC2.

Puede programar la colocación de sus contenedores en su clúster en función de sus necesidades de recursos, políticas de aislamiento y requisitos de disponibilidad. Con Amazon ECS, no tiene que utilizar sus propios sistemas de administración de clústeres y administración de configuración ni preocuparse por el escalado de su infraestructura de administración.

El Amazon ECS se puede utilizar para crear una experiencia de compilación e implementación coherente, para administrar y escalar lotes y cargas de trabajo de Extracción, transformación y carga (ETL), y para crear arquitecturas de aplicaciones sofisticadas en un modelo de microservicios. Para obtener más información acerca de los casos de uso y situaciones de Amazon ECS, consulte Casos de uso de contenedor.

El equipo de servicios de contenedores de AWS mantiene una hoja de ruta pública en GitHub. La hoja de ruta contiene información sobre en qué están trabajando los equipos y permite a los clientes de AWS proporcionar comentarios directos. Para obtener más información, consulte Guía de contenedores de AWS.

Características de Amazon ECS

Amazon ECS es un servicio regional que simplifica la ejecución de contenedores con alta disponibilidad en varias zonas de disponibilidad dentro de una región. Puede crear clústeres de Amazon ECS dentro de una VPC nueva o existente. Una vez que un clúster está en funcionamiento, puede crear definiciones de tareas que definen qué imágenes de contenedor se ejecutan en los clústeres. Las definiciones de tareas se utilizan para ejecutar tareas o crear servicios. Las imágenes de contenedor se almacenan y se extraen desde registros de contenedor, por ejemplo, el Amazon EC2 Container Registry.

En el siguiente diagrama se muestra la arquitectura de un entorno de Amazon ECS que se ejecuta en AWS Fargate.


                Diagrama que muestra la arquitectura de un entorno de Amazon ECS que usa el tipo de lanzamiento Fargate.

Las siguientes secciones profundizan en detalle en estos elementos individuales de la arquitectura de Amazon ECS

Contenedores e imágenes

Para implementar aplicaciones en Amazon ECS, los componentes de la aplicación se deben diseñar para ejecutarse en contenedores. Un contenedor es una unidad estandarizada de desarrollo de software que contiene todo lo que necesita su aplicación de software para ejecutarse, incluido el código relevante, el tiempo de ejecución, las herramientas del sistema y las bibliotecas del sistema. 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, que es un archivo de texto no cifrado que especifica todos los componentes que se incluyen en el contenedor. Después de la compilación, estas imágenes se almacenan en un registro en el que se pueden descargar y ejecutar en el clúster. Para obtener más información sobre la tecnología de contenedor, consulte Conceptos básicos de Docker para Amazon ECS.


                    Diagrama que muestra la creación y el registro de imágenes de Docker en un entorno de Amazon ECS.

Definiciones de tareas

Con el fin de preparar la aplicación para que se ejecute en Amazon ECS, debe crear una definición de tarea. La definición de tarea es un archivo de texto (en formato JSON) que describe uno o varios contenedores (hasta un máximo de diez) que forman la aplicación. La definición de tarea se puede considerar un plan para su aplicación. Especifica varios parámetros para su aplicación. Por ejemplo, estos parámetros se pueden utilizar para indicar qué contenedores deben utilizarse, qué puertos deben abrirse para su aplicación y qué volúmenes de datos deben utilizarse con los contenedores en la tarea. Los parámetros específicos disponibles para la definición de tarea dependen de las necesidades de la aplicación específica. Para obtener más información sobre la creación de definiciones de tareas, consulte Amazon ECSDefiniciones de tareas de .

El siguiente es un ejemplo de una definición de tarea que especifica el uso de Fargate para lanzar un único contenedor que ejecuta un servidor web NGINX. Para un ejemplo más amplio que muestra el uso de varios contenedores en una definición de tarea, consulte Ejemplos de definiciones de tarea.

{ "family": "webserver", "containerDefinitions": [ { "name": "web", "image": "nginx", "memory": "100", "cpu": "99" }, ], "requiresCompatibilities": [ "FARGATE" ], "networkMode": "awsvpc", "memory": "512", "cpu": "256", }

Tareas y programación

Una tarea es la instancia creada de una definición de tarea dentro de un clúster. Una vez que haya creado una definición de tareas para su aplicación en Amazon ECS, puede especificar el número de tareas que se ejecutarán en su clúster.

El programador de tareas de Amazon ECS es responsable de colocar tareas dentro del clúster. Dispone de varias opciones de programación diferentes. Por ejemplo, puede definir un servicio que ejecuta y mantiene un número especificado de tareas simultáneamente. Para obtener más información sobre las distintas opciones de programación disponibles, consulte Programación Amazon ECS de tareas.


                    Diagrama que muestra la programación y ubicación de tareas dentro de un entorno de Amazon ECS mediante el tipo de lanzamiento Fargate.

Clusters

Un Amazon ECSclúster de es una agrupación lógica de tareas o servicios. Puede registrar una o varias instancias Amazon EC2 (también denominadas instancias de contenedor) en su clúster para ejecutar tareas en ellas. O bien, puede utilizar la infraestructura sin servidor que proporciona Fargate para ejecutar tareas. Cuando las tareas se ejecutan en Fargate, Fargate también administra los recursos del clúster.

La primera vez que se utiliza Amazon ECS, se crea un clúster predeterminado. Puede crear clústeres de adicionales en una cuenta de para mantener sus recursos de separados.

Para obtener más información sobre la creación de clústeres, consulte Amazon ECSClústeres de . Para obtener más información sobre cómo lanzar instancias de contenedor y registrarlas con sus clústeres, consulte Amazon ECSInstancias de contenedor de .

Agente de contenedores

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 sobre el uso de recursos y las tareas en ejecución actuales del recurso a Amazon ECS. Se inician y detienen tareas siempre que se recibe una solicitud de Amazon ECS. Para obtener más información, consulte Amazon ECS Agente de contenedor de.


                    Diagrama que muestra tareas del agente de contenedor dentro de un entorno de Amazon ECS.

Introducción a Amazon ECS

Para obtener más información sobre las herramientas para desarrolladores disponibles para utilizar Amazon ECS, consulte Información general sobre herramientas para desarrolladores deAmazon ECS.

Si está utilizando Amazon ECS por primera vez, la Consola de administración de AWS para Amazon ECS proporciona un asistente de primera ejecución que le guía durante el proceso de definición de tareas para un servidor web, la configuración de un servicio y el lanzamiento del primer clúster de Fargate Recomendamos encarecidamente que utilice el asistente de primera ejecución si tiene poca o ninguna experiencia previa con Amazon ECS. Para obtener más información, consulte el tutorial Introducción al uso de Amazon ECS con Fargate

Como opción, puede instalar la AWS Command Line Interface (AWS CLI) para utilizar Amazon ECS. Para obtener más información, consulte Configuración con Amazon ECS.

Amazon ECS se puede utilizar junto con los servicios de AWS siguientes:

AWS Identity and Access Management

IAM (Identity and Access Management) es un servicio de administración de acceso que le ayuda a controlar de forma segura el acceso a los recursos de AWS. Puede utilizar IAM para controlar quién está autenticado (ha iniciado sesión) y autorizado (tiene permisos) para ver o realizar acciones específicas en recursos. En Amazon ECS, puede utilizar IAM para controlar el acceso en el nivel de instancia de contenedor utilizando roles de IAM y en el nivel de tarea utilizando roles de tarea de IAM. Para obtener más información, consulte Administración de identidad y acceso para Amazon Elastic Container Service.

Amazon EC2 Auto Scaling

Auto Scaling es un servicio que le permite escalar automáticamente las tareas de forma ascendente o descendente en función de políticas definidas por el usuario, comprobaciones del estado de salud y programas. Puede utilizar Auto Scaling con una tarea de Fargate dentro de un servicio para modificar la escala en respuesta a una serie de métricas, o bien con una tarea de EC2 para modificar la escala de las instancias de contenedor dentro del clúster. Para obtener más información, consulte Auto Scaling de servicios.

Elastic Load Balancing

El servicio Elastic Load Balancing distribuye automáticamente el tráfico entrante de las aplicaciones entre las tareas del servicio Amazon ECS. Esto le permite conseguir mayores niveles de tolerancia a errores en sus aplicaciones, al proporcionar la capacidad de equilibrio de carga necesaria para distribuir el tráfico de las aplicaciones de forma transparente. Puede utilizar Elastic Load Balancing para crear un punto de enlace que balancee el tráfico entre servicios en un clúster. Para obtener más información, consulte Balanceo de carga de servicios.

Amazon EC2 Container Registry

Amazon ECR es un servicio de registro de Docker de AWS administrado seguro, escalable y fiable. Amazon ECR admite repositorios privados de Docker con permisos de nivel de recurso que utilicen de IAM, de forma que instancias de o usuarios concretos puedan acceder a los repositorios y a las imágenes. Los desarrolladores pueden utilizar la CLI de Docker para diseñar, insertar, extraer y administrar imágenes. Para obtener más información, consulte Guía del usuario de Amazon EC2 Container Registry.

AWS CloudFormation

AWS CloudFormation ofrece a los desarrolladores y administradores de sistemas una forma sencilla de crear y administrar una colección de recursos de AWS relacionados. Concretamente, hace que el aprovisionamiento de recursos y la actualización sean más ordenados y predecibles. Puede definir clústeres, definiciones de tareas y servicios como entidades en un script de AWS CloudFormation Para obtener más información, consulte la Plantilla de referencia de AWS CloudFormation.

Pricing

El precio de Amazon ECS depende de si usa la infraestructura de AWS Fargate o Amazon EC2 para alojar sus cargas de trabajo en contenedores. Al utilizar Amazon ECS en AWS Outposts, los precios siguen el mismo modelo que cuando se utiliza Amazon EC2. Para obtener más información, consulte Precios de Amazon ECS.

y Amazon ECS también ofrecen Fargate, que proporcionan un ahorro importante en función del uso que haga de Savings Plans.AWS Para obtener más información, consulte la Guía del usuario de Savings Plans.

Para ver su factura, vaya al Panel de gestión de facturación y costos en la consola de AWS Billing and Cost Management. La factura contiene enlaces a informes de uso que proporcionan detalles adicionales sobre la factura. Para obtener más información acerca de la facturación de las cuentas de AWS, consulte Facturación de cuentas de AWS.

Si tiene alguna pregunta sobre los eventos, las cuentas y la facturación de AWS, póngase en contacto con AWS Support.

Para obtener información general de Trusted Advisor, un servicio que ayuda a optimizar los costos, la seguridad y el rendimiento del entorno de AWS, consulte AWS Trusted Advisor.