Introducción a los contenedores de Windows mediante la consola clásica - Amazon Elastic Container Service

Introducción a los contenedores de Windows mediante la consola clásica

En este tutorial, se explica cómo hacer para ejecutar contenedores de Windows ya sea en Amazon ECS con la AMI de Windows Server optimizada para Amazon ECS en la AWS Management Console.

Creará un clúster para sus instancias de contenedor de Windows, lanzará una o varias instancias de contenedor en el clúster, registrará una definición de tarea que utiliza una imagen de contenedor de Windows, creará un servicio que utiliza una definición de tarea y, a continuación, irá a la página web de ejemplo que ejecuta el contenedor. Para obtener más información, consulte Contenedores de Windows Amazon EC2 .

Paso 1: Crear un clúster de Windows

Puede crear un nuevo clúster para los contenedores de Windows. Las instancias de Amazon EC2 que utilizan AMI optimizadas para Amazon ECS de Linux no pueden ejecutar contenedores de Windows y viceversa, por lo tanto, para conseguir una correcta ubicación de tareas, las instancias de contenedor de Windows y Linux se deben ejecutar en clústeres independientes. En este tutorial, creará un clúster con el nombre windows y registrará una o más instancias de Amazon EC2 en él para los contenedores de Windows.

Para crear un clúster con la AWS Management Console

  1. Abra la consola de Amazon ECS en https://console.aws.amazon.com/ecs/.

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

  3. En la página Clusters, elija Create Cluster.

  4. Elija EC2 Windows + Networking y Next step.

  5. En Cluster name (Nombre del clúster), ingrese un nombre para el clúster (en este ejemplo, el nombre del clúster es windows). Se admiten hasta 255 letras (mayúsculas y minúsculas), números, guiones y caracteres de subrayado.

  6. En la sección Instance configuration (Configuración de instancias) siga los pasos siguientes.

    1. En Provisioning model (Modelo de aprovisionamiento), elija uno de los tipos de instancia siguientes:

      • On-Demand Instance (Instancia en diferido): con las instancias en diferido, se abona la capacidad informática por hora, sin necesidad de asumir compromisos a largo plazo ni de realizar pagos iniciales.

      • Spot: las instancias de spot le permiten pujar por capacidad informática libre de Amazon EC2 con descuentos de hasta el 90 % en comparación con el precio en diferido. Para obtener más información, consulte Instancias de spot de .

        nota

        Las instancias de spot están sujetas a posibles interrupciones. Le recomendamos que no utilice instancias de spot para aplicaciones que no se pueden interrumpir. Para obtener más información, consulte Interrupciones de instancias de spot.

    2. En el caso de las instancias de spot, haga lo siguiente; de lo contrario, vaya directamente al siguiente paso.

      1. En Spot Instance allocation strategy, elija la estrategia que se ajuste a sus necesidades. Para obtener más información, consulte Estrategia de asignación de flotas de spot.

      2. En Maximum bid price (per instance/hour), especifique un precio de puja. Si el precio de puja es inferior al precio de spot para los tipos de instancia seleccionados, no se lanzarán las instancias de spot.

    3. En la página EC2 Instance Type (Tipo de instancia EC2), seleccione la configuración de hardware de la instancia. El tipo de instancia que seleccione determina los recursos disponibles para ejecutar sus tareas.

    4. En Number of instances (Número de instancias), elija el número de instancias de Amazon EC2 que se van a lanzar en el clúster.

    5. En EC2 AMI Id (ID de AMI de EC2), elija la AMI optimizada para Amazon ECS que va a utilizar para las instancias de contenedor. Las AMI disponibles se determinarán en función de la región y del tipo de instancia que elija. Para obtener más información, consulte AMI optimizada para Amazon ECS .

    6. En EBS storage (GiB) (Almacenamiento de EBS [GiB]), elija el tamaño del volumen de Amazon EBS que va a utilizar para el almacenamiento de datos en sus instancias de contenedor. Puede aumentar el tamaño del volumen de datos para permitir un mayor almacenamiento de imágenes y contenedores.

    7. En Key pair (Par de claves), elija un par de claves de Amazon EC2 para utilizarlas con las instancias de contenedor para el acceso RDP. Si no especifica un par de claves, no podrá acceder a las instancias de contenedor con RDP. Para obtener más información, consulte Pares de claves de Amazon EC2 en la Guía del usuario de Amazon EC2 para instancias de Linux.

  7. En la sección Networking, configure la VPC en la que va a lanzar sus instancias de contenedor. De forma predeterminada, el asistente de creación de clústeres crea una nueva VPC con dos subredes en diferentes zonas de disponibilidad y un grupo de seguridad abierto a Internet en el puerto 80. Se trata de una configuración básica que funciona bien para un servicio HTTP. Sin embargo, puede modificar estos ajustes siguiendo los pasos a continuación.

    1. En VPC, cree una nueva VPC o seleccione una existente.

    2. (Opcional) Si decide crear una nueva VPC, en CIDR Block, seleccione un bloque de CIDR para la VPC. Para obtener más información, consulte VPC y subredes en la Guía del usuario de Amazon VPC.

    3. En Subnets (Subredes), seleccione las subredes que desea utilizar para la VPC. Si decide crear una nueva VPC, puede mantener la configuración predeterminada o puede modificarla para satisfacer sus necesidades. Si decide utilizar una VPC existente, seleccione una o varias subredes en esa VPC para utilizar en el clúster.

    4. En Security group (Grupo de seguridad), seleccione el grupo de seguridad que desea asociar a las instancias de contenedor en su clúster. Si decide crear un nuevo grupo de seguridad, puede especificar un bloque de CIDR para permitir el tráfico entrante. El puerto predeterminado 0.0.0.0/0 está abierto a Internet. También puede seleccionar un único puerto o una serie de puertos contiguos para abrir en la instancia de contenedor. Para obtener reglas más complejas de grupo de seguridad, puede elegir un grupo de seguridad existente que ya haya creado.

      nota

      También puede optar por crear un nuevo grupo de seguridad y, a continuación, modificar las reglas después de crear el clúster. Para obtener más información, consulte Grupos de seguridad de Amazon EC2 para las instancias de Windows en la Guía del usuario de Amazon EC2 para instancias de Windows.

    5. En la sección Container instance IAM role (Rol de IAM de instancia de contenedor), seleccione el rol de IAM que va a utilizar con las instancias de contenedor. Si su cuenta tiene el rol ecsInstanceRole que se crea en el asistente de la primera ejecución de la consola, se seleccionará de forma predeterminada. Si no dispone de este rol en su cuenta, puede optar por crearlo o por utilizar otro rol de IAM que elija con las instancias de contenedor.

      importante

      El rol de IAM que utilice debe tener asociada la política administrada AmazonEC2ContainerServiceforEC2Role; de lo contrario, recibirá un mensaje de error durante la creación del clúster. Si no lanza la instancia de contenedor con los permisos de IAM correspondientes, el agente de Amazon ECS no se conecta al clúster. Para obtener más información, consulte Rol de IAM de instancia de contenedor de Amazon ECS .

    6. Si eligió el tipo de instancia de spot, la sección Spot Fleet Role IAM role (Rol de IAM para la flota de spot) indica que se crea el rol de IAM ecsSpotFleetRole.

  8. En la sección Tags (Etiquetas), especifique la clave y el valor de cada etiqueta que va a asociar al clúster. Para obtener más información, consulte Etiquetado de los recursos de Amazon ECS.

  9. En la sección CloudWatch Container Insights, elija si desea habilitar Container Insights para el clúster. Para obtener más información, consulte Amazon ECS CloudWatch Container Insights .

  10. Seleccione Create (Crear OpsItem).

    nota

    El proceso para que sus instancias de contenedor de Windows se registren en su clúster puede tardar hasta 15 minutos.

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 microsoft/iis.

Para registrar la definición de tarea de muestra con la AWS Management Console

  1. Abra la consola de Amazon ECS en https://console.aws.amazon.com/ecs/.

  2. En el panel de navegación, elija Task Definitions.

  3. En la página Task Definitions, seleccione Create new Task Definition.

  4. En la página Select launch type compatibilities (Seleccionar compatibilidades de tipo de lanzamiento), elija EC2, Next step (Paso siguiente).

  5. Desplácese hasta la parte inferior de la página y elija Configure via JSON (Configurar vía JSON).

  6. Pegue el siguiente JSON de la definición de tarea de muestra en el área de texto (y reemplace el JSON rellenado automáticamente allí) y seleccione Save.

    { "family": "windows-simple-iis", "containerDefinitions": [ { "name": "windows_sample_app", "image": "mcr.microsoft.com/windows/servercore/iis", "cpu": 512, "entryPoint":["powershell", "-Command"], "command":["New-Item -Path C:\\inetpub\\wwwroot\\index.html -ItemType 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>' -Force ; C:\\ServiceMonitor.exe w3svc"], "portMappings": [ { "protocol": "tcp", "containerPort": 80, "hostPort": 8080 } ], "memory": 768, "essential": true } ] }
  7. Verifique su información y seleccione Create (Crear).

Para registrar la definición de tarea de muestra con la AWS CLI

  1. Cree un archivo denominado windows-simple-iis.json.

  2. Abra el archivo con el editor de texto que prefiera y añada el JSON de ejemplo anterior al archivo y guárdelo.

  3. Mediante la AWS CLI, ejecute el siguiente comando para registrar la definición de tareas en Amazon ECS.

    nota

    Asegúrese de que la AWS CLI esté configurada para utilizar la misma región en la que existe el clúster Windows, o añada la opción --region your_cluster_region al comando.

    aws ecs register-task-definition --cli-input-json file://windows-simple-iis.json

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 la página de confirmación de registro Task Definition: windows-simple-iis, elija Actions, Create Service.

  2. En la página Create Service, introduzca la información siguiente y, a continuación, seleccione Create service.

    • Launch type (Tipo de lanzamiento): EC2

    • Cluster: windows

    • Service name: windows-simple-iis

    • Service type (Tipo de servicio): REPLICA

    • Number of tasks: 1

    • Deployment type (Tipo de implementación): actualización continua

Para crear un servicio a partir de la definición de tarea con la AWS CLI

  • Use la AWS CLI para ejecutar el comando siguiente para crear su servicio.

    aws ecs create-service --cluster windows --task-definition windows-simple-iis --desired-count 1 --service-name windows-simple-iis

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 de Amazon ECS en https://console.aws.amazon.com/ecs/.

  2. En la página Clusters, elija el clúster windows.

  3. En la pestaña Services, seleccione el servicio windows-simple-iis.

  4. En la página Service: windows-simple-iis , elija la ID de tarea para la tarea en su servicio.

  5. En la página Task, expanda el contenedor iis para ver su información.

  6. En Network bindings del contenedor, debería ver una dirección IP de External Link y un enlace de combinación de puerto. Elija ese enlace para abrir la página de prueba de IIS en su navegador.

    
                        Página sencilla para probar IIS de Windows