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

Как реплицировать приложение в инфраструктуре с балансировкой нагрузки

AWS использует AMI (Amazon Machine Image) для копирования сервера приложений при каждом развертывании нового узла (сервера).

Причина вопроса

Я хочу добиться автоматического масштабирования с помощью обычных выделенных серверов, Apis предназначены для автоматического создания и уничтожения сервера (все, что я хочу сказать, что я нахожусь на Не AWS env ), поэтому как лучше всего автоматически скопировать мое приложение на недавно развернутый сервер?

Создание AMI при развертывании нового узла (сервера) по умолчанию не выполняется автоматическая установка. Вы, безусловно, могли бы добиться этого, используя выбранный вами AWS SDK. Тип образа зависит от того, какой тип экземпляра EC2 вы используете. Лучшие практики AWS рекомендуют подключать ваш экземпляр в разных регионах с помощью автоматического масштабирования и запускать конфигурации с использованием ELB, чтобы обеспечить высокую доступность. Вы также можете сделать снимки, если это то, что вы ищете.

Обновленный ответ:

Это зависит от того, сколько времени вы хотите потратить на это. Вы можете использовать Cloudformation и Infrastructure в качестве методологий кода для программного создания среды. то есть такие вещи, как Ansible, Docker и т. д.

Вы также можете загрузить ec2 при развертывании с использованием пользовательских данных для копирования репо, настройки и т. Д.

Вероятно, самый быстрый способ - создать AMI вашего рабочего экземпляра EC2, а затем создавать новые экземпляры EC2 из этого AMI, вместо того, чтобы каждый раз начинать с нового экземпляра. Существуют также инструменты AWS, такие как Elastic Beanstalk, в зависимости от вашего стека, которые могут значительно сократить затраченное время.

Это также зависит от вашей архитектуры: чем больше у вас будет экземпляров EC2, вам придется учитывать такие вещи, как высокая доступность и отказоустойчивость, что затем заставляет вас настраивать автомасштабирование, запускать конфигурации и т. Д.

AWS AMI - это, по сути, клон корневого диска, такой как снимки состояния. AWS рекомендует создавать AMI после того, как они будут протестированы и готовы к развертыванию в вашей среде, хотя использование AMI процедуры AutoScaling имеет важное значение.

Требования: найти лучший сценарий для клонирования серверов приложений (без состояния) на собственном оборудовании, а не у какого-либо облачного провайдера.

Не зная достаточно о своем бэкэнде, можно применить только общие рекомендации:

  • Автоматизировать процедуру начальной загрузки и инициализации
  • Автоматизируйте этап развертывания, чтобы его можно было развернуть одним нажатием кнопки
  • Клонировать данный сервер приложений
  • На основе SLA выберите стратегию высокой доступности, которая соответствует вашим бизнес-процессам

Первые 3 шага являются наиболее индивидуальными и сложными во многих средах. Последнюю можно решить, используя общие шаблоны:

  1. Без балансировщика нагрузки, но с переключением на отказ DNS (циклический алгоритм с проверкой работоспособности)

  2. Load Balancer + DNS Failover или технология виртуального IP

Чтобы узнать больше о DNS и LB, просмотрите последнее обсуждение здесь: Можно ли использовать несколько балансировщиков нагрузки для перенаправления трафика на мои серверы приложений?