Я заметил, что расходы на трафик (передачу данных) нашего S3-сервиса для изображений постоянно растут. Тариф составляет $0,09 за ГБ, и сумма быстро накапливается. Думаю, я не единственный, кто сталкивается с этой проблемой? Сейчас я плачу Amazon $70 в месяц только за передачу данных — это больше, чем стоимость моей виртуальной машины. Стоимость хранения в S3 составляет всего $5 в месяц; вся проблема именно в плате за передачу.
У меня не настроено ни CDN, ни кэширование — просто стандартный Discourse, работающий на виртуальной машине Linode с использованием S3-бакетов для изображений. Что делают более крупные сайты с большим количеством изображений? Используют CDN (думаю, это снизит расходы)? Или переходят на Digital Ocean Spaces или Minio? Может быть, я что-то упускаю?
Хм… посмотрев на расходы на пропускную способность у Fastly и Amazon CloudFront (и других), я вижу, что они практически такие же, как и мои текущие 0,09 $/ГБ
Кажется, Cloudflare не взимает плату за пропускную способность?? Возможно, стоит попробовать именно их. Есть ли пост о том, как подключить Cloudflare для CDN изображений S3 в Discourse? Я вижу параметр s3_cdn_url, но не могу найти инструкций по его использованию (кроме того, что после настройки нужно будет пересобрать образы). Изучая Cloudflare, я понял, что, похоже, нужен свой домен, так как требуется изменить настройки DNS… значит, мне придётся создать CNAME, например s3-cloudflare.mydomain.com, который будет указывать на IP-адрес моего S3-бакета, настроить Cloudflare для обработки этого URL, установить s3_cdn_url в это значение, а затем пересобрать образы?
Вот страница поддержки Cloudflare, где, кажется, говорится, что это может сработать:
Я использую Cloudflare на своём сайте Discourse, и всё работает отлично. По сути, вы направляете весь свой трафик через Cloudflare и указываете, что нужно обрабатывать или кэшировать — и всё. Однако есть несколько моментов, которые стоит иметь в виду:
Настройте Cloudflare так, чтобы он НЕ кэшировал ничего (настройте исключения с помощью правил страниц, см. ниже).
Не позволяйте Cloudflare вмешиваться в ваш JavaScript — в частности, отключите Rocket Loader.
Я пока не уверен насчёт сжатия Brotli, поэтому отключил его.
Настройте правила страниц для кэширования директорий с аватарами и загрузками, как показано ниже (игнорируйте правило №1, оно специфично для сайта).
Cloudflare в настоящее время кэширует для меня чуть более 3 ТБ данных в месяц и довольно быстро отдаёт большие графические файлы.
Если вас больше интересует CDN, я также могу порекомендовать https://www.belugacdn.com/ (я не аффилирован с ними). Я использую их на крупной платформе WordPress, и производительность хорошая, при этом стоимость составляет лишь часть от расходов на некоторые другие CDN-платформы, которые я рассматривал (возможно, те ещё быстрее, но Beluga полностью удовлетворяет мои потребности).
В конце концов вы перешли с Amazon CloudFront, @scottfsmith?
Я оказываюсь в похожей ситуации из-за растущих расходов.
CloudFront для меня относительно новое решение. Последние несколько лет я использовал только бакет S3, но по рекомендациям отсюда я настроил CloudFront в прошлом месяце.
Всё это лишь перенесло расходы с передачи данных S3 на передачу данных CloudFront, а общий ежемесячный счёт остался прежним.
Я подхожу к уровню ежемесячных расходов на передачу данных, который становится unsustainable.
Я в той же лодке. Я тоже недавно перешёл на CloudFront, и расходы выглядят схоже. Я думал, что из-за локального кэширования будет какая-то экономия, то есть пропускная способность будет меньше, если одно и то же изображение многократно загружается из одного географического региона, но пока что похоже, что это не так.
Кажется, должен существовать какой-то другой CDN, который мог бы заменить CloudFront. Всё, что делает Discourse, — это переписывает URL-адреса изображений, так что это довольно универсально (похоже на то). Возможно, Cloudflare можно использовать только для изображений.
+98% нашего трафика приходится на Великобританию, и естественно, 98% нашего исходящего трафика S3 через CloudFront также направляется в Великобританию.
На данный момент я не вижу никакой выгоды от использования CDN. Если бы наш трафик был по всему миру, возможно, я бы увидел что-то другое.
В ближайшие дни я прочитаю о Cloudflare (как эти две компании смогли избежать таких похожих названий!) и посмотрю, смогу ли я найти какую-либо выгоду.
Stackpath CDN стоит 20 долларов в месяц с лимитом 1 ТБ, и во многие месяцы я превышаю этот лимит. Затем цена повышается до 200 долларов в месяц за лимит 20 ТБ, что больше, чем около 100 долларов в месяц, которые я плачу Amazon.
Возможно, в этом списке есть другой провайдер, который лучше, спасибо за напоминание о списке.
Что бы делал такой плагин? Он просто не загружал бы плагины для Imgur или работал бы как текущая система, загружая все изображения на Imgur через какой-то API-интерфейс, который, предположительно, существует?
Какова его ценность для вас? Сомневаюсь, что это имеет смысл для бизнес-модели CDCK, поскольку их платный хостинг делает Discourse доступным для всех нас, и их хостинг работает отлично и без плагина для Imgur.
Нет, мы кэшируем только директории uploads и avatars; см. наши правила выше. Если вы попытаетесь настроить что-то ещё, вы, скорее всего, нарушите работу Discourse.
Пока эта ветка снова активна, я должен добавить .. похоже, что Amazon CloudFront значительно снизил цены. Я не знаю, что именно они сделали, но мои средние расходы на AWS упали с примерно 80 долларов в месяц до 15 долларов в месяц. Это касается как S3, так и CloudFront только для изображений на сайте с очень большим количеством картинок.
Cloudflare работает отлично — просто отключите их функцию Rocket Loader.
Без каких-либо настроек это экономит половину трафика, идущего обратно на мой сервер.
Возможно, несколько лет назад Cloudflare плохо работал с Discourse, но сегодня это уже не так. Было бы неплохо, если бы мы перестали видеть сомнения на этот счёт. Если у кого-то есть конкретная проблема, им следует создать тему поддержки здесь, описав, что именно не работает.