Configuración de sistemas de archivos de Amazon EFS para Amazon ECS mediante la consola - Amazon Elastic Container Service

Configuración de sistemas de archivos de Amazon EFS para Amazon ECS mediante la consola

Obtenga información sobre cómo utilizar los sistemas de archivos de Amazon Elastic File System (Amazon EFS) con Amazon ECS.

Paso 1: Crear un clúster de Amazon ECS

Siga estos pasos para crear un clúster de Amazon ECS.

Para crear un nuevo clúster (consola de Amazon ECS)

Antes de empezar, asigne el permiso de IAM correspondiente. Para obtener más información, consulte Ejemplos de clústeres de Amazon ECS.

  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 Configuración de clúster, para Nombre del clúster, ingrese EFS-tutorial.

  6. (Opcional) Para cambiar la VPC y las subredes donde se inician sus tareas y servicios, en Networking (Redes), realice cualquiera de las siguientes operaciones:

    • Para eliminar una subred, en Subnets (Subredes), elija Xpara cada subred que desea eliminar.

    • Para cambiar a una VPC distinta de la VPC predeterminada, enVPC, elija una VPC existente y, a continuación, en Subnets (Subredes), seleccione cada subred.

  7. Para agregar instancias de Amazon EC2 al clúster, expanda Infraestructura y, a continuación, seleccione Instancias de Amazon EC2. A continuación, configure el grupo de Auto Scaling que actúa como proveedor de capacidad:

    1. Para crear un grupo de Auto Scaling, desde Auto Scaling group (ASG) (Grupo de Auto Scaling), seleccione Create new group (Crear nuevo grupo) y, a continuación, proporcione los siguientes detalles sobre el grupo:

      • En Sistema operativo/arquitectura, elija Amazon Linux 2.

      • En EC2 instance type (Tipo de instancia EC2), elija t2.micro.

        Para Par de clave de SSH, elija el par que demuestre su identidad cuando se conecta a la instancia.

      • En Capacidad, escriba 1.

  8. Seleccione Crear.

Paso 2: Crear un grupo de seguridad para las instancias de Amazon EC2 y el sistema de archivos de Amazon EFS

En este paso, se crea un grupo de seguridad para las instancias de Amazon EC2 que permiten el tráfico de red entrante en el puerto 80 y para el sistema de archivos de Amazon EFS que permite obtener acceso de entrada desde las instancias de contenedor.

Cree un grupo de seguridad para las instancias de Amazon EC2 con las siguientes opciones:

  • Nombre del grupo de seguridad: un nombre único para el grupo de seguridad.

  • VPC: la VPC que identificó anteriormente para el clúster.

  • Regla de entrada

    • Tipo: HTTP

    • Fuente: 0.0.0.0/0.

Cree un grupo de seguridad para el sistema de archivos de Amazon EFS con las siguientes opciones:

  • Nombre del grupo de seguridad: un nombre único para el grupo de seguridad. Por ejemplo, EFS-access-for-sg-dc025fa2.

  • VPC: la VPC que identificó anteriormente para el clúster.

  • Regla de entrada

    • Tipo: NFS

    • Fuente: personalizada con el ID del grupo de seguridad que creó para las instancias.

Para obtener información sobre cómo crear un grupo de seguridad, consulte Crear un grupo de seguridad en la Guía del usuario de Amazon EC2.

Paso 3: Crear un sistema de archivos de Amazon EFS

En este paso, se crea un sistema de archivos de Amazon EFS.

Para crear un sistema de archivos de Amazon EFS para tareas de Amazon ECS.
  1. Abra la consola de Amazon Elastic File System en https://console.aws.amazon.com/efs/.

  2. Seleccione Create file system (Crear sistema de archivos).

  3. Introduzca un nombre para el sistema de archivos y, a continuación, elija la VPC en la que están alojadas las instancias de contenedor. De forma predeterminada, cada subred de la VPC especificada recibe un destino de montaje que utiliza el grupo de seguridad predeterminado para dicha VPC. A continuación, seleccione Personalizar.

    nota

    Este tutorial asume que su sistema de archivos de Amazon EFS, el clúster de Amazon ECS, las instancias de contenedor y las tareas deben estar en la misma VPC. Para más información sobre cómo montar un sistema de archivos desde una VPC diferente, consulte Walkthrough: Mount a file system from a different VPC en la Guía del usuario de Amazon EFS.

  4. En la página de Configuración del sistema de archivos, configure los ajustes opcionales y, a continuación, en Configuración de rendimiento, elija el modo de rendimiento Por ráfagas para el sistema de archivos. Una vez que haya configurado los ajustes, seleccione Siguiente.

    1. Añada etiquetas para su sistema de archivos. Este paso es opcional. Por ejemplo, es posible especificar un nombre único para el sistema de archivos al escribirlo en la columna Value situada junto a la clave Name.

    2. (Opcional) Habilite la administración del ciclo de vida para ahorrar dinero en el almacenamiento al que se accede con poca frecuencia. Para obtener más información, consulte Administración del ciclo de vida de EFS en la Guía del usuario de Amazon Elastic File System.

    3. (Opcional) Habilite el cifrado. Seleccione la casilla de verificación para habilitar el cifrado del sistema de archivos de Amazon EFS en reposo.

  5. En la página Acceso a la red, en Montar objetivos, reemplace la configuración del grupo de seguridad existente para cada zona de disponibilidad con el grupo de seguridad que creó para el sistema de archivos en Paso 2: Crear un grupo de seguridad para las instancias de Amazon EC2 y el sistema de archivos de Amazon EFS y, a continuación, seleccione Siguiente.

  6. No necesita configurar la Política del sistema de archivos para este tutorial, por lo que puede omitir la sección seleccionando Siguiente.

  7. Revise las opciones del sistema de archivos y elija Crear para completar el proceso.

  8. Desde la pantalla Sistemas de archivos, registre el ID del sistema de archivos. En el siguiente paso, hará referencia a este valor en la definición de tareas de Amazon ECS.

Paso 4: Agregar contenido al sistema de archivos de Amazon EFS

En este paso, se va a montar el sistema de archivos de Amazon EFS en una instancia de Amazon EC2 y a agregar contenido en ella. Esto se hace para realizar pruebas en este tutorial e ilustrar la naturaleza persistente de los datos. Por lo general, cuando se utiliza estas características, se cuenta con una aplicación u otro método de escritura de datos en el sistema de archivos de Amazon EFS.

Para crear una instancia de Amazon EC2 y montar el sistema de archivos de Amazon EFS
  1. Abra la consola de Amazon EC2 en https://console.aws.amazon.com/ec2/.

  2. Elija Iniciar instancia.

  3. En Imágenes de aplicaciones y sistema operativo (Imagen de máquina de Amazon), seleccione la AMI de Linux 2 de Amazon (HVM).

  4. En Tipo de instancia, mantenga el tipo de instancia predeterminado, t2.micro.

  5. En Par de claves (inicio de sesión), seleccione un par de claves para el acceso SSH a la instancia.

  6. En Configuración de red, seleccione la VPC que especificó en el sistema de archivos de Amazon EFS y el clúster de Amazon ECS. Seleccione una subred y el grupo de seguridad de la instancia que se creó en Paso 2: Crear un grupo de seguridad para las instancias de Amazon EC2 y el sistema de archivos de Amazon EFS. Configure el grupo de seguridad de la instancia. Asegúrese de que Asignar automáticamente IP pública esté habilitado.

  7. En Configurar almacenamiento, pulse el botón Editar para los sistemas de archivos y, a continuación, elija EFS. Seleccione el sistema de archivos que creó en Paso 3: Crear un sistema de archivos de Amazon EFS. Si lo desea, puede cambiar el punto de montaje o dejar el valor predeterminado.

    importante

    Debe seleccionar una subred antes de poder agregar un sistema de archivos a la instancia.

  8. Desactive Crear y adjuntar grupos de seguridad automáticamente. Deje seleccionada la otra casilla de verificación. Elija Agregar sistema de archivos compartidos.

  9. En Advanced Details (Detalles avanzados), asegúrese de que el script de datos del usuario se rellene automáticamente con los pasos de montaje del sistema de archivos de Amazon EFS.

  10. En Resumen, asegúrese de que el Número de instancias sea 1. Seleccione Iniciar instancia.

  11. En la página Lanzar una instancia, seleccione Ver todas las instancias para ver el estado de las instancias. Al principio, el estado del Estado de instancia es PENDING. Una vez que el estado cambie a RUNNING y la instancia supere todas las comprobaciones de estado, la instancia estará lista para su uso.

Ahora, se conecta a la instancia de Amazon EC2 y agrega contenido al sistema de archivos de Amazon EFS.

Para conectarse a la instancia de Amazon EC2 y agregar contenido al sistema de archivos de Amazon EFS
  1. SSH a la instancia de Amazon EC2 que creó. Para obtener más información, consulte Conexión con la instancia de Linux en la Guía del usuario de Amazon EC2.

  2. Desde la ventana del terminal, ejecute el comando df -T para comprobar que el sistema de archivos de Amazon EFS esté montado. En el siguiente resultado, hemos resaltado el montaje del sistema de archivos de Amazon EFS.

    $ df -T Filesystem Type 1K-blocks Used Available Use% Mounted on devtmpfs devtmpfs 485468 0 485468 0% /dev tmpfs tmpfs 503480 0 503480 0% /dev/shm tmpfs tmpfs 503480 424 503056 1% /run tmpfs tmpfs 503480 0 503480 0% /sys/fs/cgroup /dev/xvda1 xfs 8376300 1310952 7065348 16% / 127.0.0.1:/ nfs4 9007199254739968 0 9007199254739968 0% /mnt/efs/fs1 tmpfs tmpfs 100700 0 100700 0% /run/user/1000
  3. Vaya al directorio en el que está montado el sistema de archivos de Amazon EFS. En el ejemplo anterior, es /mnt/efs/fs1.

  4. Cree un archivo denominado index.html con el siguiente contenido:

    <html> <body> <h1>It Works!</h1> <p>You are using an Amazon EFS file system for persistent container storage.</p> </body> </html>

Paso 5: Crear una definición de tarea

La siguiente definición de tarea crea un volumen de datos llamado efs-html. El contenedor nginx monta el volumen de datos host en raíz de NGINX, /usr/share/nginx/html.

Para crear una nueva definición de tareas utilizando la consola de Amazon ECS
  1. Abra la consola en https://console.aws.amazon.com/ecs/v2.

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

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

  4. En el cuadro editor de JSON, copie y pegue el siguiente texto JSON, sustituyendo fileSystemId por el ID del sistema de archivos de Amazon EFS.

    { "containerDefinitions": [ { "memory": 128, "portMappings": [ { "hostPort": 80, "containerPort": 80, "protocol": "tcp" } ], "essential": true, "mountPoints": [ { "containerPath": "/usr/share/nginx/html", "sourceVolume": "efs-html" } ], "name": "nginx", "image": "nginx" } ], "volumes": [ { "name": "efs-html", "efsVolumeConfiguration": { "fileSystemId": "fs-1324abcd", "transitEncryption": "ENABLED" } } ], "family": "efs-tutorial", "executionRoleArn":"arn:aws::iam::111122223333:role/ecsTaskExecutionRole" }
    nota

    Puede agregar los siguientes permisos a su rol de IAM de ejecución de tareas de Amazon ECS para permitir que el agente de Amazon ECS localice y monte un sistema de archivos de Amazon EFS en una tarea al inicio.

    • elasticfilesystem:ClientMount

    • elasticfilesystem:ClientWrite

    • elasticfilesystem:DescribeMountTargets

    • elasticfilesystem:DescribeFileSystems

  5. Seleccione Crear.

Paso 6: Ejecutar una tarea y ver los resultados

Ahora que se creó el sistema de archivos de Amazon EFS y hay contenido web para que el contenedor de NGINX lo sirva, puede ejecutar una tarea mediante la definición de tareas que creó. Los servidores web de NGINX dan servicio a su sencilla página HTML. Si actualiza el contenido en el sistema de archivos de Amazon EFS, esos cambios se propagan a cualquier contenedor que también haya montado ese sistema de archivos.

La tarea se ejecuta en la subred que definió para el clúster.

Para ejecutar una tarea y ver los resultados mediante la consola
  1. Abra la consola en https://console.aws.amazon.com/ecs/v2.

  2. En la página Clusters (Clústeres), seleccione el clúster que va a ejecutar la tarea independiente.

    Determine el recurso desde el que lanza el servicio.

    Para iniciar un servicio desde Pasos

    Clústeres

    1. En la página Clusters (Clústeres), seleccione el clúster que va a crear el servicio.

    2. En la pestaña Tasks (Tareas), elija Run new task (Ejecutar nueva tarea).

    Tipo de lanzamiento
    1. En la página Task (Tarea), seleccione la definición de tarea.

    2. Si hay más de una revisión, selecciónela.

    3. Elija Create (Crear), Run task (Ejecutar tarea).

  3. (Opcional) Elija cómo se distribuye la tarea programada en su infraestructura de clúster. Expanda Compute configuration (Configuración de computación) y, a continuación, haga lo siguiente:

    Método de distribución Pasos
    Tipo de lanzamiento
    1. En la sección Compute options (Opciones de computación), seleccione Lauch type (Tipo de lanzamiento).

    2. En Tipo de lanzamiento, elija EC2.

  4. En Application type (Tipo de aplicación), elija Task (Tarea).

  5. En Definición de tarea, elija la definición de tarea efs-tutorial que creó anteriormente.

  6. En Tareas deseadas, ingrese 1.

  7. Seleccione Crear.

  8. En la página Clúster, elija Infraestructura.

  9. En Instancias de contenedor, elija la instancia de contenedor a la que se va a conectar.

  10. En la página Instancia de contenedor, en Redes registre la IP pública para la instancia.

  11. Abra un navegador e ingrese la dirección IP pública. Debería ver el siguiente mensaje:

    It works! You are using an Amazon EFS file system for persistent container storage.
    nota

    Si no ve el mensaje, asegúrese de que el grupo de seguridad de la instancia de contenedor permita el tráfico de red entrante en el puerto 80 y que el grupo de seguridad del sistema de archivos permita el acceso entrante desde la instancia de contenedor.