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

4 minutos de lectura
0

Quiero montar una instancia de Amazon Elastic File System (Amazon EFS) en un contenedor o tarea de Amazon Elastic Container Service (Amazon ECS). El contenedor o la tarea utilizan un tipo de lanzamiento de Amazon Elastic Compute Cloud (Amazon EC2).

Resolución

Cree una definición de tarea que proporcione el ID del sistema de archivos en los parámetros de definición de tareas del volumen. Esto permite que el sistema de archivos EFS se monte automáticamente en las tareas que especifique en su definición de tarea.

Requisitos de red

Confirme que tiene las siguientes configuraciones:

  • El sistema de archivos de EFS y el clúster de ECS para el tipo de lanzamiento de Amazon EC2 deben estar en la misma nube virtual privada (VPC).
  • Los grupos de seguridad del sistema de archivos de EFS deben permitir las conexiones entrantes en el puerto 2049 desde la instancia de contenedor de ECS y la tarea de ECS.
  • Los grupos de seguridad de la instancia o las tareas de ECS deben permitir las conexiones salientes en el puerto 2049 al grupo de seguridad del sistema de archivos de EFS.

Creación de una definición de tarea

Complete los siguientes pasos:

  1. Abra la consola de Amazon ECS y, a continuación, seleccione Definiciones de tareas, Crear una nueva definición de tarea.
  2. En Tipo de lanzamiento, seleccione EC2 y después seleccione Paso siguiente.
  3. En Configurar definiciones de tareas y contenedores, introduzca un nombre para la definición de la tarea.
  4. En la sección Volumen, seleccione Agregar volumen.
  5. Introduzca un nombre para el volumen y, a continuación, seleccione EFS en la lista desplegable Volume types (Tipos de volúmenes).
  6. En 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 el directorio raíz, el cifrado en tránsito y la autorización de IAM de EFS. Si no especifica nada, se utilizará el directorio raíz predeterminado "/".
  8. Seleccione Agregar.
  9. Al crear el contenedor, en Definiciones de contenedores, seleccione Agregar contenedor para usar el nuevo volumen. A continuación, en la subsección Puntos de montaje, en Almacenamiento y registro, seleccione el volumen.
  10. En Ruta del contenedor, seleccione la ruta del directorio que está en el contenedor de la aplicación y, a continuación, seleccione Agregar.
  11. Complete los campos obligatorios en el asistente de definición de tareas y, a continuación, seleccione Crear.
    En el ejemplo siguiente, la definición de la tarea crea un volumen de datos denominado efs-ec2-test. El contenedor 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: Sustituya los parámetros fileSystemid y containerPath, entre otros parámetros de definición de tareas, por sus valores.
En el ejemplo anterior, puede crear un archivo index.html de ejemplo en el directorio raíz del sistema de archivos con un aspecto similar al siguiente:

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

Ejecución de una tarea de Amazon ECS

Complete los siguientes pasos:

  1. Para ejecutar la tarea de ECS, utilice la definición de tarea.
  2. Para comprobar que el sistema de archivos de EFS se monte en el contenedor de ECS, utilice la dirección IP de la instancia para acceder al sitio web.
OFICIAL DE AWS
OFICIAL DE AWSActualizada hace 7 meses