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

Размещение веб-сайта с изображениями на Amazon Web Services

Я занимаюсь хостингом изображений. Я впервые создаю большой сайт, поэтому у меня мало знаний о создании надежного веб-сервиса, но я СЧИТАТЬ Я в этом разобрался.

Как мне настроить хостинг моего сайта для приема большого количества трафика? Вот о чем я думал. Скажите, хорошая ли это идея:

  1. Выберите любого дешевого провайдера, у которого есть php и mySQL.
  2. Храните только серверную часть этого дешевого провайдера (скрипты php, файлы конфигурации сервера, базу данных sql).
  3. Используйте Amazon S3 для хранения всех элементов внешнего интерфейса, таких как css, js, изображения и, конечно же, всех сохраненных изображений, которые загружают пользователи (это веб-сайт, на котором размещены изображения).

Это работает? Это означает, что затраты на большие объемы трафика полностью оплачиваются через Amazon S3, верно? Дешевый провайдер не должен понести значительных затрат, потому что все, что он делает, - это запускает скрипты и обновляет базу данных? Или это тоже будет складываться (и работать медленно)?

Стоит ли переместить базу данных в Amazon SimpleDB? Я также слышал, что могу запустить сайт с помощью Amazon EC2, но похоже, что это требует больших усилий для настройки (и стоит дорого). Думаю, то, что я спрашиваю, можно резюмировать так: какой самый экономичный способ надежно запустить веб-сайт, на котором размещены изображения?

Спасибо.

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

При этом я бы сначала проверил воду на каком-нибудь обычном виртуальном частном сервере (vps.net, linode.comи т. д. - Не одобрения, погуглите). Если вы растете достаточно быстро и похоже, что вы сможете хотя бы окупить расходы, вы можете перейти к описанному вами сценарию.


С точки зрения архитектуры я бы посоветовал, если вы переходите «в облако», вы должны пройти весь путь - перетаскивание данных туда и обратно в ваши серверные системы будет медленнее, если они не будут «рядом» с интерфейсом, и я считаю, что облачные провайдеры довольно щедры на пропускную способность, которая не покидает их сети.
Также извлеките урок из недавних сбоев, связанных с Amazon EBS, и убедитесь, что у вас есть соответствующий уровень избыточности в своих облачных сервисах. Когда вы теряете все их семейные фотографии, клиенты начинают плакать :-)

Итак, вот несколько моментов, которые могут вам помочь.

  1. Провайдер: для большей части клиентской части, если стоимость является вашим основным фактором, вам решать, какой провайдер соответствует вашим потребностям. Надежность, стоимость и масштабирование - все это факторы, которые вам необходимо учитывать.
  2. Обратите внимание: если пользователь не загрузит какую-либо программу на стороне клиента (Flash, JS и т. Д.), Ваши серверы должны будут получить файл, а затем загрузить его на S3 для них. Это вызовет большую нагрузку, а также расходы на полосу пропускания. Однако это также даст вам гораздо лучший контроль над тем, «что» и как можно загружать. Как только вы передадите контроль клиенту, вы не сможете по-настоящему контролировать то, что загружается.
  3. S3 отлично подходит для хранения статического контента, и он будет ключевым при создании такого сайта и удержании затрат на нужном уровне. Убедитесь, что вы правильно контролируете, у кого есть разрешения на загрузку в какие сегменты. Например, если у вас есть css и javascript в одной корзине, только вы должны иметь возможность загружать в это место, иначе злоумышленник может загрузить какие-то неприятные файлы для замены вашего контента. С другой стороны, если вы собираетесь разрешить пользователю загружать контент напрямую, чтобы сэкономить на пропускной способности, вам нужно будет убедиться, что это отдельная корзина, в идеале для каждого пользователя. Это нетривиально реализовать, и почти невозможно, если вы предоставите клиенту прямой доступ к загрузке.

В зависимости от конфигурации загрузки (клиент на стороне клиента или клиент на стороне сервера) ваши потребности будут разными. Клиентская сторона будет дешевле по сравнению с затратами на сервер, но имейте в виду, что кто-то, вероятно, найдет способ хранить любой тип файла, и вы будете нести ответственность за его модерацию. Для модели на стороне сервера будьте готовы к увеличению затрат на сервер с ростом пользовательского трафика, поскольку вам потребуется создать больше серверов для обработки запросов на загрузку.

После того, как у вас есть размещенный контент, вы также захотите изучить CDN (сеть доставки контента), такую ​​как Amazon CloudFront (если вы хотите остаться в стеке Amazon) или Akamai Networks. Сначала это увеличит ваши расходы, но сэкономит деньги на часто используемом контенте.

Amazon SimpleDB - интересный стиль баз данных. Он «в конечном итоге согласован», что означает, что данные, отправленные в базу данных, могут быть недоступны немедленно, как в Amazon S3. Если вы собираетесь использовать базу данных как способ синхронизации данных между несколькими узлами для многих транзакций в реальном времени, я бы не рекомендовал это.