Introducción a Amazon Elastic Container Service (ECS)

Amazon Elastic Container Service (ECS) , también conocido como Amazon EC-2 Container Service, es un servicio administrado que permite a los usuarios ejecutar aplicaciones basadas en Docker empaquetadas como contenedores en un clúster de instancias EC2. Ejecutar contenedores simples en una sola instancia EC-2 es simple, pero ejecutar estas aplicaciones en un clúster de instancias y administrar el clúster es un proceso administrativo pesado. Con ECS, el tipo de lanzamiento de Fargate, la carga y la responsabilidad de administrar el clúster de EC2 se transfieren a AWS y puede concentrarse en el desarrollo de aplicaciones en lugar de en la administración de la arquitectura de su clúster.

AWS Fargate es el servicio de AWS que permite a ECS ejecutar contenedores sin tener que administrar ni aprovisionar los recursos necesarios para ejecutar estas aplicaciones.

Terminología:

  • Contenedor: un contenedor es un paquete que contiene una aplicación y todo (dependencias, bibliotecas, etc.) que la aplicación requiere para ejecutarse. Los contenedores son independientes del sistema operativo subyacente y, por lo tanto, las aplicaciones de contenedores son bastante portátiles, flexibles y escalables. Esto garantiza que la aplicación se ejecutará siempre como se espera, independientemente del sistema y el entorno en el que se ejecute un contenedor.
  • Docker: Docker es un software que facilita y automatiza la instalación y el despliegue de aplicaciones dentro de contenedores Linux.
  • Clúster: un grupo lógico de instancias EC2 que se ejecutan como una sola aplicación.
  • Instancia de contenedor: cada EC2 en un clúster de ECS se denomina instancia de contenedor.

Escalado automático con ECS:

El ajuste de escala automático es un servicio informático de AWS que permite que su aplicación se escale hacia arriba o hacia abajo según el uso de CPU de la instancia EC2 o algún otro criterio (políticas de ajuste de escala automático) establecido por el usuario. Por ejemplo: para una aplicación web, puede establecer una política de escalado automático como, cuando el uso de la CPU supere el 80 % durante 5 minutos, agregue otra instancia EC2 con las mismas configuraciones. Esto agregará otra instancia detrás de ELB y permitirá requests divididas en 2 instancias EC2 ahora. Anteriormente, la función de ajuste de escala automático solo se proporcionaba con el servicio AWS EC2; en el año 2016, también comenzó a ser compatible con los clústeres de ECS.

  • El ajuste de escala automático para los clústeres de ECS también se puede configurar desde AWS-CLI, AWS-Console y AWS SDK.
  • Puede elegir la cantidad de tareas de inicio para la aplicación, adjuntar una o más políticas al grupo de ajuste de escala automático y AWS se encarga del resto.
  • El ajuste de escala automático para ECS también administra la presencia Multi-AZ de su clúster de ECS. Es decir, puede adjuntar políticas para tener un mínimo de una o más instancias en cada zona de disponibilidad para que su aplicación tenga una alta disponibilidad.

Características de ECS:

  • Elimina la necesidad de que los usuarios administren su propio sistema de administración de clústeres al interactuar con AWS Fargate.
  • Permite la implementación perfecta de aplicaciones basadas en contenedores. Esto se puede programar o realizar mediante simples llamadas a la API.
  • AWS ECS se encarga de la administración y el monitoreo del clúster de aplicaciones.
  • Amazon ECS es específico de la región. Esto significa que un clúster solo puede escalar hacia arriba o hacia abajo (iniciar o cerrar instancias de contenedor) en una sola región.
  • Los clústeres son dinámicamente escalables.

Tipos de lanzamiento: ECS se puede lanzar en dos modos siguientes:

  1. Lanzamiento de Fargate: como se discutió anteriormente, el tipo de lanzamiento de Fargate asume la mayor parte de la responsabilidad de los usuarios y toma solo las entradas básicas como el tipo de CPU, la memoria y las políticas de IAM del usuario para ejecutar el clúster de aplicaciones.
  2. Lanzamiento de EC2: este es un tipo de lanzamiento más personalizable. Los usuarios son responsables de la cantidad de instancias en el clúster, escalar su clúster y más. Esto le permite tener un mayor control de sus clústeres, lo que puede ser necesario por razones de seguridad.

Independientemente del tipo de lanzamiento, AWS Cloudwatch está habilitado para ECS y se puede usar para monitorear o crear alarmas y eventos según sea necesario.

Lista de comandos disponibles:

AWS proporciona un conjunto de comandos que se pueden ejecutar en AWS-CLI (AWS Command Line Interface) para administrar sus servicios. Al igual que lo haría desde su consola de AWS. A continuación se muestra una lista de comandos que se pueden utilizar para administrar el servicio AWS ECS.

  • create-capacity-provider:  se utiliza para crear un nuevo proveedor de capacidad. Los proveedores de capacidad se componen de un nombre, un grupo de Auto Scaling junto con configuraciones de terminación y escalado.
  • create-cluster: crea un nuevo clúster de AWS ECS.
  • create-service: ejecuta y mantiene una cantidad deseada de tareas según lo especificado por la definición de tarea dada.
  • create-task-set: crea un conjunto de tareas en un clúster o servicio de AWS ECS.
  • delete-account-setting: deshabilita una configuración de cuenta para un usuario o rol de IAM o el usuario raíz de la cuenta.
  • delete-attributes: elimina uno o más atributos personalizados del clúster de ECS.
  • delete-cluster: elimina un clúster especificado completo.
  • delete-service: elimina el servicio especificado.
  • delete-task-set: elimina el conjunto de tareas especificado.
  • deployment: implementa una nueva definición de tarea en el servicio de ECS especificado.
  • deregister-container-instance: anula el registro de la instancia de contenedor especificada de su clúster de ECS.
  • deregister-task-definition: Anule el registro de una definición de tarea del servicio ECS.
  • describe-capacity-providers: Describe uno o más proveedores de capacidad.
  • describe-clusters: describe uno o más clústeres de ECS.
  • describe-container-instances: describe instancias de contenedor de ECS. Proporciona metadatos sobre los recursos restantes en cada una de estas instancias.
  • describe-services: describe los servicios que se ejecutan en el clúster especificado.
  • describe-task-definition: Describe la definición de la tarea.
  • describe-task-sets: Describe los conjuntos de tareas del servicio o clúster de ECS especificado.
  • describe-tasks: Describe la(s) tarea(s) especificada(s).
  • discovery-poll-endpoint: proporciona el punto de enlace del agente de AWS ECS para sondear las actualizaciones.
  • list-account-settings: proporciona la configuración de la cuenta para el principal especificado.
  • list-attributes: Atributos de lista para el recurso de ECS especificado.
  • list-clusters: proporciona una lista de los clústeres existentes.
  • list-container-instances: proporciona una lista de instancias de contenedor en el clúster especificado.
  • list-services: proporciona una lista de los servicios que se ejecutan en el clúster especificado.
  • list-tags-for-resource: proporciona etiquetas asociadas con el recurso especificado.
  • list-task-definition-families: enumera todas las familias de definiciones de tareas registradas en su cuenta.
  • list-task-definitions: enumera las definiciones de tareas registradas en su cuenta.
  • list-tasks: proporciona tareas que se ejecutan en el clúster especificado.
  • put-account-setting: se utiliza para modificar la configuración de la cuenta para los usuarios de IAM, las funciones o el usuario raíz.
  • put-account-setting-default: se utiliza para modificar una configuración de cuenta para todos los usuarios de IAM en una cuenta para la que no se ha especificado una configuración de cuenta individual.
  • put-attributes: atributo de creación/actualización para el recurso de ECS especificado.
  • put-cluster-capacity-providers: modifica los proveedores de capacidad para un clúster.
  • register-container-instance: registra la instancia del contenedor en el clúster especificado.
  • register-task-definition: registra la definición de tarea de las definiciones de familia y contenedor especificadas.
  • run-task: inicia una nueva tarea a partir de una definición de tarea.
  • start-task: inicia una nueva tarea a partir de la definición de la tarea en la instancia o instancias del contenedor especificado.
  • stop-task:   Detener la tarea especificada. (Tenga en cuenta que se eliminan todas las etiquetas asociadas con la tarea).
  • submit-attachment-state-changes: Enviado para reconocer que un contenedor cambió de estado.
  • enviar-contenedor-estado-cambio: Enviado para reconocer que un archivo adjunto cambió de estado.
  • enviar-tarea-estado-cambio: Enviado para reconocer que una tarea cambió de estado.
  • tag-resource:   agrega etiquetas específicas al recurso cuyo RN se proporciona.
  • untag-resource: elimina las etiquetas especificadas de un recurso.
  • update-cluster-settings: modifica la configuración del clúster.
  • update-container-agent: actualiza el agente de contenedor de Amazon ECS en una instancia de contenedor especificada.
  • update-container-instances-state: modifica el estado de una instancia de contenedor de Amazon ECS.
  • update-service: Modifica los parámetros de un servicio.
  • update-service-primary-task-set: modifica qué conjunto de tareas en un servicio es el conjunto de tareas principal. Cualquier parámetro que se actualice en el conjunto de tareas principal en un servicio pasará al servicio.
  • update-task-set: modifica un conjunto de tareas.
  • esperar: esperar hasta que se cumpla una determinada condición. Cada subcomando sondea una API hasta que se cumple el requisito enumerado.

Publicación traducida automáticamente

Artículo escrito por codinggeek91 y traducido por Barcelona Geeks. The original can be accessed here. Licence: CCBY-SA

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *