Amazon EC2 ELB направляет нагрузку на другие экземпляры и хранилища сессий - PullRequest
0 голосов
/ 13 июля 2011

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

Если мы уменьшим (удалим экземпляр из ELB), то все пользователи с этого сервера будут автоматически перенаправлены ELB на другиеостальные серверы.Этим пользователям не следует предлагать войти снова.

Возможно ли это (включая перенаправление запроса)?Как?

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

А каковы варианты использования центрального хранилища сеансов?SimpleDB?Redis?memcached?

Наше приложение представляет собой простое веб-приложение, размещенное на Apache.У нас есть два его экземпляра, добавленных в Amazon ELB, и мы используем PHP.

Есть ли какие-нибудь конкретные предложения по ELB php?когда происходит уменьшение / увеличение, чтобы не отображались видимые пользователю симптомы?

Ответы [ 2 ]

1 голос
/ 14 июля 2011

Существует множество способов централизованного управления сеансами. Некоторые из них перечислены ниже:

DB:

http://ocklin.org/session_management_cluster.html

Memcache:

  1. http://www.migrate2cloud.com/blog/how-to-configure-memcached-on-aws-ec2-a-starters-guide (убедитесь, что хосты могут подключаться без проблем),
  2. http://www.dotdeb.org/2008/08/25/storing-your-php-sessions-using-memcached/
  3. http://php.net/manual/en/memcached.sessions.php

Msession:

http://in.php.net/manual/en/ref.msession.php

1 голос
/ 13 июля 2011

По большей части, это должно быть полностью прозрачно для ваших конечных пользователей без особых изменений с вашей стороны.

Самым важным аспектом, на который стоит обратить внимание с вашей стороны, будет обеспечение сохранения / доступности сеансов посредством добавления / удаления экземпляров.

Вы можете сделать это, установив cookie на клиенте (поведение по умолчанию в session_start() и убедившись, что все ваши веб-серверы с PHP имеют возможность получать информацию об идентификаторе сеанса.

Некоторые люди будут использовать memcached для этого ... и есть встроенная интеграция в PHP для хранения сессий в memcached ...

...