Эластичная балансировка нагрузки в EC2
Это было на картах какое-то время, но теперь, когда Amazon выпустила балансировка эластичной нагрузки (ELB), что вы думаете о развертывание этого решения для веб-приложения с высоким трафиком?
Если мы заменим HAProxy или рассмотрим ELB как бесплатную услугу перед HAProxy?
Ответы
Ответ 1
Я использую ELB вместо HAProxy уже около месяца на сайте, который получает около 100 000 посещений в день, и я был доволен результатами.
А если есть (UPDATE, эта проблема была исправлена Amazon AWS, см. комментарии ниже):
- Вы не можете загрузить баланс корня домена, так как вам нужно создать псевдоним CNAME для вашего балансира нагрузки. Как только решение должно перенаправить весь трафик от
http://mysite.com
до http://www.mysite.com
.
Кроме того, я действительно не могу говорить достаточно высоко о предложениях AWS ELB. Я также использую мониторинг Cloudwatch и автомасштабирование. О, и не забывайте, что это дешевле, чем запустить небольшой экземпляр EC2 ($ 0,025 за час вместо $0,10).
Ответ 2
Зависимость ELB от DNS-записи CNAME-записи является довольно вредной для веб-служб, которые должны быть очень быстрыми. В нашем случае нам нужно иметь очень хорошее время отклика. В тесте быстрой производительности использование ELB увеличивало среднюю задержку для HTTP-запросов почти в два раза. Это связано главным образом с тем, что TTL при поиске CNAME равен нулю. Таким образом, все поисковые запросы включают в себя запуск серверов имен для двух разных доменов, поэтому разрешение имен происходит медленнее. (Я беспокоюсь, что победить кэширование в DNS - это просто злоупотребление системой.) Единственная надежда для ELB в нашем случае - уйти от записей CNAME, если Amazon поддерживает Elastic IP в качестве адреса экземпляра балансировки нагрузки.
Ответ 3
Другой проблемой является получение IP-адреса клиента. Для обычного HTTP это отлично работает, поскольку ELB устанавливает заголовок X-FORWARDED-FOR. Но для HTTPS это невозможно, потому что оно пересылается на уровне TCP. Надеюсь, в какой-то момент ELB завершит SSL.
Ответ 4
В форуме Amazon есть жалобы на надежность ELB. Я предлагаю вам отправиться туда и обыскать ELB, чтобы сформировать собственное мнение на этом фронте.
Мы хотели использовать ELB для загрузки запросов веб-сервисов баланса, но у нас много внешних абонентов, некоторые из которых отправляют HTTP-сообщение 100-Continue. К сожалению, ELB не понимает эту часть протокола HTTP, поэтому мы не можем выйти за рамки доказательной концепции до тех пор, пока это не будет рассмотрено.
Обновление в 2013 году
Согласно сообщению форума AWS, теперь поддерживается HTTP 100-Continue.
https://forums.aws.amazon.com/message.jspa?messageID=144022
Ответ 5
Одна из основных проблем для многих пользователей с ELB заключается в том, что она не поддерживает липкость, которая является убийцей для многих веб-приложений.
Согласно разработчикам Amazon AWS, он должен, однако, прийти в следующую версию.