Инстансы AWS EC2 с автоматическим масштабированием и синхронизацией - PullRequest
1 голос
/ 07 октября 2019

У меня есть веб-приложение Node.js, в настоящее время работающее на одном экземпляре EC2 в AWS. Я думаю об использовании автоматического масштабирования с 2 или более экземплярами EC2, так как нагрузка на приложение увеличивается.

Я пытался что-то понять с помощью AWS Auto Scaling уже пару часов, но, похоже, нигде не могу найти ответ.

В настоящее время во многих случаях я использую SSH в своем экземпляре Ubuntu EC2, чтобы изменить некоторые вещи или выполнить команду deploy (которая получает последний код из github). Как это работает, если у вас есть, скажем, 4 экземпляра, работающие в режиме автоматического масштабирования?

Итак, если я подключусь по SSH к серверу и изменим файл server.js, что произойдет с другими 3 экземплярами?

Если это невозможно, каковы мои варианты выбора? Я видел много людей, которые видели, что использование S3 - это способ поддерживать синхронизацию, но я не до конца понимаю. Поэтому я должен сохранить весь свой исходный код на S3 и отредактировать его оттуда?

Ответы [ 2 ]

1 голос
/ 07 октября 2019

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

Существует многометоды для решения этой проблемы, например, используя AWS Code Deploy .

Вы также можете настроить что-либо с помощью сценария пользовательских данных EC2 в конфигурации автоматического масштабирования, которая будет запускаться на каждом сервере при их создании. Этот сценарий может извлекать последний код из Git или извлекать последний артефакт сборки из S3, а затем запускать приложение. Если у вас есть готовое к развертыванию обновление, вы просто помечаете текущие экземпляры как «нездоровые» и ждете, пока группа автоматического масштабирования автоматически заменит их новыми обновленными экземплярами.

0 голосов
/ 07 октября 2019

Вы можете использовать AWS EFS для размещения кода своего приложения, и все веб-серверы будут получать контент из EFS, а не с отдельного сервера. Таким образом, вам не нужно беспокоиться об изменении содержимого отдельного сервера.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...