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

Я неправильно понимаю автоматическое масштабирование aws и балансировщик нагрузки?

На самом деле меня все еще немного смущает aws auto scale up и load balancer

Мне интересно, может ли кто-нибудь помочь мне прояснить, верна ли моя логика понимания, и если да, можно ли комбинировать использование auto-scale up и load balancer?

Что касается auto-scale up скажем, я могу настроить cloudalarm что если мой main instance достигает cpu > 90% для a minute затем новый instance будет раскручиваться и новый instance разделит бремя с main instance чтобы снизить использование процессора. (после раскрутки AWS сделает все остальное за нас)это как если бы я установил настройку для раскрутки 1 экземпляра до 5 макс.

Если это правильно, насколько я понимаю, new instance нужны точно такие же настройки сервера? Если да, то это означает, что мне нужно создать изображение main instance и каждый раз, если я обновляю main instance Мне нужно будет создать new image затем измените cloudalarm / auto-scale up запустить new image право?

  1. Если вышесказанное верно, есть ли лучший способ сделать это? в противном случае мне кажется, что я должен продолжать создавать изображение и изменять настройки, если main instance получать изменения каждый день.

Что касается load balancer, Я прочитал документацию и поигрался. Раскрутите три instances, зарегистрировали их всех на load balancer. Все 3 исправны, и если я перезагружаю страницу, она продолжает меняться между тремя instances. Если один экземпляр не работает, два других будут работать.

Если это также верно для моего понимания, означает ли это, что мне нужно иметь 2+ одинаковых экземпляра, и каждый раз, когда я выполняю развертывание, мне нужно делать это для всех экземпляров? Разве это не было бы много работы, если бы у меня было много серверов и я хочу, чтобы все они использовали load balancer на случай, если сервер вдруг выйдет из строя?

Если оба моих понимания верны, можно ли как-то использовать auto-scale up с участием cloudalarm что если как-то main instance нездорово создайте образ экземпляра, затем зарегистрируйтесь в load-balancer?

Извините за проблемы с показаниями, но мне интересно, правильно ли я их понимаю или я слишком много думаю и запутался.

Спасибо за любой совет и помощь.

Когда вы используете автоматическое масштабирование и балансировку нагрузки, вы хотите, чтобы все ваши экземпляры EC2 были идентичны. Таким образом, все они (а) основаны на одном образе AMI и (б) проходят одни и те же шаги инициализации, чтобы в итоге получить на них один и тот же код и ресурсы. Таким образом, все они будут одинаково отвечать одним и тем же вводом от вашего HTTP-клиента.

Для этого не пытайтесь обновить экземпляры EC2 вручную. Когда вы увеличиваете или уменьшаете масштаб, ваша работа будет потеряна.

Когда вам нужно развернуть новую версию вашего кода, вы должны выполнить один (или несколько) из следующих шаблонов.

Схема 1:

  • Разверните свой код в «золотом» экземпляре EC2, который не входит в вашу группу Auto Scaling.
  • Создайте AMI этого «золотого» экземпляра.
  • Обновите группу Auto Scaling, чтобы использовать этот новый образ AMI.
  • Удалите старые экземпляры EC2 (которые используют старый AMI) и замените их новым экземпляром EC2 (которые используют новый AMI)

Схема 2:

  • Создайте группу Auto Scaling на основе «базового» образа AMI
  • Когда ваши экземпляры EC2 запускаются в первый раз, они загружают исходный код из некоторого общего места (например, S3)
  • Когда вы развертываете новый код, завершайте старые экземпляры и запускайте новые, чтобы получить новый код.

Схема 3:

  • Сделайте паттерн 2, но
  • Используйте автоматизированный инструмент для развертывания нового кода в существующем экземпляре EC2, а не для их завершения.

Есть и другие шаблоны, но некоторые из них работают.

Если вы новичок в Auto Scaling и Load Balancing, я настоятельно рекомендую вам серьезно взглянуть на Elastic Beanstalk. Он будет управлять всем вышеперечисленным за вас, что значительно упростит развертывание и обновления.

Некоторые дополнительные примечания:

  • В зависимости от вашего приложения может быть допустимо использовать 1 экземпляр EC2 за балансировщиком нагрузки. Возможно, вам не понадобится 2+ экземпляра. Вы можете масштабировать с 1 экземпляра по мере увеличения нагрузки. Вы просто теряете высокую доступность.