Назад | Перейти на главную страницу

Следует ли AWS CloudFront * увеличивать * время загрузки редко используемых файлов?

Я новичок в CDN и экспериментирую с CloudFront. Я все настроил, и все работает нормально. Я могу создать статическое изображение на странице и получить к нему доступ через свой дистрибутив CloudFront. Я использую настраиваемое происхождение (т.е. не ведро s3).

Я беспокоюсь, что мне может быть хуже с точки зрения производительности. У меня есть тестовая страница, которая загружает те же 20 или около того изображений с CDN и без него. Глядя на сетевую панель в Firebug, когда я впервые загружаю эту страницу, изображения, которые загружаются непосредственно с исходного сервера, приходят намного быстрее. При последующих загрузках страницы преимущества CDN становятся очевидными - после 3-5 обновлений CDN работает лучше, чем исходный сервер.

Итак, я вижу, что на популярной странице нашего сайта, которая постоянно посещается, это будет преимуществом. И я должен ожидать выгоды, потому что я нахожусь в Сиэтле (за углом от Amazon), а мой сервер находится в Калифорнии.

Дело в том, что если я покидаю страницу на несколько минут, а затем перезагружаюсь, все возвращается на круги своя, а CloudFront хуже, чем исходный сервер. Ожидается ли это? Неужели что-то так быстро выпадает из "кеша" CDN?

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

(перекрестная публикация с форума AWS, потому что я был навсегда испорчен временем обработки SO)

ОБНОВИТЬ:

Ниже приведены два хороших ответа, на которые стоит обратить внимание, если у вас есть вопросы о производительности CloudFront. Я недавно обнаружил, что одно объяснение моей конкретной проблемы не упоминалось. Я оставил TTL на 5 минут по недосмотру. Поскольку я также использую настраиваемое происхождение, существует дополнительный путь к авторитетному серверу имен и обратно, чтобы разрешить его до фактического домена Amazon CloudFront. Теперь, когда значение TTL вернулось к 12 часам, кажется, что длительные нагрузки случаются реже.

Это возможно. Однако одной из целей CDN является масштабируемость. Вы можете ожидать, что CDN будет работать так же, если вы совершите 100 посещений одновременно или 1 миллион посещений одновременно.

Что касается вашей настройки, я ничего не могу знать о предоставленной вами информации, но я думаю, что именно этот момент делает CDN настолько ценным. Если вы создаете сайт, который не получает большого трафика, возможно, вам будет лучше без CDN. Однако CDN снизит нагрузку на ваш веб-сервер, если вы получите большой трафик из-за того, что вы передаете обслуживание своего мультимедиа другому серверу. И последнее: хороший CDN (как и Amazon) будет использовать свою обширную сеть для обслуживания вашего контента из ближайшего к запрашивающему местоположения. Во многих случаях они могут обслуживать контент от провайдера запрашивающего, что означает ОЧЕНЬ быстрое время загрузки.

Надеюсь, это поможет.

Cloudfront устанавливает заголовок в ответах, например «X-Cache: Hit from cloudfront». Предположительно, он скажет «Miss», если ваш файл не находится в кеше узла, на который вы были направлены.

Возможно, ваши файлы просто недостаточно популярны, поэтому они будут выброшены из кеша CloudFront более популярным контентом, даже если не прошло 24 часа. Также возможно, что перегрузка ввода-вывода или некоторые другие обстоятельства внутри определенного узла CloudFront замедляют доступ. Cloudfront очень недорогой по сравнению с Akamai или LimeLight. Наихудшая производительность и гарантированный уровень обслуживания - две из причин использования более дорогих плееров.

Я бы провёл тест, поместив только один популярный файл в облачный фронт при производстве, а затем использовал бы периодические тесты, чтобы проверить, показывает ли CloudFront попадания (также записывая общее время транзакции).

Я неправильно понял? Разве кеш-контроль не управляет тем, как долго вещи живут в периферийных местоположениях, прежде чем пограничные местоположения перезагрузят их из S3? Так что, безусловно, они имеют отношение к вашей ситуации, используете ли вы S3 или ваше собственное происхождение? Нет?

В Amazon FAQ говорит: «В. Как долго Amazon CloudFront будет хранить мои файлы в периферийных местоположениях? По умолчанию, если заголовок управления кешем не установлен, каждое пограничное местоположение проверяет наличие обновленной версии вашего файла всякий раз, когда оно получает запрос более чем через 24 часа после в прошлый раз он проверил источник на предмет изменений в этом файле. Это называется «сроком действия». Вы можете установить этот срок действия не более 1 часа или столько, сколько хотите, установив заголовки элементов управления кешем для файлов в вашем источнике. Amazon CloudFront использует эти заголовки элементов управления кешем, чтобы определить, как часто необходимо проверять origin для обновленной версии этого файла. Если ваши файлы меняются не очень часто, рекомендуется установить длительный срок действия и внедрить систему управления версиями для управления обновлениями ваших файлов ".

[Я предполагаю, что последнее предложение означает «не повезло, если вы установите 50 лет, а затем захотите изменить файл».]

Разве основной смысл использования CDN не в том, что в нем размещается статический контент? Если да, поможет ли использование значительно большего времени жизни, чем один день? Практически для всего (всех изображений и CSS) я использую Cache-Control = "max-age = 604800, public, must-revalidate" (т.е. 1 неделя). По моему опыту, файлы определенно изменяются в течение недели, если я загружаю новые версии на S3.

Надеюсь это поможет. [BTW: Что касается вашего более общего вопроса, мне тоже интересно, помогает ли CDN производительности так сильно, как вы думаете. Я собираюсь переместить весь свой сайт (включая CDN) на сверхбыстрый выделенный сервер и провести несколько тестов, чтобы выяснить это.]

Причины использования CDN: если вы ожидаете

  • Статический контент - нечастые или контролируемые обновления
  • Просмотрели по всему миру
  • Используется часто

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

Более того, мы ожидаем ежемесячную плату в размере 2,2 доллара США, а не 7 долларов за сервер godaddy (который не может справляться с скачками).