Предостережения:
Как уже упоминалось предыдущий ответ, вы не должны использовать t1.micro экземпляров для любых производственных экземпляров.
- Как предыдущий ответ упоминалось, вы не должны использовать t1.micro экземпляров для любых производственных экземпляров
- Вы не можете (легко) автомасштаба экземпляры EC2, работающих под управлением MySQL. Если вы просто подумаете об этом, если у вас появилось несколько БД, данные не будут синхронизированы, и это будет беспорядок. Самый простой способ сделать это - использовать RDS и добавлять реплики по мере необходимости.
Теперь, чтобы создать экземпляр автоматической автозагрузки (при условии, что вы переместили вашу БД на RDS), на стороне AWS есть несколько шагов и несколько шагов на вашей стороне в отношении управления кодом/развертыванием.
Автомасштабирования включает в себя:
- Создание AMI вашего текущего экземпляра EC2. С экземпляром с поддержкой EBS данные/тома будут завернуты с AMI и будут развернуты при развертывании этого AMI. Однако, если вы внесли изменения в свой код, то, очевидно, этот код не будет обновлен, мы рассмотрим это ниже.
- Создайте конфигурацию запуска автосохранения - вы можете сделать это с помощью графического интерфейса пользователя на консоли AWS, хотя я все еще поклонник CLI. Конфигурация запуска определяет AMI для использования, размеры экземпляра и т. Д.
- Создайте группу автомасштабирования и примените к ней конфигурацию запуска. Когда вы создаете группу автомасштабирования, вы хотите указать ELB для добавления экземпляров, иначе они не будут доступны. Если вы используете балансировщик балансировки вашего собственного ролика, убедитесь, что экземпляр зарегистрировался на нем при запуске (используя cloud-init или что-то еще).
- Создайте аварийные сигналы Cloudwatch для действий масштабирования и масштабирования - это может быть привязано к CPU, сетевому вводу/выводу и т. Д. Вам понадобятся не менее 2 аварийных сигналов (один для масштабирования, один для масштабирования).
Теперь после того, как экземпляр, вы будете иметь свой веб-сервер, но он будет работать старый код:
- Предполагая, что вы версионности код на мерзавца, создайте ключ развертывания GIT и добавить его на сервер.
- Использование cloud-init для запуска
git pull
- код облака-init будет запускаться только один раз, чтобы он запускался и запускался с вашим последним кодом.
Все готово! Приведенные выше инструкции довольно высокого уровня. Вхождение в пошаговые детали потребует гораздо более продолжительного ответа, но с удовольствием предоставит объяснение по мере необходимости, дайте мне знать!
Не понял, что я оставил этот вопрос без ответа! Но ваш ответ кажется самым простым и легким для понимания, THX! Хотя @JaiGovindani также имел хороший смысл об использовании «аварийных сигналов Cloudwatch», чтобы вы могли указать, когда масштабироваться вверх и вниз. –
Да, сигнализация облачного времени является частью конфигурации группы Auto-scaler. Вам нужно будет создать не менее 2 политик (масштабирование вверх и вниз), которые будут активироваться с помощью указанных вами предупреждений. Я сосредоточил свой ответ на подготовке вашего приложения LAMP, чтобы он мог быть автоматически масштабируемым. В любом случае вы можете прочитать о его стороне AWS из документации. –
Год спустя, но вернулся из-за комментария - я должен не согласиться с утверждением, что использование автоматического масштабирования позволяет использовать микроустановки для производственных нагрузок. Если это оппортунистическая рабочая нагрузка, то хорошо, но если это какая-то рабочая нагрузка, требующая длительных циклов процессора, микро-это не путь. Для новичков или новых сервисов, которые пока не понимают ожидаемую рабочую нагрузку, микро-экземпляры могут быть проблематичными. –