Por que não consigo montar meus volumes do Amazon EFS em minhas tarefas do AWS Fargate?

Data da última atualização: 22/12/2022

Estou recebendo erros quando monto meus volumes do Amazon Elastic File System (Amazon EFS) em minhas tarefas do AWS Fargate.

Resolução

O Amazon EFS oferece uma solução de armazenamento persistente para que suas tarefas do Fargate compartilhem arquivos e dados entre diferentes tarefas.

Talvez você não consiga montar os volumes do Amazon EFS nas tarefas do Fargate devido a um ou mais dos seguintes motivos:

  • O sistema de arquivos do Amazon EFS não está configurado corretamente.
  • O perfil do IAM da tarefa do Amazon Elastic Container Service (Amazon ECS) não tem as permissões necessárias.
  • Há problemas relacionados às configurações de rede e da Amazon Virtual Private Cloud (Amazon VPC).

Você pode receber um dos seguintes erros ao tentar montar o volume do EFS na tarefa do 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

Você recebe esse erro quando a tarefa do Fargate não consegue se conectar ao sistema de arquivos EFS devido ao tempo de conexão. Para resolver esse erro, tente as seguintes etapas de solução de problemas:

1.    Abra o console do Amazon EFS.

2.    No painel de navegação, escolha Sistemas de arquivos.

3.    Escolha o sistema de arquivos que você deseja verificar escolhendo seu Nome ou o ID do sistema de arquivos.

4.    Escolha Rede para exibir a lista de destinos de montagem existentes.

5.    Escolha Gerenciar.
Você pode visualizar o grupo de segurança e as regras de entrada do grupo de segurança para os destinos de montagem.

Certifique-se de que a regra de entrada para o grupo de segurança permite o tráfego do grupo de segurança de tarefas Fargate na porta 2049. Confirme se o tráfego de rede é permitido no nível da sub-rede. Para confirmar, verifique se a lista de controle de acesso à rede permite tráfego entre o sistema de arquivos e a tarefa. Se o tráfego não for permitido, modifique as regras de acordo. Para obter mais informações, consulte a seção Security (Segurança) na VPC com sub-redes públicas e 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

Você recebe o erro anterior devido a um dos seguintes motivos:

  • Você montou o sistema de arquivos EFS imediatamente após criar o sistema de arquivos.
  • O grupo de segurança para o destino de montagem não permite tráfego de entrada de tarefas do Fargate na porta 2049.
  • Você está usando o AWS App Mesh e a saída para a porta 2049 está bloqueada devido às regras de proxy.

Para solucionar esse erro, siga estas etapas:

  • Pode levar até 90 segundos para que os registros DNS se propaguem completamente em uma região da AWS após a criação de um destino de montagem. Se você estiver criando e montando programaticamente os sistemas de arquivos, por exemplo, com um modelo do AWS CloudFormation, é uma prática recomendada implementar uma condição de espera.
  • Confirme se a regra de entrada do grupo de segurança anexado aos destinos de montagem do sistema de arquivos EFS permite o tráfego na porta 2049 das tarefas do Fargate.
  • Se você estiver usando o AppMesh, certifique-se de que sua configuração de proxy especificada na TaskDefinition inclua 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

Você recebe o erro anterior devido a um dos seguintes motivos:

  • O destino de montagem do sistema de arquivos EFS não é criado ou está disponível em uma zona de disponibilidade onde as tarefas do Fargate são iniciadas.
  • Você está usando um servidor DNS personalizado para a VPC.
  • Os nomes de host do VPC DNS estão desativados. Os nomes de host DNS são desativados por padrão.

Para resolver esse erro, tente as seguintes etapas:

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

Você recebe o erro anterior quando o acesso ao sistema de arquivos é negado pelas seguintes políticas e permissões:

  • A política do sistema de arquivos
  • A política de atribuição de tarefas
  • As permissões em nível de sistema de arquivos POSIX

O acesso a um sistema de arquivos EFS pode ser controlado por permissões definidas nos seguintes recursos:

  • A lista de controle de acesso da rede
  • Grupos de segurança
  • Políticas do sistema de arquivos EFS
  • Política do IAM de função de tarefas do ECS
  • Um arquivo POSIX

Para obter mais informações, consulte o Guia do desenvolvedor para usar o Amazon EFS com o Amazon ECS e o AWS Fargate — Parte 2.

Para solucionar esse erro, verifique se a política do sistema de arquivos ou a política do IAM da função de tarefa do ECS nega acesso ao sistema de arquivos. Se essas políticas negarem permissões, modifique-as para conceder permissões para acessar o sistema de arquivos. Se a política do sistema de arquivos não existir, o acesso ao sistema de arquivos será concedido por padrão a todas as entidades principais durante a criação.