Использование CDN

Зачастую облачное хранилище используется для организации массовой раздачи файлов (графики, картинок, CSS сайта, видео) большому количеству географически распределенных клиентов. Как правило, это файлы большого объема: например, фотографии, аудио- и видеозаписи, типографские макеты и так далее, их можно загружать на высокой скорости из любой точки планеты, используя CDN.

CDN (content delivery network) - географически распределенная сеть доставки контента, состоящую из основного узла (англ. origin) и кэширующих точек присутствия (англ. edges) в разных уголках мира.

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

Преимущества CDN, получаемые владельцами сайтов:

  • увеличение скорости доставки контента;

  • снижение нагрузки на основной сервер - весь тяжелый контент скачивается с кэширующих серверов;

  • снижение расходов на развитие инфраструктуры.

Подключение CDN

Для начала использования CDN достаточно выполнить следующие действия:

  1. Создайте публичный контейнер и загрузите файл.

  2. Откройте ссылку на файл, нажав на соответствующую кнопку.

    image

  3. В открывшемся окне отобразится список ссылок на файл.

    image

  4. Для активации CDN скопируйте соответствующую ссылку, нажав кнопку Копировать и добавьте ссылку в адресную строку браузера.

Файл будет доставлен на ваш компьютер через кэширующие серверы Akamai. Первоначально объект будет загружен в кэширующий слой из Облачного хранилища, но последующие запросы к этому файлу будут обработаны уже напрямую из кэша.

Проверить, через какой сервер раздается файл, можно в консоли, введя команду: 

dig <your_subdomain>.selcdn.com

Результат вывода с akamai.net. :

...
;; ANSWER SECTION:
<your_subdomain>.selcdn.com.          600    IN    CNAME         selectel.inst.mdc.edgesuite.net.
selectel.inst.mdc.edgesuite.net.     9730    IN    CNAME         a610.g.akamai.net.
a610.g.akamai.net.                     6     IN     A            188.43.75.98
a610.g.akamai.net.                     6     IN     A            188.43.75.96
...

Для просмотра обращения по ссылке с указанием .ru введите команду:

dig <your_subdomain>.selcdn.ru

Результат вывода команды с адресами selcdn.ru:

...
;; ANSWER SECTION:
<your_subdomain>.selcdn.ru.        600 IN   CNAME    selcdn.ru.
selcdn.ru.                         225 IN   A        188.93.16.238
selcdn.ru.                         225 IN   A        188.93.16.237
selcdn.ru.                         225 IN   A        188.93.16.236
selcdn.ru.                         225 IN   A        188.93.16.235
...

Подключение общего SSL для CDN

Если вам требуется раздавать файлы через CDN по протоколу https с использованием общего сертификата SSL, вы можете отправить запрос  через тикет-систему, указав в нем:

  1. Просьба о необходимости поключения пользовательского домена.
  2. Указать, к какому контейнеру подключить домен.
  3. Придумать и указать префикс *** либо полный домен вида ***-a.akamaihd.net.

После подключения необходимый домен отобразится в поле Дополнительные домены в интерфейсе панели управления.

image

Для отключения дополнительного домена необохимо также отправить тикет с соответствующим запросом.

Потребление

На вкладке Потребление в Облачном хранилище можно просмотреть потребление и списания за каждую составляющую облачного хранилища CDN.

image

Как уже было отмечено, при первоначальном обращении к объекту через CDN выполняется загрузка этого объекта в кэш. Этот трафик оплачивается так же, как если бы файл был отдан напрямую из origin. Дополнительно оплачивается трафик CDN.

При последующих обращениях к файлу кэширующие серверы будут отдавать его напрямую, минуя обращения к origin-серверу – оплачиваться будет только трафик CDN.

Подробнее рассчитать стоимость облачного хранилища с необходимыми параметрами можно с помощью калькулятора ресурсов.

Тарификация услуги CDN происходит следующим образом: при любом обращении к объекту в облачном хранилище через кэширующий слой происходит проверка наличия этого объекта в кэше. Ключом является имя объекта со всеми query-параметрами, переданными в запросе. Если объект найден, он отдаётся сразу, в биллинге учитывается трафик от edge-серверов CDN до потребителя. Если не найден, выполняется запрос в origin – облачное хранилище Селектел. Объект отдаётся запрашивающему серверу, в биллинге учитывается GET запрос и трафик от облачного хранилища до кэширующего слоя. После этого объект отдаётся потребителю, в биллинге учитывается трафик CDN. 

Тарификация CDN может происходить с задержкой (до недели). Это обусловлено особенностями получения данных о потреблении от партнеров.

Очистка кэша

CDN кэширует данные для того чтобы быстрее их отдавать. Если данные были обновлены, то можно не ждать, пока кэш CDN обновится в течении суток и обновить его самостоятельно.

На вкладке Настройки хранилища в Облачном хранилище можно сбросить кэш CDN для заданных адресов.

image

Для этого укажите в соответствующем поле адреса, которые нужно изъять из кэша, и нажмите кнопку Очистить кэш.

image

Среднее время сброса кэша в настоящее время составляет 5-7 секунд. В исключительных ситуациях кэш CDN будет очищен в течении 15 минут.

Сброс кэша CDN через API

Кэш CDN можно сбросить через консоль, используя команду:

curl -i -X PURGE https://api.selcdn.ru/v1/cdn -H "X-Auth-Token: $token" -d $'https://ххххх.selcdn.com/container1/file1'

Результат будет выглядеть следующим образом:

HTTP/1.1 200 OK
Date: Mon, 16 May 2016 09:45:15 GMT
Content-Length: 268
Content-Type: text/plain; charset=utf-8
{"estimatedSeconds": 5, "progressUri": "/ccu/v2/purges/e4561042-1b4a-11e6-9024-f3cf5304c77a", "purgeId": "e4561042-1b4a-11e6-9024-f3cf5304c77a", "supportId": "17PY1463391915374207-348128448", "httpStatus": 201, "detail": "Request accepted.", "pingAfterSeconds": 300}

Внимание! Очистка кэша CDN осуществляется примерно через 5-7 секунд после выполнения запроса.

Подробнее про API Облачного хранилища.

Отключение CDN

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