Uso de contenedores de Windows en AWS Fargate - Amazon Elastic Container Service

Uso de contenedores de Windows en AWS Fargate

Introducción a Amazon ECS en AWS Fargate con el tipo de lanzamiento de Fargate para las tareas en las regiones donde Amazon ECS admite a AWS Fargate.

Para comenzar a utilizar Amazon ECS en AWS Fargate, siga estos pasos.

Requisitos previos

Antes de comenzar, complete los pasos en Configuración para utilizar Amazon ECS y corrobore que su usuario de AWS disponga de los permisos que se especifican en la política de IAM de ejemplo AdministratorAccess.

La consola intenta crear automáticamente el rol de IAM de ejecución de tareas, que se requiere para las tareas de Fargate. Para asegurarse de que la consola pueda crear este rol de IAM, una de las siguientes condiciones debe ser verdadera:

importante

El grupo de seguridad que seleccione al crear un servicio con su definición de tareas debe tener el puerto 80 abierto para el tráfico entrante. Agregue las siguientes reglas de entrada al grupo de seguridad. Para obtener más información sobre cómo crear un grupo de seguridad, consulte Agregar reglas a un grupo de seguridad en la Guía del usuario de Amazon EC2 para instancias de Linux.

  • Tipo: HTTP

  • Protocolo: TCP

  • Intervalo de puertos: 80

  • Source (Origen): Anywhere (Cualquiera) (0.0.0.0/0)

Paso 1: creación de un clúster

Puede crear un nuevo clúster denominado Windows que utilice la VPC predeterminada.

Para crear un clúster con la AWS Management Console
  1. Abra la consola en https://console.aws.amazon.com/ecs/v2.

  2. En la barra de navegación, seleccione la región a utilizar.

  3. En el panel de navegación, seleccione Clusters (Clústeres).

  4. En la página Clusters (Clústeres), elija Create Cluster (Crear clúster).

  5. En Cluster configuration (Configuración de clúster), para Cluster name (Nombre del clúster), ingrese windows.

  6. (Opcional) Para activar Container Insights, expanda Monitoring (Supervisión) y, a continuación, active Use Container Insights (Uso de Container Insights).

  7. (Opcional) Para ayudar a identificar el clúster, expanda Tags (Etiquetas) y, a continuación, configure sus etiquetas.

    [Añadir una etiqueta] Elija Add tag (Añadir etiqueta) y haga lo siguiente:

    • En Key (Clave), escriba el nombre de la clave.

    • En Valor, escriba el valor de la clave.

    [Eliminar una etiqueta] Elija Eliminar a la derecha de la clave y el valor de la etiqueta.

  8. Seleccione Crear.

Paso 2: Registrar una definición de tareas de Windows

Antes de poder ejecutar los contenedores de Windows en el clúster de Amazon ECS, debe registrar una definición de tarea. El siguiente ejemplo de definición de tareas muestra una página web sencilla en el puerto 8080 de una instancia de contenedor con la imagen de contenedor mcr.microsoft.com/windows/servercore/iis.

Para registrar la definición de tarea de muestra con la AWS Management Console
  1. En el panel de navegación, elija Task Definitions (Definiciones de tareas).

  2. Elija Create new task definition (Crear nueva definición de tarea) y Create new task definition with JSON (Crear nueva definición de tarea con JSON).

  3. Copie y pegue la siguiente definición de tarea de ejemplo en el cuadro y, a continuación, elija Save (Guardar).

    { "containerDefinitions": [ { "command": ["New-Item -Path C:\\inetpub\\wwwroot\\index.html -Type file -Value '<html> <head> <title>Amazon ECS Sample App</title> <style>body {margin-top: 40px; background-color: #333;} </style> </head><body> <div style=color:white;text-align:center> <h1>Amazon ECS Sample App</h1> <h2>Congratulations!</h2> <p>Your application is now running on a container in Amazon ECS.</p>'; C:\\ServiceMonitor.exe w3svc"], "entryPoint": [ "powershell", "-Command" ], "essential": true, "cpu": 2048, "memory": 4096, "image": "mcr.microsoft.com/windows/servercore/iis:windowsservercore-ltsc2019", "name": "sample_windows_app", "portMappings": [ { "hostPort": 80, "containerPort": 80, "protocol": "tcp" } ] } ], "memory": "4096", "cpu": "2048", "networkMode": "awsvpc", "family": "windows-simple-iis-2019-core", "executionRoleArn": "arn:aws:iam::012345678910:role/ecsTaskExecutionRole", "runtimePlatform": {"operatingSystemFamily": "WINDOWS_SERVER_2019_CORE"}, "requiresCompatibilities": ["FARGATE"] }
  4. Verifique su información y seleccione Create (Crear).

Paso 3: Crear un servicio con la definición de tarea

Después de haber registrado la definición de tarea, puede colocar tareas en el clúster con ella. El procedimiento siguiente crea un servicio con su definición de tarea y coloca una tarea en el clúster.

Para crear un servicio a partir de la definición de tarea con la consola
  1. En el panel de navegación, elija Clusters (Clústeres) y, a continuación, seleccione el clúster que creó en Paso 1: creación de un clúster.

  2. En la pestaña Services (Servicios), elija Create (Crear).

  3. En Deployment configuration (Configuración de implementación), especifique cómo se implementa su aplicación.

    1. En Task definition (Definición de tarea), elija la definición de tarea que creó en Paso 2: Registrar una definición de tareas de Windows.

    2. En Service name (Nombre del servicio), ingrese un nombre para el servicio.

    3. En Desired tasks (Tareas deseadas), ingrese 1.

  4. En Redes, puede crear un grupo de seguridad o elegir uno existente. Asegúrese de que el grupo de seguridad que utilice tenga la regla de entrada que se indica en Requisitos previos.

  5. Seleccione Crear.

Paso 4: Ver el servicio

Después de que el servicio haya lanzado una tarea en el clúster, puede ver el servicio y abrir la página de prueba de IIS en un navegador para verificar que el contenedor se está ejecutando.

nota

La instancia de contenedor puede tardar hasta 15 minutos en descargarse y extraer las capas de base de contenedor de Windows.

Para ver el servicio
  1. Abra la consola en https://console.aws.amazon.com/ecs/v2.

  2. En el panel de navegación, seleccione Clusters (Clústeres).

  3. Elija el clúster en el que ejecutó el servicio.

  4. En la pestaña Servicios, en Nombre del servicio, elija el servicio que creó en Paso 3: Crear un servicio con la definición de tarea.

  5. Seleccione la pestaña Tareas y, a continuación, elija la tarea de su servicio.

  6. En la página de tareas, en la sección Configuración, en IP pública, elija Dirección abierta.

Paso 5: Eliminación

Cuando termine de utilizar un clúster de Amazon ECS, debe limpiar los recursos asociados para evitar que se generen cargos por recursos que no está utilizando.

Algunos recursos de Amazon ECS, tales como tareas, servicios, clústeres e instancias de contenedor, se limpian a través de la consola de Amazon ECS. Otros recursos como, por ejemplo, las instancias de Amazon EC2, los balanceadores de carga de Elastic Load Balancing y los grupos de Auto Scaling, se deben limpiar manualmente en la consola de Amazon EC2 o eliminando la pila de AWS CloudFormation que los creó.

  1. En el panel de navegación, seleccione Clusters (Clústeres).

  2. En la página Clústeres, seleccione el clúster que creó para este tutorial.

  3. Seleccione la pestaña Servicios.

  4. Seleccione el servicio y, a continuación, elija Eliminar.

  5. En la pregunta de confirmación, escriba delete (eliminar) y, a continuación, elija Delete (Eliminar).

    Espere hasta que se elimine el servicio.

  6. Elija Delete cluster. En la pregunta de confirmación, ingrese delete cluster-name (eliminar nombre de clúster) y, a continuación, elija Delete (Eliminar). Al eliminar el clúster, se limpian los recursos asociados que se crearon con él, incluidos los grupos de Auto Scaling, las VPC o los balanceadores de carga.