Caso esteja executando sua aplicação em container docker utilizando o ECS/Fargate e tenha a necessidade de persistir arquivos de um determinado diretório, o EFS pode ser útil.
Dessa forma, pode ter a tranquilidade de caso o container seja destruído, estes arquivos não serão perdidos.
Com esse recurso, é possível também executar vários containers utilizando o mesmo respositório de persistência e compartilhando os mesmos dados.
Pré-requisitos
Acesso ao console AWS e ao serviço ECS
Cluster ECS/Fargate já configurado
EFS já criado
Considerações
Foi utilizado uma imagem httpd do Docker Hub
Um bastion host Linux pode ser útil para administração e deploy no EFS
O diretório padrão do httpd (/usr/local/apache2/htdocs) será consumido no EFS
Foi feito upload de uma nova index.html através do bastion host para o diretório raiz do EFS que será montado no WORKDIR do container
Execução
- Visualização do EFS criado — Lembre-se de permitir NFS no security group:
- Na task definition do ECS, crie uma nova revisão para adicionar as configurações de volume:
- Ainda na task definition, será necessário ajustar container definitions:
- Atualize o service para utlizar a revisão correspondente aos ajustes realizados:
- It works!
Conclusão
Foi utilizado uma função básica de web server para demonstrar a funcionalidade do EFS como repositório de persistência. Assim cada container proveniente da task definition que foi atualizada pode consumir o repositório, podendo ser parado e iniciado a qualquer momento sem ocasionar perda de dados (no caso do exemplo, a index.html).
Happy building!
Top comments (0)