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

Простите за очень простой характер этого вопроса, но какие варианты доступны и какие лучше всего работают в GCE для масштабирования данных между виртуальными машинами? В качестве примера предположим, что у меня есть 1 виртуальная машина веб-сервера, на которой работает Apache с сайтом, расположенным в /var/web/mysite/, но мне нужно обрабатывать дополнительный трафик, поэтому я хочу добавить 2-й веб-сервер.

Меня больше интересует, как управлять хранением данных загруженных пользовательских файлов с веб-сайта, а также доступ для чтения к HTML, CSS и изображениям веб-сайта в /var/web/mysite/, чем кластеризация самого программного обеспечения веб-сервера на данный момент.

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

Предположения:

  • Существующий веб-сервер может потерпеть некоторое время простоя, чтобы его можно было перенастроить.
  • Существующий код сайта нельзя легко переписать для использования Cloud Storage или Datastore API.
  • Добавления дополнительных vRAM и vCPU к существующему серверу недостаточно (масштабирование)
  • Я хотел бы, чтобы пользовательский интерфейс был прозрачным в том смысле, что им не нужно посещать www2.site.example.com, потому что у него есть файл, который он загрузил, или для продолжения сеанса.

person mobcdi    schedule 02.08.2013    source источник
comment
К сожалению, переписывание кода для использования облачного хранилища — это то, что вам определенно следует здесь делать.   -  person Thomas Orozco    schedule 21.08.2013


Ответы (1)


Это во многом зависит от того, какой тип базы данных вы используете. Исходя из ваших предположений, я предполагаю, что вы используете какой-то бэкэнд SQL в своем коде. Самые популярные традиционные SQL-серверы, такие как MySQL и PostgreSQL имеют параметры репликации; см. также Slony.

Просто найдите хранилище данных/репликацию базы данных; есть много вариантов.

person Feczo    schedule 26.08.2013