Недавно я испытал поток трафика в приложении Facebook, которое я создал (в основном ради образования, а не с намерением маркетинга).
Излишне говорить, что я не думал о масштабируемости, когда создавал приложение. Теперь я в состоянии, когда мой скудный виртуальный сервер, размещенный MediaTemple, не режет его вообще, и он действительно подходит к сырым ввода-выводам машины. Поскольку этот проект до сих пор так учился, я решил, что я возьму это как возможность понять платформу Amazon EC2.
Само приложение создается на PHP (с использованием Zend Framework) с бэкэндом MySQL. Я использую кэширование приложений, где это возможно, с memcached. Я провел выходные, играя с EC2, разворачивая экземпляры, устанавливая нужные пакеты и монтируя том EBS в экземпляр.
Но какой следующий логический шаг принесет хорошие результаты для масштабируемости? Я запускаю экземпляр AMI для MySQL и один для службы Apache? Или я просто повторяю экземпляры столько раз, сколько мне нужно, а затем выполняю какую-то балансировку нагрузки на лицевой стороне? В идеале, я хотел бы иметь централизованную базу данных, потому что я собираю статистику по всем строкам базы данных, однако это не является жестким требованием (возможно, существуют некоторые конкретные приложения, которые я мог бы придумать для этого)
Я знаю, что это, вероятно, не прямой ответ, поэтому мнения и предложения приветствуются.