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

Сервер балансировки нагрузки и защиты для настраиваемого протокола TCP на EC2

Мы разработали собственный протокол TCP для взаимодействия с клиентами iPhone через сокеты, и я хочу спланировать наш производственный сервер. Мы будем запускать наш сервер, написанный на erlang, на одном экземпляре debian EC2, а также, скорее всего, запускать mysql на отдельном экземпляре (я предполагаю, что это будет рекомендовано?).

Я ищу безопасные и сбалансированные соединения с нашим TCP-сервером, и смотрел на EC2 ELB, HAProxy, LVM и nginx. nginx, похоже, работает только по протоколу http, и, поскольку мы используем собственный протокол, я искал какие-то исходные данные для разработки такой системы. Мне также интересно, каковы будут последствия блокировки маршрутизатора / брандмауэра для провайдеров сотовых сетей.

Моя текущая идея заключалась в том, чтобы поместить все через порт 80 в ELB и направить его на TCP-сервер. Я не совсем уверен в ELB, поэтому мне было интересно:

  1. Какие еще варианты существуют для обратного прокси без http,
  2. Можно ли использовать SSL на обратном прокси-сервере или это также необходимо для работы на TCP-сервере
  3. Любые рекомендации по обходным путям межсетевого экрана / маршрутизатора для сотовых сетей, кроме перехода через порт 80.

Ну, ни haproxy, ни ELB не являются только HTTP; они оба будут выполнять произвольное проксирование TCP-соединения. Но зачем вам прокси? Вместо этого просто запустите балансировщик нагрузки L3; это намного чище. Это может не работать в AWS, но я бы назвал это ограничением AWS.

  1. HAProxy и ELB, похоже, хорошо подходят для ваших нужд.
  2. Добавление stunnel в ваше решение HAProxy позволит добиться этого, как и ELB (хотя не совсем понятно, работает ли разгрузка SSL на необработанных TCP-соединениях).
  3. Зависит от сотовых сетей, с которыми вам нужно работать, но я бы сказал, избегайте порта 80 - некоторые из них пытаются проксировать эти запросы. Во всяком случае, запускайте более 443 с вашим потоком SSL - это должно работать для операторов с прилично ограниченными помехами трафика.