У нас есть веб-приложение с низкой нагрузкой, но с высокими требованиями к доступности. Он состоит из одного внешнего балансировщика нагрузки и пары внутренних серверов. Балансировщик нагрузки предназначен в первую очередь для маскировки сбоев, а не для распределения нагрузки.
Внутренние серверы становятся высокодоступными посредством репликации в двух зонах доступности. Но как сделать сам интерфейсный модуль высокодоступным? В настоящее время это единственная точка отказа.
Мы можем использовать AWS Elastic Load Balancing, но это немного дорого, и нам снова действительно не нужна часть балансировки нагрузки, поэтому: как бы вы решили эту проблему другим способом?
Одна из близких идей - контролировать интерфейс с помощью эхо-запросов или сердцебиения; по таймауту переключите эластичный IP-адрес внешнего интерфейса на другой компьютер, настроенный также как интерфейсный. Меня больше всего беспокоит этот подход, поскольку он, по-видимому, может 10 минут для распространения эластичного IP-адреса.
Что-нибудь с более быстрым временем отклика, чем этот подход? Думаете, нулевое время простоя возможно?
Обращаем внимание на другой вопрос: как бы вы это сделали в обычном автономном центре обработки данных, в котором нет AWS Elastic Load Balancing?
Быстро, надежно, дешево. Выберите любые два.
Честно говоря, «нулевое время простоя» практически невозможно. Вы хотите нулевого времени простоя, но не похоже, что вы готовы тратить на это необходимые деньги.
Я считаю, что вы на правильном пути, так как сердцебиение и перенос IP-адреса переднего конца на другой узел. Что-либо более сложное, чем это, потребовало бы либо заключения контракта на услуги CDN, таких как Akamai или Limelight, либо, в качестве альтернативы, получение номера AS, настройку BGP, получение распределения IP, настройку оборудования в двух географически удаленных колосах и репликацию данных между ними. Любой из этих вариантов был бы довольно дорогим и сложным для реализации.
Глядя на сервис Amazon ELB, имейте в виду, что он использует Запись CNAME поэтому вы не сможете балансировать нагрузку на корень вашего домена (example.com). Вам нужно будет использовать субдомен, например www.example.com, и заставить машину, принимающую трафик, отправляемый на example.com, перенаправлять клиентов на www.example.com. Это дает вам единую точку отказа. Более подробное обсуждение этого вопроса можно найти на форумах Amazon: http://developer.amazonwebservices.com/connect/thread.jspa?threadID=32044
Имея два балансировщика нагрузки на активный / пассивный или активный / активный, вы можете избежать spof.
просто имейте в виду, что в активном / активном сценарии ваши два фунта будут работать одновременно, и если один из них не работает, другой берет верх.
Ваш собственный номер AS в двух или более сетях операторского класса максимально приближен к нулевому времени простоя, насколько это возможно. С несколькими физическими сайтами в сети. Тем не менее, EC2 близок к нулевому простою.