2022-01-04 23:37:01
Плохие практики —
VPC с двумя
AZ подзонами или сколько правильно иметь
AZ в
VPCКак показал опрос,
20% читателей используют фиксированные
2 AZ для разворота
VPC. И действительно, для простоты и экономии, казалось бы, логично, использовать
две AZ подзоны. Кучи примеров с такими настройками, презентаций, видео. Также многие просто руководствуются требованиями в документации, например, это минимальная рекомендация для
ALB:
You must select at least two Availability Zone subnets.
Другие считают, что всё равно некоторые
AWS регионы имеют лишь
две AZ подзоны, потому логично ориентироваться на минимум для своих deployment скриптов, который подойдёт для всех.
Две (минимум) AZПопробуем разобраться в деталях, почему использовать лишь
2 AZ — плохая практика.
Во-первых, на текущий момент (начало
2022-го года) все AWS Regions имеют 3 AZ и больше.
Во-вторых, сами по себе
AZ подзоны (как подсети для
VPC) не стоят денег, потому в качестве экономического фактора не валидны.
В-третьих, это минимальное значение может стать крайне проблематичным в случае реального падения одной из
AZ подзон.
Показательный случай был совсем недавно,
22 декабря 21-го года, когда упала USE1-AZ4 в
N.Virginia после отключения электричества в её датацентре. По результатам падения, один из обладателей конфигурации с
2 AZ написал пост на Reddit, где пытался разобраться, почему
2 AZ не спасли от ошибок по таймауту.
Главные вывод следующий. Наблюдая проблемы в процессе их развития, он не мог быстро отреагировать на них, например, просто временно отключив одну из подсетей
ALB (упавшей AZ4). А не смог он этого сделать как раз потому что минимальное значение подсетей для
ALB, как было указано выше —
2 AZ! И потому
ALB не дал возможности выбросить упавшую подзону.
Три AZИтого, если в
VPC всего лишь
2 AZ, то нет возможности быстро/временно переконфигурировать сервисы, удалив из них проблемную
AZ. Потому нормальным значением правильно считать
3 AZ или больше.
Максимум AZПро максимальное количество также стоит сказать. Кроме достаточно логичного, что в зависимости от используемого
IaC, это может быть просто не шибко удобно по количеству кода, есть проблема другого характера. Некоторые
AZ очень старые и уже давно не обновляются, в результате чего не имеют современных инстансов и можно получить ошибку "Your requested instance type is not supported in your requested Availability Zone":
https://aws.amazon.com/premiumsupport/knowledge-center/ec2-instance-type-not-supported-az-error/
Такая точно есть в N.Virginia и если нет возможности обрабатывать данную ошибку, то можно использовать лишь
5 AZ.
Сколько нужно AZА если добавить
Local Zones, которые можно/нужно подключать, то управление и выбор подзон нонче правильно выносить в отдельный процесс, который нужно иметь возможность гибко конфигурировать.
#VPC #design
1.4K views20:37