Оптимизация затрат на CDN с помощью Amazon Route 53

admin

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

Вспомним, что CDN – это просто сеть компьютеров, которые отдают контент посетителям сайта:

Сколько что стоит

Сейчас сервер средней конфигурации, [https://selectel.ru/services/dedicated/ например в Селектеле] стоит около $250 в месяц. Обычно такие сервера имеют полосу пропускания в 100Мб и довольно большой предел по месячному трафику (иногда даже без него).

Это значит, что за $250 вы сможете обслужить отдачу приблизительно 5…10 млн фотографий в сутки (около 1 Тб, при среднем размере фотки в 250 Кб).

При этом, если использовать [https://aws.amazon.com/ru/cloudfront/pricing/ Cloudfront] для такой же задачи, обслуживание 30 Тб в месяц обойдется в 10 раз дороже.

Использование частичной раздачи

CDN будет очень невыгоден, если ваша аудитория распределена, но имеет точки концентрации. Например:

  • Германия: 50%
  • Нью Йорк: 40%
  • Остальные локации: 10%

В этом случае будет разумно:

  • Поставить сервера, отдающие контент в Германии и Нью Йорке.
  • Для запросов из других географий использовать CDN.

Т.е. иметь структуру, в которой часть запросов обслуживает CDN, а часть – наши сервера:

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

Пример реализации на основе Amazon Route 53

Для реализации схемы нам понадобится провайдер Geo DNS, например [https://aws.amazon.com/route53/ Amazon Route 53]. Схема решения будет следующая:

  • Необходимо создать новый поддомен на основном домене. У нас это будет testi.onthe.io.
  • Для него необходимо создать CNAME запись типа Geolocation на все локации по умолчанию (Default). Она должна указывать на сабдомен вашего CDN провайдера:
  • Теперь для локаций, в которых стоят наши сервера, необходимо создать отдельные CNAME записи. В примере запись для Северной Америки:
    ## Вместо “CDN Provider” должен быть (саб)домен CDN провайдера, увеличить

Теперь домен testi.onthe.io будет отдавать контент следующим образом:

  • Если посетитель запрашивает контент с Северной Америки, он будет раздаваться сразу с домена i.onthe.io (наши сервера).
  • Если контент запрашивается из другой страны, запрос будет обслужен провайдером CDN.

А это значит, что мы не будем платить CDN провайдеру за трафик, который можем сами обслужить и сделать это эффективнее.

<h2>TL;DR

Затраты на CDN можно существенно сократить, если ваша аудитория имеет точки концентрации. Тогда для части аудитории можно будет отдавать контент со своих серверов, а для другой части – с помощью CDN. Для этого потребуется арендовать несколько серверов и использовать Geo DNS.

Останні статті

Что такое прокси-сервер: пояснение простыми словами, зачем нужны прокси

Прокси (proxy), или прокси-сервер — это программа-посредник, которая обеспечивает соединение между пользователем и интернет-ресурсом. Принцип…

21.11.2024

Что такое PWA приложение? Зачем необходимо прогрессивное веб-приложение

Согласитесь, было бы неплохо соединить в одно сайт и приложение для смартфона. Если вы еще…

19.11.2024

Как создать игру на телефоне: программирование с помощью конструктора

Повсеместное распространение смартфонов привело к огромному спросу на мобильные игры и приложения. Миллиарды пользователей гаджетов…

17.11.2024

Google Bard: эффективный аналог ChatGPT

В перечне популярных чат-ботов с искусственным интеллектом Google Bard (Gemini) еще не пользуется такой популярностью…

14.11.2024

Скрипт и программирование: что это такое простыми словами

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

12.11.2024

Дедлайн в разработке: что это такое простыми словами

Дедлайн (от англ. deadline — «крайний срок») — это конечная дата стачи проекта или задачи…

11.11.2024