New user sign up using AWS Builder ID
New user sign up using AWS Builder ID is currently unavailable on re:Post. To sign up, please use the AWS Management Console instead.
Como faço para montar um sistema de arquivos Amazon do EFS em um contêiner ou tarefa do Amazon ECS em execução no Fargate?
Quero montar um sistema de arquivos do Amazon Elastic File System (Amazon EFS) em um contêiner ou tarefa do Amazon Elastic Container Service (Amazon ECS). O contêiner ou a tarefa do Amazon ECS está sendo executado no AWS Fargate.
Resolução
Para montar um sistema de arquivos do Amazon EFS em uma tarefa ou contêiner do Fargate, você deve primeiro criar uma definição de tarefa. Em seguida, disponibilize essa definição de tarefa para os contêineres em sua tarefa em todas as zonas de disponibilidade em sua região AWS. Por fim, suas tarefas do Fargate usam o Amazon EFS para montar automaticamente o sistema de arquivos nas tarefas que você especifica em sua definição de tarefa.
Importante: a resolução a seguir se aplica ao Fargate versão 1.4.0 e posterior. Essas versões têm armazenamento persistente que não é possível definir no nível da tarefa e do contêiner no Amazon ECS. As versões 1.3.0 ou anteriores do Fargate não suportam o uso do armazenamento persistente com o Amazon EFS.
Pré-requisitos
Você deve ter o seguinte:
- Um cluster do Amazon ECS
- Amazon Virtual Private Cloud (Amazon VPC)
- Sistema de arquivos do Amazon EFS
Criar e configurar um sistema de arquivos Amazon EFS
- Crie um sistema de arquivos do Amazon EFS e anote o ID do EFS e o ID do grupo de segurança.
Observação: seu sistema de arquivos do Amazon EFS, cluster Amazon ECS e tarefas do Fargate devem estar todos na mesma VPC. - Edite as regras do grupo de segurança do seu sistema de arquivos do EFS para permitir as conexões de entrada. É necessário permitir as conexões de entrada na porta 2049 (Sistema de Arquivos de Rede ou NFS) do grupo de segurança associado à sua tarefa ou serviço Fargate.
- Atualize o grupo de segurança do seu serviço Amazon ECS para permitir conexões de saída na porta 2049 com o grupo de segurança do seu sistema de arquivos do Amazon EFS.
Criar uma definição de tarefa
- Abra o console Classic do Amazon ECS.
- No painel de navegação, escolha Definições de tarefas e, em seguida, escolha Criar nova definição de tarefa.
- Na seção Selecionar compatibilidade do tipo de inicialização, escolha FARGATE e, em seguida, Próxima etapa.
- Na seção Configurar definições de tarefas e contêineres, em Nome da definição da tarefa, insira um nome para sua definição de tarefa.
- Na seção Volumes, escolha Adicionar volume.
- Em Nome, insira um nome para o volume.
- Em Tipo de volume, insira EFS.
- Em ID do sistema de arquivos, insira a ID do seu sistema de arquivos do Amazon EFS.
Observação: especifique opções personalizadas para Diretório raiz, Criptografia em trânsito e autorização do EFS AWS Identity and Access Management (AWS IAM). Se preferir, aceite a opção padrão, em que “/” é o diretório raiz. - Escolha Adicionar.
- Na seção Definição de contêineres, escolha Adicionar contêiner.
- Na seção ARMAZENAMENTO E REGISTRO, na subseção Pontos de montagem, selecione o volume que você criou para Volume de origem na etapa 5.
- Em Caminho do contêiner, escolha o caminho do contêiner.
- (Opcional) Na seção AMBIENTE, em Ponto de entrada, insira seu ponto de entrada.
- Em Comando, digite o comando [df ,-h] para exibir o sistema de arquivos montado.
Observação: não é possível usar o ponto de entrada e o comando para testar se o sistema de arquivos do Amazon EFS foi montado com sucesso. Por padrão, o contêiner fecha após a execução do comando df -h. O exemplo de definição de tarefa JSON na etapa 16 usa um loop while infinito para manter a tarefa em execução. - Escolha Adicionar.
- Insira suas informações para os campos restantes no assistente de definição de tarefas e escolha Criar.
No exemplo a seguir, a definição da tarefa JSON usa um loop infinito para manter a tarefa em execução. A definição da tarefa cria um volume de dados chamado efs-test. O contêiner nginx monta o volume de dados do host no caminho Any_Container_Path.
{ "family": "sample-fargate-test", "networkMode": "awsvpc", "executionRoleArn": "arn:aws:iam::1234567890:role/ecsTaskExecutionRole", "containerDefinitions": [ { "name": "fargate-app", "image": "nginx", "portMappings": [ { "containerPort": 80, "hostPort": 80, "protocol": "tcp" } ], "essential": true, "entryPoint": [ "sh", "-c" ], "command": [ "df -h && while true; do echo \"RUNNING\"; done" ], "mountPoints": [ { "sourceVolume": "efs-test", "containerPath": "Any_Container_Path" } ], "logConfiguration": { "logDriver": "awslogs", "options": { "awslogs-group": "AWS_LOG_GROUP_PATH", "awslogs-region": "AWS_REGION", "awslogs-stream-prefix": "AWS_STREAM_PREFIX" } } } ], "volumes": [ { "name": "efs-test", "efsVolumeConfiguration": { "fileSystemId": "fs-123xx4x5" } } ], "requiresCompatibilities": [ "FARGATE" ], "cpu": "256", "memory": "512" }
Observação: substitua fileSystemId, logConfiguration, containerPath e outros valores de espaço reservado por valores para sua configuração personalizada. Além disso, confirme se sua definição de tarefa tem um Amazon Resource Name (ARN) de perfil de execução para suporte ao driver de log awslogs.
Para montar vários EFS em destinos diferentes (containerPath), não é possível definir vários mountPoints e volumes na definição da tarefa.
Executar uma tarefa do Fargate e verificar seus logs de tarefas
- Execute uma tarefa do Fargate usando a definição de tarefa que você criou anteriormente.
Importante: você deve usar a plataforma Fargate versão 1.4.0 para executar a tarefa. - Para verificar se seu sistema de arquivos do Amazon EFS foi montado com sucesso no seu contêiner Fargate, verifique os logs de tarefas.
A saída de df-h é semelhante à seguinte:2020-10-27 15:15:35Filesystem 1K-blocks Used Available Use% Mounted on 2020-10-27 15:15:35 overlay 30832548 9859324 19383976 34% / 2020-10-27 15:15:35 tmpfs 65536 0 65536 0% /dev 2020-10-27 15:15:35 shm 2018788 0 2018788 0% /dev/shm 2020-10-27 15:15:35 tmpfs 2018788 0 2018788 0% /sys/fs/cgroup 2020-10-27 15:15:35 fs-xxxxxxxx.efs.us-east-1.amazonaws.com:/ 9007199254739968 0 9007199254739968 0% /Any_Container_Path 2020-10-27 15:15:35 /dev/xvdcz 30832548 9859324 19383976 34% /etc/hosts 2020-10-27 15:15:35 tmpfs 2018788 0 2018788 0% /proc/acpi 2020-10-27 15:15:35 tmpfs 2018788 0 2018788 0% /sys/firmware 2020-10-27 15:15:35 tmpfs 2018788 0 2018788 0% /proc/scsi RUNNING
Informações relacionadas
Controles de segurança e acesso para volumes do Amazon EFS
Especificar um sistema de arquivos do Amazon EFS em uma definição de tarefa do Amazon ECS
Como configurar sistemas de arquivos do Amazon EFS para o Amazon ECS usando o console
Vídeos relacionados


Conteúdo relevante
- feita há 2 meseslg...
- feita há 18 horaslg...
- Resposta aceitafeita há um mêslg...
- feita há um mêslg...
- feita há 22 diaslg...
- AWS OFICIALAtualizada há 3 meses
- AWS OFICIALAtualizada há 8 meses
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há 2 anos