1

Я хочу построить кластер EC2 «рабочих» случаях, когда каждый EC2 должен обрабатывать конкретный осколок пользователей, позволяет сказать:AWS: условный маршрут EC2 в зависимости от содержания

  • EC2-1 обрабатывает пользователей-1 -2-3
  • EC2-2 обрабатывает пользователи-4-5-6
  • EC2-3 обрабатывает пользователи-7-8-9

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

Каков наилучший способ сделать это в Амазонке?

Думаю, для этого мне нужно поддерживать какую-то таблицу сопоставления (userId < -> экземплярIp). Один из вариантов, о котором я подумал, - это дополнительный экземпляр EC2 для маршрутизации (или кластер из не менее 2 из них, для восстановления после сбоя, с помощью ELB), который управляет только перенаправлением на «рабочие» экземпляры (в том же регионе) в соответствии с таким сопоставлением таблицу и обновляет таблицу (возможно, каждый экземпляр «worker» должен как-то сообщить, что он работает и управляет пользователями - XYZ).

Но, может быть, есть способ сделать это через услуги Amazon без дополнительной «маршрутизации» EC2? Я прочитал несколько документов о VPC, Route53 и Geo routing, но самое близкое, что я мог найти, это http://docs.aws.amazon.com/Route53/latest/DeveloperGuide/rrsets-working-with.html , но я не уверен, что это правильно, потому что на каждого «рабочего» могут быть миллионы пользователей, EC2, и я не знаю, что он работает для динамического контента, такого как идентификаторы пользователей.

да, и я надеюсь, что это будет как 2 миллионов пользователей на рабочий EC2 ...

ответ

1

То, что вы, вероятно, ищете это липкие сессии на УДР. Это направит весь трафик за сеанс на один хост. Это имеет некоторые недостатки, такие как потеря сеанса экземпляра. (Если не используется совместно)

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

+2

Если искатель хочет очертить хардкор, это не поможет. липкие сеансы делают все возможное, чтобы использовать один и тот же хост для каждого клиента, но не могут маршрутизировать его в осколки (например, серверы 1-2-3 обрабатывают имена пользователей, начиная с A-F). во всяком случае, есть несколько архитектурных проблем, но, по-моему, это может быть связано с несколькими кластерами/ELB и переадресацией. – tedder42

+0

@ datasage спасибо за подсказку о липких сеансах! если я не найду другого способа, я дам им попытку. – blackdigger

+0

@ tedder42 Да, мне хотелось, чтобы «хардкор» окутал, я думаю. Кстати, вы упомянули некоторые архитектурные проблемы, не советуете ли вы против этого подхода? У меня нет большого опыта работы с амазоном, может быть, я роняю монстра? если это так, лучше убить его сейчас, чем позже haha ​​ – blackdigger

Смежные вопросы