Como faço para montar um sistema de arquivos do Amazon 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) em execução no AWS Fargate.
Breve descriçã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 da AWS. Em seguida, 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 à plataforma Fargate versão 1.4.0 ou posterior, que tem armazenamento persistente que você pode definir no nível da tarefa e do contêiner no Amazon ECS. As versões 1.3.0 ou anteriores da plataforma Fargate não oferecem suporte ao armazenamento persistente usando o Amazon EFS.
Antes de concluir as etapas na seção Resolução, você deve ter:
- Um cluster do Amazon ECS
- Amazon Virtual Private Cloud (Amazon VPC)
- Sistema de arquivos do Amazon EFS
Resolução
Criar e configurar um sistema de arquivos Amazon EFS
1. Crie um sistema de arquivos do Amazon EFS e anote a ID do EFS e a 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.
2. Para permitir 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 do Fargate, edite as regras do grupo de segurança do seu sistema de arquivos EFS.
3. 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
1. Abra o console do Amazon ECS.
2. No painel de navegação, escolha Definições de tarefas e, em seguida, escolha Criar nova definição de tarefa.
3. Na seção Selecionar compatibilidade do tipo de inicialização, escolha FARGATE e escolha Próxima etapa.
4. 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.
5. Na seção Volumes, escolha Adicionar volume.
6. Em Nome, insira um nome para o volume.
7. Em Tipo de volume, insira EFS.
8. Em ID do sistema de arquivos, insira a ID do seu sistema de arquivos do Amazon EFS.
Observação: Você pode especificar opções personalizadas para Diretório raiz, Criptografia em trânsito e autorização do IAM para EFS. Ou você pode aceitar o padrão, em que “/” é o diretório raiz.
9. Escolha Adicionar.
10. Na seção Definição de contêineres, escolha Adicionar contêiner.
11. 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.
12. Em Caminho do contêiner, escolha o caminho do contêiner.
13. (Opcional) Na seção AMBIENTE, em Ponto de entrada, insira seu ponto de entrada.
14. Em Comando, digite o comando [df, -h ] para exibir o sistema de arquivos montado.
Observação: Você pode 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 bem-sucedida 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.
15. Escolha Adicionar.
16. Preencha os campos restantes no assistente de definição de tarefas e escolha Criar.
No exemplo a seguir, 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 com valores para sua configuração personalizada. Além disso, confirme se sua definição de tarefa tem um nome do recurso da Amazon (ARN) de função de execução para suporte ao driver de log awslogs.
Executar uma tarefa do Fargate e verificar seus logs de tarefas
1. Execute uma tarefa do Fargate usando a definição de tarefa que você criou anteriormente.
Importante: Certifique-se de executar sua tarefa na plataforma Fargate versão 1.4.0.
2. Para verificar se seu sistema de arquivos do Amazon EFS foi montado com sucesso no seu contêiner Fargate, verifique seus logs de tarefas.
A saída de df-h é semelhante à seguinte:
2020-10-27 15:15:35 Filesystem 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
Tutorial: Uso de sistemas de arquivos do Amazon EFS com o Amazon ECS usando o console clássico
Vídeos relacionados

Conteúdo relevante
- AWS OFICIALAtualizada há um ano
- AWS OFICIALAtualizada há 3 anos
- AWS OFICIALAtualizada há 6 meses
- AWS OFICIALAtualizada há 3 anos