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

Какая конфигурация сервера Amazon EC2 лучше всего подходит для высокомасштабируемого распределенного php-приложения?

Я создаю приложение php, которое должно масштабироваться до «1 миллиона пользователей». Я знаю, что этот вопрос субъективен для приложения, но мне любопытно, какой тип общих настроек является наилучшей практикой.

В настоящее время я установил кластерную базу данных Amazon EC2 Mysql и имею 2 сервера веб-приложений с балансировкой нагрузки.

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

Это стандартный подход к проблеме? Как такие компании, как Foursquare, Facebook и т. Д., Справляются с масштабированием своей ИТ-инфраструктуры?

В настоящее время я управляю несколькими PHP-сайтами на Amazon. У меня есть ELB, настроенный перед экземплярами EC2, передающими приложение PHP. Затем у меня есть кластер ElastiCache, чтобы облегчить попадание в базу данных из приложения. Наконец, я использую для базы данных экземпляр MySQL RDS с несколькими зонами доступности. По мере увеличения нагрузки я могу увеличить количество экземпляров EC2 за ELB. Если вызовы базы данных замедляются, я могу либо добавить дополнительные узлы в кластер ElastiCache, либо запустить реплики чтения RDS для запросов только для чтения.

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