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

S3 дешевле, чем DIY-решение EC2 (для небольших файлов)

Действительно ли дешевле размещать изображения и сценарии через S3, чем с экземпляром EC2, работающим с nginx / varnish / etc? ?

Мне кажется (но я только начинаю работать с AWS), что стоимость запроса будет основным фактором, если вы не используете спрайты или другие оптимизации ... или я что-то упускаю?

С S3 вы платите за передачу и хранение. С EC2 вы также платите за время работы инстансов. В любом случае вы платите за передачу и хранение, поэтому во всех случаях будет дешевле просто использовать S3 для хостинга файлов. EC2 всегда должен быть дороже, потому что вы платите за время работы инстанса в дополнение к хранению и передаче. Amazon имеет калькулятор цен которые вы можете использовать, чтобы играть с числами, исходя из вашего собственного варианта использования и предполагаемых требований к передаче и хранению.

Вы как бы пытаетесь сравнить здесь яблоки и апельсины. Сервисы Amazon EC2 (Elastic Compute Cloud) и S3 (Simple Storage Service) служат двум совершенно разным целям. S3 предназначен для избыточного хранилища и не является «сервером» как таковой. Да, если у вас есть веб-сервер, размещенный в другом месте, где вы могли бы использовать S3 как форму CDN, используя S3 вместе с Cloudfront, но основной целью является хранилище. EC2, с другой стороны, представляет собой VPS (виртуальный частный сервер), который может запускать демонов, таких как nginx, varnish, apache и т. Д. S3 сам по себе не может сделать это за вас.

Если вы создадите свой собственный AMI (образ машины Amazon) для EC2, вы будете хранить их в S3 и оплатить связанные с этим сборы за хранение. Экземпляр EC2 можно запускать вообще без использования S3. Однако, как уже упоминалось, экземпляры EC2 не сохраняют данные после выключения, когда экземпляр больше не работает. Чтобы данные сохранялись между запусками и остановками, вам нужно либо сохранить их на S3, либо использовать EBS (Elastic Block Store), который может сохранять данные за вас.

Существуют разные уровни ценообразования на входящую, исходящую и в пределах данного региона пропускную способность, а также на емкость хранилища, запросы ввода-вывода и т. Д. Это усложняется, и есть несколько калькуляторов, которые помогут вам в этом разобраться. Я написал свою собственную электронную таблицу с формулами, которые импортирую из файлов CSV для загрузки истории использования, чтобы помочь оценить будущие затраты на использование. Я управляю несколькими экземплярами серверов для клиента в рамках EC2 уже более 9 месяцев. Я обнаружил, что проще всего рассчитать стоимость времени выполнения экземпляра, поскольку это простая почасовая ставка за экземпляр. После этого объем EBS и емкость хранилища S3 легко вычислить, но запросы ввода-вывода и пропускная способность временами могут вызывать удивление.

Затраты на мое хранилище S3 обычно довольно незначительны (обычно <2 долларов в месяц), и я храню несколько AMI и некоторые документы, к которым имеют доступ серверы приложений, вместе с первоначальным запуском экземпляров. Мои экземпляры используют сервер Puppet, поддерживаемый на VPS за пределами Amazon, который также служит моим сервером мониторинга и сервером jumpbox. Выполняя в среднем около 7 экземпляров, я обнаружил, что мои запросы ввода-вывода составляют от 5 до 8 миллионов и стоят в среднем менее 1 доллара в месяц. За последние 6 месяцев я использовал в среднем около 10 ГБ в объемах EBS, а это стоит немногим более 1 доллара в месяц. Я использую тома EBS для своего статического содержимого вместе с файлами базы данных MySQL и двоичными журналами. Входящая передача данных составляет от 20 до 24 ГБ и в среднем составляет ~ 2,25 доллара в месяц, а исходящая - от 241 до 326 ГБ и в среднем составляет ~ 42 доллара в месяц. Моя региональная пропускная способность между экземплярами составляла от 130 МБ до 535 ГБ, поскольку не все мои экземпляры находятся в одних и тех же зонах доступности, и в среднем составляла ~ 2,45 доллара США в месяц. Все это говорит о том, что, поскольку я сказал, что почасовая ставка является наиболее простой для расчета, мы используем более 1700 долларов в месяц для самих инстансов EC2. В настоящее время мы стремимся перейти к зарезервированным инстансам вместо инстансов по требованию и должны снизить эту сумму примерно до 600 долларов в месяц после предварительной оплаты (6-9 тысяч долларов) за получение зарезервированного экземпляра.

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

Это также дает вам простой вариант использования CDN Amazon (CloudFront), если вы хотите еще больше повысить производительность загрузки для посетителей вашего сайта.

Вам необходимо учесть объем трафика, который будет передавать данные s3 на веб-сервер. ec2 вы платите почасово, но получаете 160 ГБ локального хранилища, s3 вы платите за хранилище и пропускную способность.

В целом я бы сказал, что для веб-сервера экземпляр ec2 будет дешевле или равен s3. Но взгляните на калькулятор цен, чтобы убедиться

Поскольку S3 по существу предоставляет распределенную сетевую файловую систему, попробуйте использовать узлы EC2 для ее создания.

MongoDB / GridFS будет убедительным сравнением.

Предполагается, что у S3 время от времени есть тайм-ауты чтения / записи, и создание собственного уровня кеширования также может помочь.