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

Как лучше всего управлять несколькими серверами и совместно использовать исходный код в хранилище в AWS?

У меня под управлением монолитный веб-сайт электронной коммерции, и я хотел бы расширить его до нескольких серверов, используя балансировщик нагрузки и один сервер базы данных.

load balancer    -> server 1  -> db server  
                |             ^
                L-> server 2  |

и на каждом сервере есть веб-приложение для электронной коммерции, и исходные коды этих веб-приложений идентичны.

Эти идентичные исходные коды заставляют меня думать, что я могу использовать хранилище AWS EFS для совместного использования одного и того же исходного кода на нескольких серверах, так что мне нужно управлять только одним исходным кодом.

Однако я не совсем уверен, что такая структура сервера хороша или плоха.

Пожалуйста, дайте мне знать что-нибудь получше или что нужно учесть, прежде чем внедрять эту структуру сервера.

Спасибо!!

Почему у вас на сервере исходный код? Это PHP или интерпретируемый язык? Если это скомпилированный язык, держите исходный код подальше от серверов.

Я думаю, что лучшей практикой будет держать ваш код в системе контроля версий, например AWS CodeCommit, а затем создавать / развертывать с помощью CodeBuild и CodePipeline. Затем у вас есть два основных варианта развертывания, если вы хотите автоматическое масштабирование:

  • Создавайте «золотой имидж» AMI после каждой регистрации. Когда требуется новый экземпляр, автоматическое масштабирование раскручивает его от нового изображения
  • Имейте систему, которая запускает новый экземпляр на основе простого образа сервера или настроенного AMI, который загружает исходный код, компилирует его, если требуется, а затем помещает в балансировщик нагрузки. Это не так сложно, как кажется.