Я настроил свою справедливую долю развертываний AWS; вот основы:
Хранилище данных
Если у вас есть данные, к которым часто обращаются , как вы, вероятно, знаете, лучше всего использовать базу данных. Это одна из самых привлекательных частей хостинга AWS. Ваши варианты примерно в порядке возрастания сложности / стоимости:
- SimpleDB - собственная база данных Amazon. Они дают вам HTTP API, который вы используете для чтения и записи ваших данных. Для него есть несколько библиотек rails, но в целом это не изящная вставка для rails.
- Amazon RDS - Amazon предварительно настроит для вас сервер баз данных, похожий на mysql. Это требует загрузки экземпляра сервера БД, поэтому сервер ценообразования не подходит для небольших сайтов. С другой стороны, он позволяет более легко масштабировать сервер БД.
- Прокрутите свое - планируйте исчезновение экземпляров Amazon EC2 в любой точке; поэтому локальное хранилище, которое вы получаете с экземплярами EC2, лучше всего рассматривать как большой временный каталог. Elastic Block Store - это решение Amazon; фактически это образ диска, который монтируют ваши экземпляры. Образы EBS живут независимо от экземпляров EC2, поэтому, если ваш сервер выходит из строя, вы можете подключить образ EBS к новому экземпляру EC2. Вы можете по существу свернуть свой собственный кластер базы данных, загрузив несколько экземпляров и настроив их для репликации друг друга. Это работает, но не изящно, и на самом деле его следует пытаться делать, только если вы не можете решить свою проблему менее экзотическими методами.
Amazon в значительной степени перечисляет эти опции, а также некоторые другие, которые не применимы к вам на http://aws.amazon.com/running_databases/
Редко измененные данные должны храниться в S3; Есть много рубиновых камней для легкого доступа к этому. Если ваш сайт полностью статичен на стороне сервера, вы даже можете запустить весь сайт с S3
Балансировка нагрузки
Amazon "Elastic Load Balancing" довольно эффективен при типичных требованиях балансировки нагрузки в сети. Обычно это простой выбор, если только у вас нет экзотических требований. Однако он не будет масштабировать ваш кластер для вас. Для автоматической загрузки и выключения экземпляров вы должны обратиться к собственному решению для автоматического масштабирования Amazon
Предостережения
Обязательно обратите внимание, в какой «Зоне доступности» (она же датацентр) вы находитесь. В некоторых случаях вы не можете совместно использовать ресурсы AWS между зонами доступности.
Обучение
Есть много учебных пособий, но в моем кратком поиске я не нашел ни одного, который был бы действительно великолепным или современным. Тем не менее, проверьте https://github.com/wr0ngway/rubber, который является инструментом ruby для развертывания приложений в EC2. Это даст вам большую часть пути туда.