0

Я собираюсь запустить сайт WordPress в среде HA (High Availability) в AWS.Высокая доступность Настройка WordPress

Я уже использую HA MySQL - Amazon Avrora.

Сейчас у меня есть несколько вопросов: Репликация Session

  1. Должен ли я предпочитаю или липкие сессии или в моей балансировки нагрузки или оба из них?
  2. Пользовательский контент должен быть загружен в CDN, а не в отдельный узел WP в кластере?

Как AWS может помочь с установкой WordPress HA? Например, следует ли использовать AWS Beanstalk для этой цели?

Что еще я должен обратить на это, чтобы создать HA для WordPress?

ответ

1

Ваши вопросы, возможно, немного шире для StackOverflow, но я в вашей ситуации, поэтому я могу сочувствовать.

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

Другими словами, вам требуются липкие сеансы, что означает, что ваше приложение полагается на память сервера для управления сеансом, поэтому после инициализации сеанса этот пользователь должен оставаться на этом сервере на протяжении всего сеанса. Это нормально, но менее желательно (по сравнению с тем, что ваш запрос вообще не заботился о том, какой экземпляр сервера он запускал), потому что если ваш трафик замедляется, а Elastic Beanstalk решил убить экземпляр, на котором вы были, то на следующем запрос, когда балансировщик нагрузки перенаправил вас в другой экземпляр, ваш сеанс будет RESET, и вашему пользователю придется снова войти в систему.

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

Преимущества для липких сеансов - если ваше приложение уже написано с зависимостью от памяти сервера или ДОЛЖНЫ иметь его по какой-либо причине, оно позволяет вашему приложению запускаться без изменений кода.

  1. Да, мне кажется, что ваш пользовательский контент не должен быть загружен ни на один узел (в основном по тем же причинам, о которых я упоминал выше). Если ваш пользовательский контент хранится на узле, и этот узел будет отключен из-за низкого трафика, вы потеряете эти данные.

Это то, где что-то вроде S3 пригодится. Ваше приложение напрямую взаимодействует с S3 в качестве решения для хранения данных, и каждый экземпляр сохраняет содержимое в ваши ведро S3. Затем, независимо от того, какой узел запущен, он может просто разговаривать с одним ведром S3 и получать нужные ему данные.

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