Рекомендации по архитектуре и стратегии развертывания EC2

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

Эта архитектура может быть в порядке, если она не предназначена для развертывания. Каждый раз, когда один из этих сайтов / приложений изменяется, это означает повторное развертывание всего экземпляра вместе с 30 сайтами / приложениями, которые он размещает, вместо простого обновления.

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

1 ответ

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

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

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

Посмотрите на Elastic Beanstalk. Он пытается быть "готовым" механизмом развертывания для веб-сайтов (PHP, .NET, Ruby и т. Д.). Если все идет хорошо, вам не нужно входить в свой экземпляр. Он использует один (или более) экземпляров EC2 для каждого веб-приложения в зависимости от вашей конфигурации.

Недостатком этого является стоимость: вы будете платить больше, потому что вы используете больше экземпляров EC2. Но это компромисс для модульности и надежности.

Другие вопросы по тегам