Como conectar um volume EFS a um contêiner Docker ECS
O Elastic File System (EFS) da AWS é uma unidade de armazenamento compartilhada que pode ser conectada a vários servidores separados. É um par perfeito com o Elastic Container Service (ECS) da AWS, que executa contêineres Docker sem servidor em implantações de cluster e pode se beneficiar de um estado compartilhado fácil.
Por que isso é útil?
EFS é um serviço de armazenamento totalmente gerenciado da Amazon. É um armazenamento em bloco compartilhado sem servidor que pode ser montado em vários servidores. Isso o torna particularmente útil em combinação com o Docker, que geralmente não tem estado.
Por exemplo, você pode usar isso para hospedar o conteúdo estático e o código do seu site e, em seguida, executar todos os seus nós de trabalho no ECS para lidar com a veiculação real do seu conteúdo. Isso contorna a restrição de não armazenar dados no disco, porque a montagem do volume está vinculada a uma unidade externa que persiste nas implantações do ECS.
Embora você possa executar contêineres Docker no ECS com volumes locais, ter um único volume compartilhado para toda a implantação pode ser uma ferramenta muito útil para muitas implantações.
Criando um volume EFS
Para configurar isso, você precisará criar um sistema de arquivos EFS. Isso é bastante simples e pode ser feito no console de gerenciamento EFS, mas você vai querer anotar o ID do volume, pois precisará dele para trabalhar com o volume.
Crie um novo sistema de arquivos:

Insira um nome e escolha o VPC em que seu cluster ECS está localizado.

Em seguida, você pode anotar a ID do sistema de arquivos, pois você &’ precisará dela mais tarde.

Se precisar pré-carregar dados neste sistema de arquivos, ou apenas adicionar ou alterar manualmente os arquivos em seu volume EFS, você pode montá-lo em qualquer instância EC2. Você precisará instalar o amazon-efs-utils:
sudo yum install -y amazon-efs-utils
E então monte-o com o seguinte comando, usando o ID:
sudo mount -t efs fs-12345678: / / mnt / efs
Dessa forma, você pode visualizar e editar diretamente o conteúdo do seu volume EFS como se fosse outro HDD em seu servidor. Você vai querer ter certeza de ter o nfs-utils instalado para que tudo funcione corretamente.
Conectando-se a uma implantação ECS
Em seguida, você &’ terá que conectar o ECS a este volume. Crie uma nova definição de tarefa no console de gerenciamento do ECS. Role para baixo e selecione “ Configurar via JSON. ” Em seguida, substitua os “ volumes ” vazios; com o seguinte JSON, adicionando a “ família ” chave no final:
"volumes": [{"name": "efs-demo", "host": null, "dockerVolumeConfiguration": {"autoprovision": true, "labels": null, "scope": " shared "," driver ":" local "," driverOpts ": {" type ":" nfs "," device ":": / "," o ":" addr = fs-XXXXXX. efs. us-east- 1. amazonaws. com, nfsvers = 4.1, rsize = 1048576, wsize = 1048576, hard, timeo = 600, retrans = 2, noresvport "}}}]," family ":" nginx ", Obviamente, você precisará substituir fs-XXXXXX. efs. us-east-1. amazonaws. com pelo endereço real do seu volume EFS. Você deve ver um novo volume:

Você pode usar isso na definição do seu contêiner como um ponto de montagem. Selecione “ Adicionar contêiner ” (ou edite um existente) e em “ Armazenamento e registro, ” selecione o volume recém-criado e especifique um caminho de contêiner.

Salve a definição da tarefa e, ao iniciar um cluster com essa nova definição, todos os contêineres poderão acessar seu sistema de arquivos compartilhado.
Nenhum comentário