Важно ли всегда иметь экземпляр ec2 в каждой зоне вашего балансировщика нагрузки? Есть ли преимущества в наличии более двух или трех зон?
Мы настроили наше приложение в группе EC2 AutoScaling, выступающей в качестве единственной целевой группы для балансировщика нагрузки приложения. Для нашего первоначального развертывания мы настроили шаблон запуска и балансировщик нагрузки на использование шести зон доступности. На основании рекомендации в пункте 4 Вот, мы устанавливаем минимальный размер AutoScaling Group равным шести, чтобы в каждой зоне всегда было хотя бы одно поле.
На практике в большинстве случаев нам не нужно шесть коробок; минимальный пул из двух или трех человек даст нам необходимую избыточность.
Я понимаю, что без межзональной балансировки нагрузки было бы важно иметь поле в каждой зоне, но балансировщики нагрузки приложений всегда используют межзонную балансировку нагрузки, поэтому кажется, что это не имеет значения.
С другой стороны, есть ли плюсы или минусы у нашего LB в таком большом количестве зон?
Насколько я знаю большинство регионов вы можете использовать только 2 или 3 зоны доступности, только в us-east-1 регион можно использовать до 6 АЗ. Видеть Глобальная инфраструктура AWS для подробностей.
Сарафанное радио: Я помню из одной презентации AWS, что даже если их иногда бывает больше трех центры обработки данных в некоторых регионах они добавлены к существующим 3 зонам доступности, поскольку они поняли, что для большинства практических целей достаточно 3 зон доступности. [цитата нужна, я знаю. Извините, не могу найти ссылку]
Теперь к вашему вопросу - при создании ALB вы можете выбрать, в каких AZ вы хотите это сделать. Если в us-east-1 вы решаете использовать только 3 зоны доступности, ваш ALB можно настроить только в этих 3 зонах доступности.
Если у вас есть экземпляры в меньшем количестве зон доступности, чем было включено ALB, не беспокойтесь, они все равно будут перенаправлять трафик на существующие экземпляры в других зонах. Вы можете заплатить немного больше за межзональное движение но это, вероятно, будет меньше затрат на запуск ненужных инстансов в каждой зоне доступности. Вы занимаетесь математикой.
И, наконец, на мой взгляд, использовать 3 зоны доступности для каждого региона более чем достаточно, потому что:
Шансы на Зона доступности снижается маленькие, но такое случалось пару раз в прошлом. Если это произойдет, у вас останутся еще 2 зоны доступности для приема нагрузки.
Отключение во всем регионе очень необычны. Но даже если это произойдет - если весь регион выйдет из строя из-за какой-либо человеческой или технической ошибки, не имеет значения, были ли у вас ваши экземпляры в 1 или 6 зонах доступности. Все равно все не работает.
Если ваше развертывание абсолютно супер критический и ты не можешь терпеть любое время простоя - развернуть в нескольких регионах для дополнительной избыточности. И опять же, не имеет значения, есть ли у вас в каждом регионе 2, 3 или 6 зон доступности.
Надеюсь, это поможет :)
Нет, вам не нужен экземпляр в каждом регионе, балансировщик нагрузки в каждой зоне доступности проверит, есть ли экземпляр в его зоне, и если нет, он направит трафик на какой-то работоспособный экземпляр в другой зоне.
В этом случае межзональная балансировка нагрузки не применяется. Используется только если есть здоровый экземпляры в все Зоны ELB, но вы все равно хотите, чтобы ELB случайным образом выбирал инстанс для разговора, независимо от его зоны действия. По умолчанию он общается только с экземплярами в своей зоне доступности, если они есть. Если их нет, он по-прежнему общается с любым доступным экземпляром, независимо от межзональной балансировки нагрузки.