

# Información sobre cómo crear una tarea para instancias administradas de Amazon ECS
<a name="getting-started-managed-instances"></a>

Obtenga información sobre cómo utilizar Amazon ECS con instancias administradas de Amazon ECS para poner en marcha una aplicación en contenedor.

## Requisitos previos
<a name="getting-started-prerequisites"></a>

 Antes de comenzar este tutorial, complete lo siguiente: 
+ Ha completado los pasos de [Configuración para usar Amazon ECS](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/get-set-up-for-amazon-ecs.html).
+ Se han completado los pasos que se indican en [Configuración para utilizar Amazon ECS](get-set-up-for-amazon-ecs.md).
+ Dispone de los roles de IAM necesarios para instancias administradas de Amazon ECS. Esto incluye:
  + Rol de infraestructura: permite a Amazon ECS realizar llamadas a los servicios de AWS en su nombre para administrar la infraestructura de instancias administradas de Amazon ECS.

    Para obtener más información, consulte [Rol de IAM de infraestructura de Amazon ECS](infrastructure_IAM_role.md).
  + Perfil de instancia: proporciona permisos para el agente de contenedor de Amazon ECS y el daemon de Docker que se ponen en marcha en instancias administradas.

    El nombre del rol de la instancia debe incluir `ecsInstanceRole` como prefijo para que coincida con la acción `iam:PassRole` del rol de infraestructura. 

    Para obtener más información, consulte [Perfil de instancia de instancias administradas de Amazon ECS](managed-instances-instance-profile.md).
+ Tiene una VPC y un grupo de seguridad creados para utilizarlos. En este tutorial se utiliza una imagen de contenedor alojada en Amazon ECR Public, por lo que sus instancias deben tener acceso a Internet. Para que sus instancias tengan una ruta a Internet, utilice una de las siguientes opciones:
  + Utilice una subred privada con una gateway NAT que tenga una dirección IP elástica.
  + Utilice una subred pública y asigne una dirección IP pública a las instancias.

  Para obtener más información, consulte [Creación de una nube virtual privada](get-set-up-for-amazon-ecs.md#create-a-vpc).

  Para obtener información sobre las reglas y los grupos de seguridad, consulte [Grupos de seguridad predeterminados para sus VPC](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#DefaultSecurityGroup) y [Reglas de ejemplo](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_SecurityGroups.html#security-group-rule-examples) en la *Guía del usuario de Amazon Virtual Private Cloud*.
+ (Opcional) AWS CloudShell es una herramienta que proporciona a los clientes una línea de comandos sin necesidad de crear su propia instancia de EC2. Para obtener más información, consulte [¿Qué es AWS CloudShell?](https://docs.aws.amazon.com/cloudshell/latest/userguide/welcome.html) en la *Guía del usuario de AWS CloudShell*.

## Paso 1: creación de un clúster
<a name="getting-started-step1"></a>

1. Abra la consola de Amazon ECS 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 **Configuración de clúster**, para **Nombre del clúster**, introduzca un nombre único para el clúster.

1. En **Infraestructura**, elija **Fargate y EC2 administrado**.

1. Configure los ajustes de las instancias administradas:

   1. En **Rol de infraestructura**, seleccione el rol de IAM que creó para la administración de la infraestructura de instancias administradas.

   1. En **Perfil de instancia**, seleccione el `ecsInstanceRole` que ha creado.

   1. En **Atributos de instancia**, elija **Usar valores predeterminados de ECS**.

1. En **Redes**, configure la VPC y las subredes de las instancias administradas:

   1. En **VPC**, seleccione la VPC que aloja las instancias administradas.

   1. En **Subredes**, seleccione una o más subredes en las que se lanzarán las instancias administradas.

   1. En **Grupos de seguridad**, seleccione uno o varios grupos de seguridad.

1. (Opcional) Para agregar etiquetas al clúster, expanda **Etiquetas** y, a continuación, configure sus etiquetas.

1. Seleccione **Crear**.

## Paso 2: Crear una definición de tarea
<a name="getting-started-step2"></a>

Una definición de tarea es un esquema de la aplicación. Cada vez que lance una tarea en Amazon ECS, debe especificar una definición de tarea. Esto permite que el servicio sepa qué imagen de Docker debe usar para los contenedores, cuántos contenedores debe utilizar en la tarea, así como la asignación de recursos para cada contenedor. Siga estos pasos para crear una definición de tarea:

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

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 el siguiente JSON en el editor y sustituya el JSON rellenado previamente:

   Sustituya **account-id** por su ID de cuenta de AWS y **region** por la región que está utilizando.

   ```
   {
     "family": "managed-instance-tutorial",
     "networkMode": "awsvpc",
     "executionRoleArn": "arn:aws:iam::account-id:role/ecsTaskExecutionRole",
     "containerDefinitions": [
       {
         "name": "sample-app",
         "image": "public.ecr.aws/docker/library/httpd:latest",
         "essential": true,
         "portMappings": [
           {
             "containerPort": 80,
             "hostPort": 80,
             "protocol": "tcp"
           }
         ],
         "logConfiguration": {
           "logDriver": "awslogs",
           "options": {
             "awslogs-group": "/ecs/managed-instance-tutorial",
             "awslogs-region": "region",
             "awslogs-stream-prefix": "ecs"
           }
         }
       }
     ],
     "requiresCompatibilities": [
       "MANAGED_INSTANCES"
     ],
     "cpu": "1024",
     "memory": "2048"
   }
   ```

1. Seleccione **Crear**.

## Paso 3: Crear un servicio
<a name="getting-started-step3"></a>

Un servicio de Amazon ECS le permite ejecutar y mantener simultáneamente un número determinado de instancias de una definición de tareas en un clúster de Amazon ECS. Siga estos pasos para crear un servicio:

1. En el panel de navegación, seleccione **Clústeres** y, luego, seleccione el clúster **managed-instance-tutorial**.

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

1. En **Familia de definiciones de tareas**, seleccione **managed-instance-tutorial**.

1. En **Nombre del servicio**, escriba **managed-instance-tutorial-service**.

1. En **Entorno**, elija **Estrategia de proveedor de capacidad**.

1. En **Redes**, configure lo siguiente:

   1. Seleccione una VPC existente o cree una nueva.

   1. En **Subredes**, elija las subredes que vaya a utilizar.

   1. En **Grupos de seguridad**, seleccione un grupo de seguridad existente o cree uno nuevo que permita el tráfico entrante en el puerto 80.

1. Seleccione **Crear**.

## Paso 4: Ver el servicio
<a name="getting-started-step4"></a>

Una vez que se haya lanzado el servicio, podrá verlo para obtener más información sobre él y probarlo.

1. Elija el servicio **managed-instance-tutorial-service**.

1. En la pestaña **Tareas**, elija el ID de la tarea en marcha.

1. En **Red**, en **IP pública**, seleccione **Abrir dirección**.

1. Debería ver la página de prueba del servidor HTTP de Apache, que confirma que el servidor web funciona correctamente.

## Paso 5: Eliminar
<a name="getting-started-step5"></a>

Cuando termine este tutorial, debe limpiar los recursos asociados para evitar incurrir en cargos por recursos que no está utilizando.

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

1. En la página **Clústeres**, seleccione el clúster **managed-instance-tutorial**.

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

1. Seleccione el servicio **managed-instance-tutorial-service** y, a continuación, elija **Eliminar**.

1. En la petición de confirmación, escriba **delete** y, a continuación, elija **Eliminar**.

1. Una vez eliminado el servicio, seleccione **Clústeres** en el panel de navegación.

1. En la página **Clústeres**, seleccione el clúster **managed-instance-tutorial** y, a continuación, elija **Eliminar clúster**.

1. En la petición de confirmación, escriba **delete managed-instance-tutorial** y, a continuación, elija **Eliminar**.