В частности, я ищу методы масштабирования веб-приложения, у которого нет центрального сервера базы данных, в облаке, но общие советы - это здорово.
Я наткнулся на GlusterFS, который выглядит великолепно, но я еще не понимаю, как он вписывается в архитектуру веб-приложения. это мне и интересно.
Спасибо за советы и ссылки.
Вы можете использовать эластичную балансировку нагрузки http://aws.amazon.com/elasticloadbalancing/ для балансировки нагрузки пару веб-серверов nginex, затем два или три сервера приложений с Thin (http://code.macournoyer.com/thin/) настроен как кластер. В качестве облачной СУБД вы можете использовать RDS, который является предложением Amazon для MySql. Вы можете поделиться сеансами, но используя хранилище сеансов AR или используя memchaced.
Thin - это сервер приложений для Ruby, но вы можете заменить Thin на Apache + mod_php, Tomcat или что-то еще.
Серверы приложений должны монтировать кластерную файловую систему, такую как GlusterFS, куда вы должны поместить свой код (тот же код для любого сервера).
Затем с помощью инструмента командной строки Amazon вы можете настроить, когда серверы должны создавать новые экземпляры, например, когда сервер достигает 70% использования ЦП.
Вы можете использовать Varnish для статического кеширования, установить в том же экземпляре веб-сервера или использовать его собственный экземпляр (лучше).
Существует множество решений, но самый простой - использовать Heroku.
Я бы подумал о Amazons SimpleDB, потому что вы уже находитесь в экосистеме aws. Но трудно сказать, не имея информации о вашем приложении, кроме «веб-приложения».