Automatizando a montagem do EFS

Francisco Edilton
2 min readOct 10, 2017

--

No post anterior, mostrei como criar um EFS. Agora vamos automatizar a sua montagem. Vamos abordar 3 maneiras: fstab, bootstrap e Elastic Beanstalk. Essas abordagens foram testadas no Amazon Linux 2017.03.1 HVM, SSD.

fstab

Se você possui um servidor que não faz parte de um auto-scaling e que em algum momento você queira reiniciá-lo, essa é uma boa abordagem.

Basta você editar o seu arquivo /etc/fstab e adicionar a seguinte linha:

mount-target-DNS:/ efs-mount-point nfs4 options 0 0

Onde:
mount-target-DNS: DNS do seu efs, no nosso caso fs-0d19f174.efs.us-east-2.amazonaws.com:/
efs-mount-point: pasta que o mount point será montado
options: nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2,_netdev

OBS: Não altere nada no options a menos que você realmente saiba o que está fazendo.

Após o reboot sua máquina montará automaticamente o seu EFS.

Bootstrap

Em um ambiente onde a máquina não é reiniciada e sim destruída, no fim do seu propósito, você não precisa se preocupar com o fstab. Mas na maioria dos casos você vai querer usar essa opção junto com a de fstab.

Você tem duas opções: durante o processo de bootstrap da instância fazer download do script ou colocar ele no seu processo de bootstrap.

O script foi baseado neste aqui feito pelo Enrico Vecchio

Apenas altere as seguintes variáveis, para refletir o seu ambiente:

EFS_REGION=’us-east-1'
EFS_MOUNT_DIR=’/efs’
EFS_VOLUME_ID=’fs-0d19f174’

Elastic Beanstalk

Caso você esteja usando o Elastic Beanstalk, no seu diretório de deploy você tem uma pasta chamada .ebextensions

Dentro dessa pasta crie um novo arquivo com o conteúdo do script feito pelo Enrico Vecchio. Eu fiz um fork por precaução.

Segue abaixo, para caso você queira copiar:

option_settings:
- option_name: EFS_VOLUME_ID
value: fs-0d19f174
- option_name: us-east-1
value: REGION-ID-HERE
- option_name: EFS_MOUNT_DIR
value: /efs

Quando você fizer o deploy ele vai montar o EFS sem indisponibilidade.

Espero ter ajudado a esclarecer o assunto. Caso tenha alguma dúvida, escreve aqui em baixo. Caso esteja testando, não esqueça de remover os recursos criados.

--

--