Назад | Перейти на главную страницу

Завершение работы экземпляра EC2 удаляет папку тома EFS

У меня есть среда Elastic Beanstalk для сайта WordPress, настроенная на использование тома EFS для папки загрузок, смонтированная и связанная при создании экземпляра (после это руководство для настройки). Однако, когда экземпляр масштабируется вверх / вниз, он каким-то образом удаляет папку загрузок на томе EFS, заставляя меня восстанавливать резервные копии, которые я сделал заранее (это -без ответа- похоже, связано.)

Мой файл efs.config выглядит следующим образом:

packages:
  yum:
nfs-utils: []
jq: []
files:
  "/tmp/mount-efs.sh" :
    mode: "000755"
    content: |
      #!/usr/bin/env bash
      mkdir -p /mnt/efs
      EFS_NAME=$(/opt/elasticbeanstalk/bin/get-config environment | jq -r '.EFS_NAME')
      mount -t nfs4 -o nfsvers=4.1,rsize=1048576,wsize=1048576,hard,timeo=600,retrans=2 $EFS_NAME:/ /mnt/efs || true
      mkdir -p /mnt/efs/uploads
      chown webapp:webapp /mnt/efs/uploads
commands:
  01_mount:
    command: "/tmp/mount-efs.sh"
container_commands:
  00-mv-wp-content-uploads:
    command: rsync -a /var/app/ondeck/wp-content/uploads/ /mnt/efs/uploads/
  01-rm-wp-content-uploads:
    command: rm -rf /var/app/ondeck/wp-content/uploads
  02-symlink-uploads:
    command: ln -snf /mnt/efs/uploads /var/app/ondeck/wp-content/uploads
  03-chown-uploads:
    command: chown -h webapp:webapp /var/app/ondeck/wp-content/uploads

По сути, я делаю следующее:

Перемещение любых файлов, находящихся в папке загрузки для развертывания, удаление этой папки для замены ее версией с символической ссылкой из EFS и передача права собственности пользователю Apache. Кажется достаточно простым, но папка EFS удаляется и заменяется содержимым развернутого файла.

Я что-то делаю не так с командами контейнера?

Проблема, как намекал выше комментатор, заключается в том, что команда mount не работает (в данном случае из-за неправильной конфигурации группы безопасности) и после того, как она маскирует ошибку, появляется «|| true».

Убедитесь, что группа безопасности для экземпляра EC2 разрешает исходящий трафик на всех портах (или, по крайней мере, порт NFS с группой безопасности для EFS, установленной в качестве пункта назначения), а входящий трафик для EFS настроен на разрешение NFS порт для TCP. Как только вы это сделаете, команда mount должна быть успешной, и приведенные выше инструкции должны работать.