Я собираюсь перенести наше приложение на Amazon Web Services. Планируется, что все экземпляры EC2 будут отражены в двух зонах доступности. Из-за затрат на передачу данных мы будем оставаться в одном регионе AWS (Орегон).
Наличие нескольких зон доступности избавляет от единой точки отказа для наших серверов приложений и баз данных, но как насчет ELB? Если у меня есть один ELB, распределяющий трафик между двумя зонами доступности, будет ли ELB также размещаться в этих двух зонах доступности?
Что делает Amazon, чтобы ELB не стал SPoF?
По сути, ELB - это просто набор экземпляров EC2. Когда ты создать ELB, вы указываете зоны доступности, в которых должен находиться этот балансировщик нагрузки. Затем в этих зонах будут созданы экземпляры, составляющие балансировщик нагрузки. Они избегают единой точки отказа, возвращая несколько IP-адресов при поиске в DNS. Например:
Клиент должен выбрать, какой IP-адрес использовать для соединения. IP-адреса не всегда будут возвращаться в одном и том же порядке при поиске в DNS. Клиент может повторить попытку с альтернативного IP-адреса, если он не может подключиться с первой попытки.
TTL в записях DNS для ELB составляет всего 60 секунд, что означает, что если экземпляр ELB умрет и будет заменен, DNS будет обновляться повсюду довольно быстро.
На самом деле это может быть SPoF, но я считаю, что это будет SPoF только в том же регионе.
Вот почему AWS предлагает использовать проверку работоспособности Route 53, чтобы обнаруживать и перенаправлять трафик, который может попасть в неработоспособный ELB.
Вы можете использовать функции проверки работоспособности Amazon Route 53 и восстановления после отказа DNS, чтобы повысить доступность приложений, работающих за Elastic Load Balancers. Маршрут 53 откажется от балансировщика нагрузки, если в балансировщике нагрузки не зарегистрированы работоспособные экземпляры EC2. или если сам балансировщик нагрузки неисправен.
Вы можете обойти свой SPoF с одной зоной доступности, создав группу автомасштабирования, где, если ваш единственный ELB не соответствует X-фактору, будь то загрузка, время отклика и т. Д., Создается новый ELB. ELB - это, по сути, экземпляры EC2, на которых запущен собственный код AWS.