

# Información sobre cómo crear una tarea de Windows de Amazon ECS para Fargate
<a name="Windows_fargate-getting_started"></a>

Comience a utilizar Amazon ECS en AWS Fargate mediante Fargate para las tareas en las regiones donde Amazon ECS admite AWS Fargate.

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

## Requisitos previos
<a name="first-run-prereqs-windows"></a>

Antes de comenzar, complete los pasos en [Configuración para utilizar Amazon ECS](get-set-up-for-amazon-ecs.md) y corrobore que su usuario de IAM disponga de los permisos que se especifican en la política de IAM `AdministratorAccess` de ejemplo.

La consola intenta crear automáticamente el rol de IAM de puesta en marcha 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:
+ El usuario tiene acceso de administrador. Para obtener más información, consulte [Configuración para utilizar Amazon ECS](get-set-up-for-amazon-ecs.md).
+ El usuario tiene los permisos de IAM para crear un rol de servicio. Para obtener más información, consulte [Creación de un rol para delegar permisos a un servicio de AWS](https://docs.aws.amazon.com/IAM/latest/UserGuide/id_roles_create_for-service.html).
+ Un usuario con acceso de administrador ha creado manualmente el rol de ejecución de tareas para que se encuentre disponible en la cuenta que se va a utilizar. Para obtener más información, consulte [Rol de IAM de ejecución de tareas de Amazon ECS](task_execution_IAM_role.md).

**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 información acerca de cómo crear un grupo de seguridad, consulte [Cree un grupo de seguridad para su instancia de Amazon EC2](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/creating-security-group.html) en la *Guía del usuario de Amazon EC2*.  
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
<a name="create_fargate_windows_cluster-v2"></a>

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

**Para crear un clúster con la Consola de administración de AWS**

1. Abra la consola en [https://console.aws.amazon.com/ecs/v2](https://console.aws.amazon.com/ecs/v2).

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

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

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

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

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

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

   [Agregar una etiqueta] Elija **Agregar 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.

1. Seleccione **Create (Crear)**.

## Paso 2: Registrar una definición de tareas de Windows
<a name="register_fargate_windows_task_def_console"></a>

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 Consola de administración de AWS**

1. En el panel de navegación, elija **Task Definitions** (Definiciones de tareas).

1. 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).

1. 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"]
   }
   ```

1. Verifique su información y seleccione **Create (Crear)**.

## Paso 3: Crear un servicio con la definición de tarea
<a name="create_fargate_windows_service_console"></a>

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](#create_fargate_windows_cluster-v2).

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

1. 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](#register_fargate_windows_task_def_console).

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

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

1.  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](#first-run-prereqs-windows).

1. Seleccione **Crear**.

## Paso 4: Ver el servicio
<a name="view_windows_fargate_service"></a>

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](https://console.aws.amazon.com/ecs/v2).

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

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

1. 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](#create_fargate_windows_service_console).

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

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

## Paso 5: Eliminación
<a name="first-fargate-run-cleanup"></a>

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 CloudFormation que los creó.

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

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

1. Seleccione la pestaña **Servicios**.

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

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

   Espere hasta que se elimine el servicio.

1. 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.