Сеансы AWS Elasticache PHP с ELB и веб-серверами в разных центрах обработки данных
Я использую балансировщик нагрузки AWS с веб-серверами в разных центрах обработки данных.
Мне нужно начать использовать PHP-сессии на Elasticache для централизации управления сессиями.
Я могу создать двухэлементную установку Elasticache с одним узлом в каждом центре обработки данных, но я обеспокоен тем, что это повлияет на скорость, если данные кэша должны быть доступны на сервере кэширования, который находится в противоположном от запрашивающего центра данных веб сервер.
Это тот случай? Или нет или очень минимальное влияние на скорость?
2 ответа
Наличие двух узлов ElasticCache для репликации по регионам не будет работать очень хорошо. Задержка сети, вызванная разнесением на 2500 миль, сведет на нет большую часть / весь прирост производительности.
Вам не нужно делиться данными сеанса между регионами. Настройте DNS-маршрутизацию на основе задержки в Route53, которая автоматически направит каждого пользователя в ближайший центр обработки данных. Их сессии будут жить в своем регионе.
Когда вы говорите "Центры обработки данных", вы имеете в виду регионы (us-west-1, us-east-1) или зоны доступности (us-west-1a, us-west-1b и т. Д.).
Если вы просто используете две зоны доступности в одном и том же регионе, задержка незначительна, и вы можете рассматривать зоны доступности, как если бы они были одним и тем же центром обработки данных (даже если они изолированы, они соединены высокоскоростным волокном).
Если вы говорите о двух регионах (например, us-west-1 и us-east-1), то задержка будет намного выше (плюс ELB не уравновешивает регионы, а только зоны доступности).