База знаний

Список статей
Наверх

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

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

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

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

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

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

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

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

Получение доступа к объектам через кэширующий CDN слой

Для того чтобы начать пользоваться CDN достаточно загрузить файл в публичный контейнер Облачного хранилища и CDN автоматически подключится. Далее можно использовать домен вида ******.selcdn.com, где ****** - это уникальный номер, автоматически сгенерированный для вашего аккаунта в Облачном хранилище.

Для проверки работоспособности выполните следующие действия:

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

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

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

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

Файл будет доставлен на ваш компьютер через кэширующие серверы Akamai.

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

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

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, вы можете заказать домен третьего уровня вида ***-a.akamaihd.net. Подключения к нему будут защищены общим TLS сертификатом нашего партнёра Akamai Technologies. Для получения такого такого доступа необходимо отправить запрос через тикет-систему, указав в нем:

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

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

image

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

Потребление

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

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

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

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

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

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

Очистка кэша

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

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

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

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 переведите контейнеры в приватное состояние, удалите публичные ссылки и отвяжите пользовательские домены.