Поиск по сайту:

Как использовать DigitalOcean Spaces в качестве CDN


DigitalOcean Spaces — это служба хранения объектов, совместимая с API-интерфейсами Amazon S3. Spaces включает в себя интегрированную CDN, которую вы можете включить без дополнительных затрат. Это повышает производительность, доставляя ваш контент с ближайших серверов к вашим пользователям.

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

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

Включение CDN

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

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

Чтобы настроить CDN для существующего пространства, перейдите на панель управления DigitalOcean, нажмите «Пространства» на левой боковой панели и перейдите к целевому пространству. Перейдите на вкладку «Настройки» в верхней части экрана, затем нажмите кнопку «Изменить» рядом с «CDN (сеть доставки контента)».

Раскрывающийся список «Использовать собственный субдомен» позволяет вам прикрепить собственный субдомен, который вы сможете использовать для доступа к содержимому Space. Это может выглядеть как my-space.example.com. DigitalOcean может автоматически генерировать SSL-сертификат через Let’s Encrypt, защищая трафик в вашем пространстве. Это требует, чтобы вы уже управляли записями DNS вашего домена с помощью DigitalOcean. Ручная загрузка SSL-сертификата предлагается в качестве альтернативного варианта, если вы используете другого провайдера.

Без собственного поддомена вам нужно будет использовать специальный адрес DigitalOcean cdn.digitaloceanspaces.com, когда вы хотите загружать контент через CDN.

Вот правильный URL-адрес, если ваше пространство называется my-space и находится в центре обработки данных NYC1:

my-space.nyc1.cdn.digitaloceanspaces.com

Отсутствие части адреса cdn приводит к тому, что вы попадаете в стандартную конечную точку Spaces без поддержки CDN. Это может быть распространенной ошибкой при настройке стороннего программного обеспечения — оба URL-адреса будут работать, но только вариант cdn дает вам преимущества пограничного кэширования.

Установка срока жизни кэша

Edge Cache TTL — это еще один параметр, который вы можете изменить при включении CDN. Это определяет, как долго отдельные пограничные узлы могут кэшировать ваш контент, прежде чем считать его устаревшим.

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

Долгоживущие большие ресурсы, такие как изображения и видео, выигрывают от увеличенного TTL. DigitalOcean позволяет использовать максимум 1 неделю в наборе параметров по умолчанию. И наоборот, для таких файлов, как документы или компоненты веб-страницы, которые должны часто изменяться, может потребоваться более короткий TTL. Это уменьшит задержку между загрузкой изменения и его просмотром пользователями.

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

Последний вариант — вручную переопределить настройку TTL для определенных элементов в вашем пространстве. Это достигается установкой поля метаданных max-age. Вы можете сделать это в панели управления Spaces или во время загрузки из клиента, совместимого с S3.

Найдите элемент, нажмите кнопку «Дополнительно» справа от его имени и выберите в меню «Управление метаданными». Нажмите «Добавить пользовательскую пару» и создайте новое поле с именем x-amz-meta-max-age. Установите желаемый TTL в секундах в качестве значения.

Удаление элементов из кэша CDN

Вы можете очистить кеш CDN с панели управления DigitalOcean. Доступны варианты полной очистки кеша или исключения отдельных элементов.

Чтобы инициировать полную очистку, перейдите в свое пространство через Spaces > <имя пространства>. Перейдите на вкладку «Настройки» вверху и перейдите к разделу «CDN (сеть доставки контента)». Нажмите кнопку «Очистить кэш» рядом с названием заголовка.

Это отобразит диалоговое окно, которое позволит вам выбрать каталоги для очистки из кеша. Выберите соответствующий уровень в иерархии, а затем нажмите «Очистить выбранные каталоги». Запрос на аннулирование кеша будет отправлен на пограничные серверы. Эффект должен быть почти мгновенный.

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

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

Отключение CDN пространства

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

Найдите свое пространство на панели управления DigitalOcean, перейдя в раздел «Пространства» > <название пространства>. Перейдите на вкладку «Настройки» в верхней части экрана, затем нажмите кнопку «Изменить» рядом с разделом «CDN (сеть доставки контента)».

Нажмите кнопку «Отключить CDN», а затем синюю кнопку «Сохранить», чтобы подтвердить изменения. Вам нужно будет ввести название вашего пространства, чтобы подтвердить свои намерения. Нажмите «Отключить», чтобы удалить ваш контент из CDN, отменить привязку пользовательских поддоменов и отозвать все выданные SSL-сертификаты.

Краткое содержание

CDN DigitalOcean Spaces повышает производительность и снижает использование полосы пропускания за счет кэширования содержимого хранилища объектов на локальных пограничных узлах, близких к вашим пользователям. Вы можете получить доступ к CDN через свой собственный поддомен или использовать cdn.digitaloceanspaces.com по умолчанию.

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