Amazon Web Services — масштабирование Amazon EC2

Опубликовано: 2 Сентября, 2022

Масштабируемость относится к способности программного решения справляться с растущими рабочими нагрузками. Проще говоря, это способность системы легко добавлять дополнительные вычислительные ресурсы для обработки возросших нагрузок.
Масштабирование Amazon EC2 означает, что вы начинаете с ресурсов, которые вам потребуются во время запуска вашего сервиса, и создаете свою архитектуру для автоматического масштабирования в ответ на меняющийся спрос. В результате вы платите только за те ресурсы, которые действительно используете. Вам не нужно беспокоиться об исчерпании вычислительной мощности для удовлетворения потребительского спроса.

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

Именно здесь на сцену выходит автомасштабирование Amazon EC2. Вы можете использовать Amazon EC2 Auto Scaling для добавления или удаления инстансов Amazon EC2 в соответствии с изменениями требований вашего приложения. Вы можете поддерживать более высокий уровень доступности приложений, динамически увеличивая и уменьшая количество экземпляров по мере необходимости.

В Amazon EC2 Auto Scaling можно использовать три метода масштабирования: динамическое масштабирование, прогнозируемое масштабирование и масштабирование по расписанию. Они подробно описаны ниже:

1. Динамическое масштабирование адаптируется к изменяющимся средам и отвечает инстансами EC2 в соответствии с требованиями. Это помогает пользователю отслеживать кривую спроса на приложение, что в конечном итоге помогает сопровождающему/пользователю масштабировать экземпляры заранее. Политики масштабирования целевого отслеживания, например, могут использоваться для выбора загружаемой статистики для вашего приложения, такой как использование ЦП. В качестве альтернативы вы можете использовать новую меру Application Load Balancer «Количество запросов на цель», которая является вариантом балансировки нагрузки для службы Elastic Load Balancing. После этого Amazon EC2 Auto Scaling изменит количество инстансов EC2 по мере необходимости, чтобы вы не отставали от графика.

2. Predictive Scaling помогает запланировать правильное количество инстансов EC2 на основе прогнозируемого спроса. Вы можете использовать как динамическое, так и предиктивное масштабирование вместе для более быстрого масштабирования приложения. Predictive Scaling прогнозирует будущий трафик и заранее выделяет соответствующее количество экземпляров EC2. Алгоритмы машинного обучения в Predictive Scaling выявляют изменения в ежедневных и еженедельных закономерностях и автоматически обновляют прогнозы. Таким образом, отпадает необходимость вручную масштабировать экземпляры в определенные дни.

3. Масштабирование по расписанию , как следует из названия, позволяет масштабировать приложение в соответствии с установленным вами запланированным временем. Например, владелец кофейни может нанять больше бариста по выходным из-за повышенного спроса и освободить их в будние дни из-за снижения спроса.

Вычислительная мощность — это запрограммированный ресурс в облаке, поэтому вы можете применять более гибкий подход к масштабированию своих приложений. Когда вы добавляете Amazon EC2 Auto Scaling в приложение, вы можете создавать новые экземпляры по мере необходимости и прекращать их работу, когда они больше не используются. Таким образом, вы платите только за используемые экземпляры, когда они используются.

Преимущества автоматического масштабирования EC2:

Масштабирование, как обсуждалось, должно быть реализовано в экземпляре EC2, чтобы достичь большей гибкости, если спрос на приложение возрастет. Давайте подробно обсудим преимущества автоматического масштабирования EC2.
Одним из способов максимально эффективного использования облака AWS является включение автоматического масштабирования Amazon EC2 в структуру вашего приложения. Преимущества приложений при использовании Amazon EC2 Auto Scaling:

  1. Amazon EC2 Auto Scaling гарантирует, что у вашего приложения будет достаточно ресурсов для постоянной обработки текущего спроса на трафик. Это означает, что ваше приложение может добавлять или удалять новые и старые экземпляры соответственно в соответствии с требованиями приложения. Функция автоматического добавления и закрытия экземпляров по требованию называется лучшей доступностью приложения.
  2. Предположим, экземпляр со временем становится неработоспособным и используется, несмотря на этот факт. Шансы на его сбой увеличиваются. Вот еще один вариант использования Auto Scaling EC2. Он распознает, какой экземпляр неисправен или с технической точки зрения, какой экземпляр медленный, низкоэффективный и т. д., и автоматически завершит работу экземпляра и заменит его совершенно новым экземпляром. Кроме того, с помощью Amazon EC2 Auto Scaling пользователь может использовать несколько зон доступности. Если одна зона выходит из строя или дает сбой, EC2 Auto Scaling компенсирует это, запуская экземпляры в других зонах. Таким образом, трафик может быть перенесен в другую зону, в которую добавляются новые экземпляры, чтобы управлять трафиком до тех пор, пока аварийная зона снова не станет работоспособной.
  3. Автоматическое масштабирование очень экономично и должно использоваться, если вы не уверены в трафике, который будет получать ваше приложение. При необходимости Amazon EC2 Auto Scaling может динамически увеличивать и уменьшать емкость. Таким образом, пользователь может сэкономить деньги, поскольку только в соответствии со спросом будут создаваться новые экземпляры, и с них будет взиматься плата. Как только трафик к приложению уменьшается, некоторые инстансы прекращаются, и таким образом вы используете и платите за тот инстанс, который вам действительно нужен.

Как работает автомасштабирование EC2?

Amazon EC2 Autoscaling позволяет автоматически масштабировать инстансы в соответствии с потребностями. Даже при обнаружении каких-либо проблем модель заменяет неработоспособные экземпляры полностью функциональными. Для автоматизации управления парком инстансов EC2 Amazon EC2 Auto Scaling будет выполнять три основные функции:

  • Балансировка мощностей между различными зонами доступности. Если ваше приложение имеет три зоны доступности, Amazon EC2 Autoscaling поможет вам сбалансировать количество инстансов в трех зонах. В результате каждая зона получает не больше и не меньше экземпляров, чем другие, что обеспечивает сбалансированное распределение трафика и нагрузки.
  • Замена и восстановление неработоспособных экземпляров. Если экземпляры не проходят проверку работоспособности, функция автоматического масштабирования заменяет их работоспособными экземплярами. В результате проблема сбоя экземпляров уменьшается, и вам не нужно вручную проверять их работоспособность или заменять их, если они признаны неработоспособными.
  • Мониторинг работоспособности инстансов. Во время работы инстансов Amazon EC2 Auto Scaling обеспечивает их работоспособность и равномерное распределение трафика между ними. Он регулярно проверяет работоспособность экземпляров, чтобы узнать, не возникают ли у них какие-либо проблемы.