Назад | Перейти на главную страницу

Использование Elastic Load Balancer с одним экземпляром EC2 на AWS

Я использую уровень бесплатного пользования AWS, который дает мне один бесплатный микроэкземпляр EC2 и один бесплатный Elastic Load Balancer, если я правильно понимаю.

Я понимаю, что обычно ELB используются, когда вы используете несколько экземпляров EC2. Я действительно не хочу запускать несколько экземпляров, если я могу помочь, и в 90% случаев мой единственный экземпляр EC2, кажется, обрабатывает трафик, который на него направлен, но иногда он перестает отвечать и требует перезагрузки. Кажется, это не происходит автоматически.

Я читал, что ELB перезапускают микроэкземпляры, которые он называет «нездоровыми» (не отвечает на несколько попыток проверки связи). Итак, у меня была одна идея - создать один ELB, назначить ему мой единственный EC2 и тем самым создать простую ситуацию «автоматической перезагрузки, если он застрянет».

Я настроил его, и он не упирался и не лаял на меня, но мне было интересно, правильно ли я это понимаю. Я новичок в администрировании серверов и только начинаю разбираться в таких понятиях, как микро-экземпляры, ELB и тому подобное, хотя (как и все дураки) я думаю, что понимаю основы этого.

Это хорошая идея? Есть ли более простой способ сделать это? Я пытался в Google и искать других людей, делающих то же самое, и никого не нашел, но я не могу сказать, потому что это не сработает или потому что никто другой не настолько глуп, чтобы попытаться использовать один микро-экземпляр EC2 за весь их трафик. Я глубоко подозреваю, что это плохая идея, так как я не вижу, чтобы кто-то еще говорил об этом, и хотя я довольно умен в некоторых вещах, я не слишком уверен в том, чтобы быть умным в таких вопросах!

Спасибо за вашу помощь!

Amazon Elastic Load Balancer (ELB) распределяет запросы на исправные инстансы, которые были ему назначены. Он не перезапускает и не изменяет эти экземпляры (или их количество). Он определяет «работоспособные» экземпляры с помощью проверки работоспособности - обычно опроса заданного местоположения.

Вы просите «поддерживать 1 работоспособный экземпляр» - это задача автоматического масштабирования. Автоматическое масштабирование позволит вам определить группу экземпляров (обычно включая AMI для запуска, тип экземпляра, одну или несколько зон доступности для запуска экземпляров, а также количество экземпляров для обслуживания (минимум / максимум)). как политику, с помощью которой можно увеличивать и уменьшать масштаб. Политика автомасштабирования возвращает ARN (имя ресурса Amazon - ссылка на ресурс).

После настройки группы автоматического масштабирования все, что вам нужно сделать, это активировать политики масштабирования, когда экземпляр становится неработоспособным. Если вы внимательно посмотрите на проверку работоспособности, которую вы настроили с помощью ELB, вы заметите, что вы можете настроить будильник - и этот будильник на самом деле является сигналом Cloudwatch.

Вы можете настроить свои собственные будильники Cloudwatch или настроить их с помощью проверки работоспособности ELB - просто укажите --alarm-actions для запуска ARN с автоматическим масштабированием при выполнении критериев нездорового узла.

ELB в этой настройке технически не требуется - автоматическое масштабирование выполнит свою работу само по себе. Что ELB делает для вас, так это предоставляет DNS-адрес, по которому вы можете получить доступ к своим экземплярам (а также какое-то сообщение об ошибке, когда серверная часть недоступна). (При автоматическом масштабировании вам потребуется повторно связать эластичный IP-адрес с новым экземпляром при его запуске (что может быть написано сценарием)).

Наконец, просто чтобы уточнить: CloudFlare - это не сервис AWS - это CDN (и несколько хорошо известны своей способностью противодействовать DDoS-атакам). Аналогичный сервис Amazon - CloudFront - ни один из них не нужен для перезапуска инстансов. Что вам действительно нужно, так это CloudWatch - служба мониторинга Amazon). Уровень бесплатного пользования распространяется как на Cloudwatch, так и на несколько будильников.