1

У меня есть приложение PHP, работающее в группе автомасштабирования AWS, которая использует липкие сессии за AWS ELB.CodeDeploy для PHP-приложения с липкими сеансами

При запуске CodeDeploy в отношении этих машин для освобождения CodeDeploy сначала удалит файлы перед их заменой новыми. Однако за этот короткий промежуток времени все веб-запросы, попадающие на серверы, получат 404 или 500 ошибок сервера из-за того, что файлы не все находятся там.

Подключение дренажа и вытаскивание серверов из пула не будет работать из-за липкого сеанса, поскольку мы выходим из системы из системы, когда мы вытаскиваем сервер из пула.

Я рассмотрел развертывание кода в новом каталоге в файловой системе и rsyncing, но я думаю, что это частично разрешило бы проблему, так как rsync также не мгновен.

Есть ли возможность для липких сессионных серверов, таких как просмотр бесшовного развертывания?

+0

Вместо использования rsync вы можете рассмотреть инсталирующую версию этого, lsyncd - демон для непрерывной синхронизации деревьев каталогов –

ответ

0

Один из вариантов, который может помочь, заключается в том, чтобы полагаться на поведение существующих файлов и устанавливать параметр RETAIN. Флаг в команде развертывания развертывания aws: -file-exists-behavior: https://docs.aws.amazon.com/cli/latest/reference/deploy/create-deployment.html

Если вы создаете развертывание через консоль, вы можете выбрать «Параметры контента», который позволяет указать, будет ли развертывание должен сбой, перезапись или сохранение файла.

Но я не уверен на 100%, если это решает проблему, так как вы не обновляете файлы во время развертывания. Я быстро прочитал липкие сессии ... но может ли ваше клиентское программное обеспечение просто повторить попытку, если он потеряет липкую сессию? Я не могу думать об этом.

Нравится, ваш хозяин может исчезнуть в любое время. Во время развертывания вы можете (не знаете, если хотите) удалить хост из балансировки нагрузки. Сценарии остановки приложения могут быть закрыты службой вашего хоста. Держу пари, что липкие сеансы должны иметь решение, в котором вы можете слить предыдущие сеансы с хоста и остановить новых клиентов от доступа к этому хосту. Но я не знаю, что вы здесь делаете.

Я надеюсь, что эта информация вам поможет. -Asaf