¿Por qué no puedo montar mis volúmenes de Amazon EFS en mis tareas de AWS Fargate?

Última actualización: 22/12/2022

Recibo errores al montar mis volúmenes de Amazon Elastic File System (Amazon EFS) en mis tareas de AWS Fargate.

Resolución

Amazon EFS ofrece una solución de almacenamiento persistente para sus tareas de Fargate para compartir archivos y datos en diferentes tareas.

Es posible que no pueda montar los volúmenes de Amazon EFS en sus tareas de Fargate debido a uno o más de los siguientes motivos:

  • El sistema de archivos de Amazon EFS no se configuró de forma correcta.
  • El rol de IAM de tareas de Amazon Elastic Container Service (Amazon ECS) no cuenta con los permisos requeridos.
  • Hay problemas relacionados con las configuraciones de red y Amazon Virtual Private Cloud (Amazon VPC).

Es posible que reciba uno de los siguientes errores al intentar montar el volumen EFS en la tarea de Fargate.

ResourceInitializationError: failed to invoke EFS utils commands to set up EFS volumes: stderr: b'mount.nfs4: Connection timed out' : unsuccessful EFS utils command execution; code: 32

Este error aparece cuando la tarea de Fargate no puede conectarse al sistema de archivos EFS debido al tiempo de conexión. Para resolver este error, pruebe los siguientes pasos de solución de problemas:

1.    Abra la consola de Amazon EFS.

2.    En el panel de navegación, elija File systems (Sistemas de archivos).

3.    Elija el sistema de archivos que desea comprobar al seleccionar su Nombre o el ID del sistema de archivos.

4.    Elija Network (Red) para mostrar la lista de objetivos de montaje existentes.

5.    Elija Manage (Administrar).
Podrá ver el grupo de seguridad y las reglas de entrada del grupo de seguridad para los objetivos de montaje.

Asegúrese de que la regla de entrada del grupo de seguridad permita el tráfico del grupo de seguridad de tareas de Fargate en el puerto 2049. Confirme que el tráfico de red esté permitido en el nivel de subred. Para confirmarlo, compruebe que la lista de control de acceso a la red permita el tráfico entre el sistema de archivos y la tarea. Si el tráfico no está permitido, modifique las reglas en conformidad. Para obtener más información, consulte la sección Seguridad en la VPC con documentación de las subredes públicas y privadas (NAT).

ResourceInitializationError: failed to invoke EFS utils commands to set up EFS volumes: stderr: mount.nfs4: Connection reset by peer : unsuccessful EFS utils command execution; code: 32

Aparece el error anterior debido a uno de los siguientes motivos:

  • Montó el sistema de archivos EFS inmediatamente después de crear el sistema de archivos.
  • El grupo de seguridad para el objetivo de montaje no permite el tráfico entrante de las tareas de Fargate en el puerto 2049.
  • Utiliza AWS App Mesh y la salida al puerto 2049 está bloqueada debido a las reglas de proxy.

Para solucionar este error, siga los siguientes pasos:

  • Después de crear un objetivo de montaje, pueden transcurrir hasta 90 segundos para que los registros de DNS se propaguen por completo en una región de AWS. Si va a crear y montar los sistemas de archivos mediante la programación, por ejemplo, con una plantilla de AWS CloudFormation, una práctica recomendada sería implementar una condición de espera.
  • Confirme que la regla de entrada para el grupo de seguridad adjunto a los objetivos de montaje del sistema de archivos EFS permita el tráfico en el puerto 2049 desde las tareas de Fargate.
  • Si utiliza AppMesh, asegúrese de que la configuración de proxy especificada en la definición de tareas incluya 2049 como EgressIgnoredPorts.

ResourceInitializationError: failed to invoke EFS utils commands to set up EFS volumes: stderr: Failed to resolve “fs-xxxxxxxxxxx.efs.us-east-1.amazonaws.com” - check that your file system ID is correct

Aparece el error anterior debido a uno de los siguientes motivos:

  • El objetivo de montaje del sistema de archivos EFS no se crea ni está disponible en una zona de disponibilidad en la que se lanzan las tareas de Fargate.
  • Está usando un servidor de DNS personalizado para la VPC.
  • Los nombres de host de DNS de la VPC están desactivados. Los nombres de host de DNS están desactivados de forma predeterminada.

Para resolver este error, siga estos pasos:

ResourceInitializationError: failed to invoke EFS utils commands to set up EFS volumes: stderr: b'mount.nfs4: access denied by server while mounting 127.0.0.1:/' : unsuccessful EFS utils command execution; code: 32

Aparece el error anterior cuando las siguientes políticas y permisos deniegan el acceso al sistema de archivos:

  • La política del sistema de archivos
  • La política de roles de la tarea
  • Los permisos de nivel del sistema de archivos POSIX

El acceso a un sistema de archivos EFS puede controlarse mediante los permisos que se definen en los siguientes recursos:

  • La lista de control de acceso de red
  • Grupos de seguridad
  • Políticas del sistema de archivos EFS
  • Política de IAM del rol de tarea de ECS
  • Un archivo POSIX

Para obtener más información, consulte Guía para desarrolladores sobre el uso de Amazon EFS con Amazon ECS y AWS Fargate, parte 2.

Para solucionar este error, compruebe si la política del sistema de archivos o la política de IAM del rol de tareas de ECS deniegan el acceso al sistema de archivos. Si estas políticas deniegan los permisos, modifíquelas para conceder permisos de acceso al sistema de archivos. Si la política del sistema de archivos no existe, el acceso al sistema de archivos se concede de forma predeterminada a todos las entidades principales durante la creación.