Automatizando a montagem do EFS
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.
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.
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’
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.
Originally published at medium.com on October 10, 2017.