Я использовал Bitnami многоуровневый WordPress стек на AWS.
Я знаю, как использовать автомасштабирование в AWS, но ни одна из документации не показала мне, где хранить изменяемые файлы данных при использовании чего-то вроде WordPress.
База данных находится на RDS, так что это не проблема, а загруженные статические файлы могут храниться на S3 или EFS. Задержка не будет проблемой, поскольку статические файлы будут находиться в CloudFront CDN.
Я не уверен, что делать с wp-content/plugins
каталог, так как данные в нем будут изменены администраторами WordPress, поэтому он не может быть просто частью AMI.
Эта страница говорит под «Даже не думайте о запуске кода приложения из EFS» что эти файлы не должны находиться в EFS из-за задержки.
Так следует ли копировать эти файлы из EFS в новые экземпляры с помощью сценария начальной загрузки EC2 или чего-то подобного? Полагаю, я мог бы использовать rsync или aws-cli?
Или я должен делать это с помощью ловушки жизненного цикла или Lambda?
Это не может быть необычным сценарием, поэтому я удивлен, насколько сложно было найти какую-либо информацию об этом.
Насколько загружен ваш сайт? Для малого / среднего бизнеса веб-сайт WordPress, обслуживаемый EFS, должен быть достаточно хорош.
Начни с этого и посмотри, как у тебя дела. Если вы обнаружите, что он слишком медленный, у вас есть несколько вариантов:
Убедитесь, что вы используете Типы инстансов EC2 с высокой и стабильной пропускной способностью сети. Производительность EFS зависит от производительности сети экземпляра, поэтому бюджетные типы экземпляров T2 / T3 не будут работать хорошо.
Производительность EFS зависит от объема хранимых данных - чем больше вы храните, тем выше пропускная способность, которую они вам дают. Один из вариантов - создать большой фиктивный файл (размером пару ГБ) для увеличения пропускной способности.
Если вы не хотите этого, вы можете заплатить за Предоставленная EFS пропускная способность вместо этого - это повысит вашу производительность за некоторую дополнительную плату.
Настроить PHP Opcache или какой-либо другой механизм кэширования байт-кода PHP.
Настроить Заголовки кеширования и истечения срока действия в вашей конфигурации Apache / Nginx. Особенно, если вы также собираетесь обслуживать изображения и файлы javascript из EFS. Это поможет уменьшить трафик, попадающий на ваши серверы - и, в свою очередь, EFS - для контента, который никогда не изменяется.
Рассмотрите возможность использования AWS CloudFront как еще один слой кеширования, снова снижающий нагрузку на ваши серверы.
С учетом вышеизложенного вы сможете нормально обслуживать веб-сайт из EFS.
Надеюсь, это поможет :)