Кратко:
- Развёртывание копий сайта на нескольких ВМ помогает сделать сайт устойчивым к наплыву посетителей.
- Сетевая балансировка распределяет нагрузку между ВМ, каждая из которых получает 20% запросов.
- Балансировщик принимает запросы от пользователей, распределяет их по ВМ и передаёт ответы пользователям.
- Абстрактность имён позволяет сервису, передающему трафик, не знать адреса и названия ВМ.
- Балансировка защищает веб-приложение от выхода ВМ из строя и позволяет обновлять код сайта или веб-приложения.
- Размещение ВМ в разных зонах доступности обеспечивает максимальную доступность сайта или приложения.
Балансировка нагрузки
Вы разрабатываете сайт интернет-магазина и хотите, чтобы он был готов к неожиданному наплыву посетителей и никогда не падал. Абсолютной стабильности, конечно, не добиться. Но в ваших силах сделать сайт устойчивым ко многим проблемам.
Пережить одновременный визит множества пользователей поможет развёртывание копий сайта на нескольких ВМ. В таком случае нагрузка равномерно распределится между ними. Если машин пять — то каждой достанется 20% запросов. Такой подход называется сетевой балансировкой.
Работает это так. Перед ВМ с сайтом ставят балансировщик — приложение, которое принимает запросы от пользователей и распределяет их по ВМ, а затем получает от ВМ ответы и передаёт (проксирует) их пользователям. При этом сервису, передающему трафик, не нужно знать адреса и названия ВМ: процедура разрешения имён делегируется балансировщику. Это называется абстрактностью имён.
Балансировка не только помогает распределить нагрузку между серверами, но и защищает веб-приложение от выхода ВМ из строя. Предположим, на одном из серверов возникли неполадки и он не может обрабатывать запросы. В этом случае балансировщик перераспределит нагрузку между другими серверами, и с этого момента недоступность сервиса для конечных пользователей прекратится.

Кроме того, балансировщик позволяет незаметно для пользователей обновлять код сайта или веб-приложения на серверах: вы просто поочередно убираете ВМ из-под балансировки, обновляете софт, после чего возвращаете их под балансировку.
Добиться максимальной доступности сайта или приложения можно, разместив ВМ в разных зонах доступности. Если в одной зоне произойдёт авария и все ВМ выйдут из строя — балансировщик начнёт распределять трафик по ВМ в других зонах, пока работа отключённой зоны не восстановится.