¿Cómo puedo montar un sistema de archivos de EFS en un contenedor o tarea de ECS que se ejecuta en EC2?

4 minutos de lectura
0

Quiero usar Amazon Elastic File System (Amazon EFS) con el contenedor o las tareas de Amazon Elastic Container Service (Amazon ECS) mediante un tipo de lanzamiento de Amazon Elastic Compute Cloud (Amazon EC2). ¿Cómo puedo hacerlo?

Descripción corta

Puede montar un sistema de archivos de EFS en una tarea o un contenedor que se ejecute en una instancia de EC2. Para ello, cree una definición de tarea que proporcione el ID del sistema de archivos en los parámetros de la definición de tarea del volumen. Así, permite que el sistema de archivos de EFS se monte automáticamente en las tareas que especifique en la definición de tarea.

Recursos necesarios:

Resolución

Requisitos de la red

  • El sistema de archivos de EFS y el clúster de ECS deben estar en la misma VPC.
  • Los grupos de seguridad asociados con el sistema de archivos de EFS deben permitir las conexiones entrantes en el puerto 2049 (sistema de archivos de red o NFS) desde la instancia de contenedor de ECS y la tarea de ECS.
  • Los grupos de seguridad de las tareas o la instancia de ECS deben permitir las conexiones salientes en el puerto 2049 hacia el grupo de seguridad del sistema de archivos de EFS.

Crear una definición de tarea

1.    Abra la consola de Amazon ECS y seleccione Task Definitions (Definiciones de tareas), Create new Task Definition (Crear una nueva definición de tarea).

2.    Elija EC2 (EC2) para la compatibilidad con el tipo de lanzamiento y, a continuación, seleccione Next step (Paso siguiente).

3.    En Configure task and container definitions (Configuración de definiciones de tareas y contenedores), introduzca un nombre para la definición de tarea.

4.    En la sección Volume (Volumen), seleccione Add volume (Agregar volumen).

5.    Introduzca el nombre del volumen y, a continuación, seleccione EFS (EFS) en el menú desplegable Volume types (Tipos de volúmenes).

6.    En File system ID (ID del sistema de archivos), seleccione el ID del sistema de archivos que se va a usar con las tareas de ECS.

7.    (Opcional) Especifique los valores de Root directory (Directorio raíz), Encryption in transit (Cifrado en tránsito) y EFS IAM authorization (Autorización de IAM para EFS) si es necesario según sus requisitos. Si no se modifica ninguna opción, se utilizará el directorio raíz predeterminado “/”.

8.    Seleccione Add (Agregar).

9.    Al crear el contenedor, en Container definitions (Definiciones de contenedores), seleccione Add container (Agregar contenedor) para usar el volumen creado anteriormente. A continuación, en Storage and Logging (Almacenamiento y registro) en la subsección Mount points (Puntos de montaje), seleccione el volumen que creó en el paso 4.

10.    Para la ruta del contenedor, elija la ruta del directorio dentro del contenedor de la aplicación y, a continuación, elija Add (Agregar).

11.    Rellene los campos obligatorios restantes en el asistente de definición de tareas y, a continuación, seleccione Create (Crear).

En el siguiente ejemplo, la definición de tarea crea un volumen de datos denominado efs-ec2-test. El contenedor de nginx monta el volumen de datos del host en la ruta /usr/share/nginx/html.

{
  "containerDefinitions": [
    {
      "memory": 128,
      "portMappings": [
        {
          "hostPort": 80,
          "containerPort": 80,
          "protocol": "tcp"
        }
      ],
      "essential": true,
      "mountPoints": [
        {
          "containerPath": "/usr/share/nginx/html",
          "sourceVolume": "efs-ec2-test"
        }
      ],
      "name": "nginx",
      "image": "nginx"
    }
  ],
  "volumes": [
    {
      "name": "efs-ec2-test",
      "efsVolumeConfiguration": {
        "fileSystemId": "fs-1324abcd",
        "transitEncryption": "ENABLED"
      }
    }
  ],
  "family": "efs-test"
}

Nota: Reemplace fileSystemid, containerPath y otros parámetros de la definición de tarea en función de los valores de su configuración personalizada.

En el ejemplo anterior, puede crear un archivo index.html de ejemplo en el directorio raíz del sistema de archivos con el siguiente contenido:

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

Ejecutar una tarea de ECS

1.    Ejecute la tarea de ECS mediante la definición de tarea creada anteriormente.

2.    Asegúrese de que el sistema de archivos de EFS se monte correctamente en el contenedor de EC2; para ello, acceda al sitio web con la dirección IP pública de la instancia de ECS.


OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 2 años