en Amazon Elastic Container Service (Amazon ECS)

Amazon Elastic Container Service (Amazon ECS) es el servicio de Amazon Web Services que se utiliza para ejecutar aplicaciones de Docker en un clúster escalable. En este tutorial, aprenderá cómo ejecutar una aplicación de muestra compatible con Docker en un clúster de Amazon ECS tras un balanceador de carga, probará la aplicación de muestra y eliminará los recursos para evitar cargos.

Todas las operaciones que se explican en este tutorial pueden realizarse con la capa gratuita.

Administración de los recursos de AWS

Inicio de sesión en la consola

El asistente de primera ejecución de Amazon ECS lo guiará a través de la creación de un clúster y el lanzamiento de una aplicación web de muestra. En este paso, accederá a la consola de Amazon ECS y lanzará el asistente.



b. Con Amazon ECS, tiene la opción de usar Amazon Elastic Container Registry (Amazon ECR) para crear un repositorio de imágenes y enviar una imagen a este como parte del asistente de primera ejecución (consulte la imagen de la derecha). En la actualidad, esta característica se encuentra disponible en regiones determinadas. 

  • Si no aparece ninguna opción de Amazon ECR, vaya al paso 2.
  • Si aparecen opciones de Amazon ECR, desmarque la casilla situada junto a Implementar una aplicación de muestra en un clúster de Amazon ECS y seleccione Continuar.
deploy-docker-container-1

(Haga clic para ampliar).

deploy-docker-container-1

Una definición de tarea es una especie de plano de la aplicación. En este paso, especificará una definición de tarea de modo que Amazon ECS sepa qué imagen de Docker debería usar para los contenedores, cuántos contenedores utilizar como parte de la tarea y la asignación de recursos de cada contenedor.


La definición de tarea incorpora valores de configuración predeterminados.

  • Examine los valores predeterminados y seleccione Paso siguiente.

Si prefiere modificar la configuración o desea obtener más información, consulte Parámetros de definición de tarea.

deploy-docker-container-2

(Haga clic para ampliar).

deploy-docker-container-2

Ahora que ha creado una definición de tarea, configurará el servicio ECS de Amazon. Se lanza un servicio que mantiene copias de la definición de tarea en su clúster. Por ejemplo, cuando se ejecuta una aplicación como servicio, Amazon ECS recupera automáticamente cualquier tarea que se haya detenido y mantiene el número de copias que se especifique.


a. Configure las opciones del servicio:

  • Nombre del servicio: el nombre predeterminado sample-webapp corresponde a una aplicación “Hello World” basada en web proporcionada por AWS. Está diseñada para ejecutarse indefinidamente, de modo que, si se ejecuta como servicio, se reiniciará si la tarea llega a encontrarse en mal estado o se detiene de forma inesperada.
  • Cantidad deseada de tareas: para permanecer en la capa gratuita de AWS, conserve el valor predeterminado 1. Se creará una copia de la tarea.
deploy-docker-container-3

(Haga clic para ampliar).

deploy-docker-container-3

b. Elastic Load Balancing: puede utilizar un balanceador de carga con su servicio. Amazon ECS puede crear un balanceador de carga de Elastic Load Balancing (ELB) para distribuir el tráfico entre las instancias de contenedor en las que se lance la tarea.

  • Nombre del contenedor: puerto del host: seleccione Simple-app:80.
  • Para la aplicación de muestra, se establecen los valores predeterminados de Protocolo de agente de escucha de ELB, Puerto de agente de escucha de ELB y Comprobación de estado de ELB. Para obtener más información sobre la configuración del balanceo de carga, consulte Balanceo de carga del servicio.
deploy-docker-container-3b

(Haga clic para ampliar).

deploy-docker-container-3b

c. Antes de asociar un balanceador de carga a un servicio ECS de Amazon, debe crear un rol de Identity and Access Management (IAM) para que lo usen sus servicios. Eso permitirá a Amazon ECS realizar llamadas a las API de Amazon EC2 y Elastic Load Balancing para registrar y anular el registro de instancias con sus balanceadores de carga.

  • Si no tiene ya un rol de IAM de servicio, Amazon ECS creará uno denominado ecsServiceRole.
  • Si ya dispone de un rol de servicio ECS de Amazon, selecciónelo en el menú desplegable.
deploy-docker-container-3c

(Haga clic para ampliar).

deploy-docker-container-3c

d. Revise la configuración y seleccione Paso siguiente.

deploy-docker-container-3d

(Haga clic para ampliar).

deploy-docker-container-3d

Sus tareas de Amazon ECS se ejecutan en un clúster, que es el conjunto de instancias de contenedor que ejecutan el agente de contenedores de Amazon ECSEn este paso, configurará el clúster, revisará la configuración de seguridad y establecerá los roles de IAM. 


a. Utilice los ajustes de configuración que se indican a continuación:

  • Nombre del clúster: escriba sample-cluster.
  • Tipo de instancia EC2: el tipo de instancia predeterminado t2.micro permite permanecer en la capa gratuita. Los tipos de instancias con más recursos de CPU y memoria pueden gestionar más tareas. Para obtener más información sobre los distintos tipos de instancias, consulte Tipos de instancias de Amazon EC2.
  • Número de instancias: conserve el valor predeterminado 1 para lanzar una instancia de Amazon EC2 en su clúster a fin de colocar las tareas en ella. Cuantas más instancias tenga en el clúster, más tareas podrá colocar.  
  • Par de claves: se necesita un par de claves para usar SSH posteriormente en las instancias. Para continuar, seleccione Ninguno, sin SSH, seleccione un par de claves existente o cree uno en la consola de Amazon EC2. 
deploy-docker-container-5a

(Haga clic para ampliar).

deploy-docker-container-5a

b. (Opcional) Grupo de seguridad: el valor predeterminado (Cualquier parte) permite el acceso desde cualquier parte de Internet. También puede elegir un bloque de CIDR que restrinja el acceso a sus instancias.

deploy-docker-container-5b

(Haga clic para ampliar).

deploy-docker-container-5b

c. Rol de IAM de la instancia de contenedor:

  • Si no tiene un rol de IAM, el asistente de Amazon ECS creará uno.
  • Si ya posee un rol de IAM de instancia de contenedor, selecciónelo en la lista desplegable.
deploy-docker-container-5c

(Haga clic para ampliar).

deploy-docker-container-5c

d. Seleccione Revisar y lanzar.

deploy-docker-container-5d

(Haga clic para ampliar).

deploy-docker-container-5d

En los pasos anteriores, configuró la definición de la tarea (que es similar al plano de la aplicación), el servicio ECS de Amazon (que lanza y mantiene copias de la definición de tarea) y el clúster (que es el conjunto de instancias de contenedor que ejecuta el agente de contenedores). En este paso, revisará, lanzará y verá los recursos creados.


a. Tendrá una última oportunidad de revisar la definición de la tarea, la configuración de la tarea y las configuraciones de clúster antes del lanzamiento.

  • Seleccione Lanzar instancia y ejecutar servicio
deploy-docker-container-6

(Haga clic para ampliar).

deploy-docker-container-6

b. Se encuentra en la página Estado de lanzamiento, que muestra el estado del lanzamiento y describe cada paso del proceso. 

  • Cuando finalice el lanzamiento, seleccione Ver servicio.
deploy-docker-container-7

(Haga clic para ampliar).

deploy-docker-container-7

En este paso, comprobará que la aplicación de muestra está activa dirigiendo su navegador al nombre de DNS del balanceador de carga.


a. En la página sample-webapp, haga clic en el nombre de su balanceador de carga.

deploy-docker-container-10

(Haga clic para ampliar).

deploy-docker-container-10

b. Ahora probará la aplicación de muestra:

  • Copie el nombre de DNS de ELB.
  • Péguelo en una nueva ventana del navegador.
  • Pulse Intro en el teclado para ver la aplicación de muestra (en este caso, un sitio web estático).
deploy-docker-container-12a

(Haga clic para ampliar).

deploy-docker-container-12a

A lo largo de este tutorial, lanzó tres recursos: un clúster de Amazon ECS, una instancia de Amazon EC2 y un balanceador de carga. En este paso, limpiará todos sus recursos para evitar cargos no deseados.


a. Vuelva a la página de la consola de Amazon ECS. 

  • Haga clic en el nombre del clúster (sample-cluster).
deploy-docker-container-13

(Haga clic para ampliar).

deploy-docker-container-13

b. Seleccione la casilla de verificación situada junto a sample-webapp y haga clic en Actualizar.

deploy-docker-container-15

(Haga clic para ampliar).

deploy-docker-container-15

c. Para asegurarse de no eliminar inadvertidamente un servicio que tenga tareas activas, deberá detener todas las tareas antes de que Amazon ECS elimine un servicio. 

  • Establezca el número de tareas en 0 y seleccione Actualizar servicio.
  • Después de actualizar el servicio, seleccione Eliminar.
deploy-docker-container-14

(Haga clic para ampliar).

deploy-docker-container-14

d. Elimine las instancias de Amazon EC2 que lanzó con el clúster:

  • Acceda a la consola de Amazon EC2.
  • En el panel de la izquierda, seleccione Instancias.
  • Seleccione la casilla de verificación situada junto a la instancia llamada ECS Instance - EC2ContainerService-default.
  • Seleccione Acciones > Estado de instancia > Terminar.

 

 

deploy-docker-container-17

(Haga clic para ampliar).

deploy-docker-container-17

e. Elimine los balanceadores de carga:

  • En el panel de la izquierda, seleccione Balanceadores de carga.
  • Seleccione la casilla de verificación situada junto al balanceador de carga creado para su servicio (debería comenzar por EC2Contai-EcsElast). 
  • Haga clic con el botón derecho del ratón y seleccione Eliminar.

 

deploy-docker-container-19a

(Haga clic para ampliar).

deploy-docker-container-19a

¡Felicitaciones! Aprendió a configurar, implementar y eliminar una aplicación compatible con Docker en Amazon Elastic Container Service (Amazon ECS). Amazon ECS es un servicio de administración de contenedores de alto rendimiento y alta escalabilidad compatible con los contenedores de Docker que permite ejecutar fácilmente aplicaciones en un clúster administrado de instancias de Amazon EC2.

Ahora que ha aprendido a implementar una aplicación compatible con Docker en Amazon ECS, puede pasar al siguiente tutorial, en el que aprenderá cómo crear un registro de Docker para almacenar sus imágenes de contenedor. Creará una imagen de Docker, la enviará a un repositorio y la utilizará para implementar una aplicación en Amazon ECS.

Crear un registro de Docker

No