Como monto um sistema de arquivos do EFS em um contêiner ou tarefa do EC2?

Última atualização: 18/07/2022

Quero usar o Amazon Elastic File System (Amazon EFS) com o contêiner ou as tarefas do Amazon Elastic Container Service (Amazon ECS) usando um tipo de inicialização do Amazon Elastic Compute Cloud (Amazon EC2). Como posso fazer isso?

Breve descrição

Você pode montar um sistema de arquivos do EFS em uma tarefa ou contêiner em execução em uma instância do EC2. Para fazer isso, crie uma definição de tarefas que forneça o ID do sistema de arquivos nos parâmetros de definição de tarefas do volume. Isso permite que o sistema de arquivos do EFS seja montado automaticamente nas tarefas especificadas na definição de tarefas.

Recursos necessários:

Resolução

Requisitos de rede

  • O sistema de arquivos do EFS e o cluster do ECS devem estar na mesma VPC.
  • Os grupos de segurança associados com o sistema de arquivos do EFS devem permitir conexões de entrada na porta 2049 (sistema de arquivos da rede ou do NFS) a partir da instância de contêiner do ECS e da tarefa do ECS.
  • Os grupos de segurança da instância ou das tarefas do ECS devem permitir conexões de saída na porta 2049 para o grupo de segurança do sistema de arquivos do EFS.

Criar uma definição de tarefas

1.    Abra o console do Amazon ECS e selecione Task Definitions (Definições de tarefas), Create new Task Definition (Criar nova definição de tarefas).

2.    Escolha EC2 para compatibilidade com o tipo de inicialização e selecione Next step (Próxima etapa).

3.    Em Configure task and container definitions (Configurar definições de tarefas e contêiners), insira um nome para a definição de tarefas.

4.    Na seção Volume, escolha Add Volume (Adicionar volume).

5.    Insira o nome do volume e selecione EFS no menu suspenso Volume types (Tipos de volume).

6.    Para o File system ID (ID do sistema de arquivos), selecione o ID do sistema de arquivos a ser usado com as tarefas do ECS.

7.    (Opcional) Especifique o Root directory (Diretório raiz), a Encryption in transit (Criptografia em trânsito) e a EFS IAM authorization (Autorização do IAM no EFS), se necessário, com base nos requisitos. Se nenhuma opção for modificada, o diretório raiz padrão "/" será usado.

8.    Selecione Add (Adicionar).

9.    Ao criar o contêiner, em Container definitions (Definições de contêiners), selecione Add container (Adicionar contêiner) para usar o volume criado anteriormente. Em seguida, em Storage and Logging (Armazenamento e registro) na subseção Mount points (Pontos de montagem), selecione o volume que você criou na etapa 4.

10.    Para caminho do contêiner, escolha o caminho do diretório dentro do contêiner da aplicação e, depois, escolha Add ( Adicionar).

11.    Preencha os campos obrigatórios restantes no assistente de definição de tarefas e escolha Create (Criar).

No exemplo a seguir, a definição da tarefas cria um volume de dados denominado efs-ec2-test. O contêiner nginx monta o volume de dados do host no caminho /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"
}

Observação: substitua os parâmetros fileSystemId, containerPath e outros parâmetros de definição de tarefas de acordo com os valores da sua configuração personalizada.

No exemplo anterior, você pode criar um arquivo index.html de amostra no diretório raiz do sistema de arquivos com o seguinte conteúdo:

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

Executar uma tarefa do ECS

1.    Execute a tarefa do ECS usando a definição de tarefas criada anteriormente.

2.    Certifique-se de que o sistema de arquivos do EFS seja montado com êxito no contêiner do EC2 acessando o site com o endereço IP público da instância do ECS.


Este artigo ajudou?


Precisa de ajuda com faturamento ou suporte técnico?