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

Где хранить данные в AWS AutoScaling Group?

Я использовал 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.

Надеюсь, это поможет :)