Я новичок в CDN и экспериментирую с CloudFront. Я все настроил, и все, кажется, работает нормально. Я могу создать статическое изображение на странице и получить к нему доступ через мой дистрибутив CloudFront. Я использую пользовательское происхождение (т.е. не ведро s3).
Я боюсь, что мне может быть хуже с точки зрения производительности, хотя. У меня есть тестовая страница, которая загружает те же 20 или около того изображений с и без CDN. Глядя на сетевую панель в Firebug, при первой загрузке этой страницы изображения, которые загружаются непосредственно с исходного сервера, появляются намного быстрее. При последующих загрузках страницы преимущества CDN становятся очевидными - после 3-5 обновлений CDN работает лучше, чем исходный сервер.
Таким образом, я вижу, что на популярной странице нашего сайта, которая постоянно посещается, это будет полезно. И я должен ожидать выгоды, потому что я нахожусь в Сиэтле (в двух шагах от Amazon), а мой сервер находится в CA.
Дело в том, что если я покидаю страницу на несколько минут, а затем перезагружаюсь, все возвращается на круги своя, а CloudFront хуже, чем исходный сервер. Это ожидается? Неужели вещи так быстро выпадают из CDN-кэша?
Возможно ли, что что-то в моих настройках ухудшает производительность? Или реальность заключается в том, что CDN будет исключительно позитивным для контента, к которому в настоящее время обращаются в среднем каждые несколько секунд?
(кросс-пост с форума AWS, потому что я был испорчен навсегда по срокам выполнения SO)
ОБНОВИТЬ:
Ниже приведены два хороших ответа, на которые стоит обратить внимание, если у вас есть вопросы о производительности CloudFront. Недавно я нашел одно объяснение моей конкретной проблемы, хотя оно не упоминалось. Я оставил TTL на 5 минут в качестве оплошности. Так как я также использую пользовательское происхождение, есть дополнительный обходной путь к авторитетному серверу имен, чтобы преобразовать его в настоящий домен Amazon CloudFront. Теперь, когда настройка TTL вернулась к 12 часам, кажется, что длительные нагрузки происходят реже.
источник
Ответы:
Cloudfront устанавливает заголовок в ответах, таких как «X-Cache: Hit from cloudfront» в ответах. Предположительно, он скажет «Мисс», если ваш файл не был в кеше узла, на который вы были перенаправлены.
Возможно, ваши файлы просто недостаточно популярны, поэтому они извлекаются из кэша CloudFront более популярным контентом, даже если 24 часа не прошло. Также возможно, что перегрузка ввода-вывода или некоторые другие обстоятельства внутри конкретного узла CloudFront замедляют доступ. Cloudfront очень недорогой по сравнению с Akamai или LimeLight. Наихудшая производительность и гарантированный уровень обслуживания являются двумя причинами использования более дорогих плееров.
Я бы провел тестирование, поместив только один популярный файл в облачный фронт в производственном режиме, а затем использовал бы периодические тесты, чтобы увидеть, показывает ли CloudFront хиты (также записывать общее время транзакции).
источник
Это возможно. Однако одной из целей CDN является масштабируемость. Вы можете ожидать, что CDN будет выполнять то же самое, если вы одновременно выбрасываете 100 посещений или 1 миллион посещений.
Что касается ваших настроек, я ничего не могу узнать из предоставленной вами информации, но я думаю, что вышеизложенный момент делает CDN таким ценным. Если вы создаете сайт, который не получает много трафика, вам может быть лучше без CDN. Тем не менее, CDN обеспечит меньшую нагрузку на ваш веб-сервер, если вы получаете большой трафик, потому что вы передаете подачу мультимедиа другому серверу. И последнее замечание: хороший CDN (а Amazon - это) будет использовать их обширную сеть для обслуживания вашего контента из ближайшего к запрашивающему места. Во многих случаях они могут обслуживать контент от провайдера-запросчика, что означает ОЧЕНЬ быстрое время загрузки.
Надеюсь, это поможет.
источник
Я неправильно понял? Разве управление кэшем не управляет тем, как долго объекты живут в периферийных местоположениях, прежде чем периферийные местоположения перезагружают их из S3? Так что, несомненно, они имеют отношение к вашей ситуации, используете ли вы S3 или ваше собственное происхождение? Нет?
В разделе часто задаваемых вопросов по Amazon говорится: «В. Как долго Amazon CloudFront будет хранить мои файлы в периферийных местоположениях? По умолчанию, если не установлен заголовок элемента управления кэшем, каждое пограничное местоположение проверяет наличие обновленной версии вашего файла всякий раз, когда он получает запрос, превышающий Через 24 часа после предыдущего раза он проверил источник на наличие изменений в этом файле. Это называется «сроком действия». Вы можете установить этот срок действия как 1 час или столько, сколько хотите, установив заголовки элементов управления кэшем для своих файлов в вашем источнике. Amazon CloudFront использует эти заголовки элементов управления кэшем, чтобы определить, как часто необходимо проверять Происхождение обновленной версии этого файла. Если ваши файлы меняются не очень часто, рекомендуется установить длительный срок действия и внедрить систему управления версиями для управления обновлениями ваших файлов. "
[Я предполагаю, что последнее предложение означает «неудача, если вы установите 50 лет, а затем захотите изменить файл».]
Разве основной смысл использования CDN заключается в том, что он содержит статический контент? Если это так, поможет ли это использовать значительно более длительный TTL, чем один день? Для практически всего (всех изображений и CSS) я использую Cache-Control = "max-age = 604800, public, must-revalidate" (т.е. 1 неделя). По моему опыту, файлы определенно могут занять неделю, чтобы измениться, если я загружу новые версии на S3.
Надеюсь это поможет. [Кстати: по вашему более общему вопросу, я тоже задаюсь вопросом, помогает ли CDN работать так же эффективно, как вы думаете. Я собираюсь переместить весь свой сайт (включая CDN) на сверхбыстрый выделенный сервер и провести некоторые тесты, чтобы выяснить это.]
источник
Причины использовать CDN, если вы ожидаете
К вашему веб-сайту обращаются нечасто, как в вашем случае, но у нас есть настройка службы мониторинга, которая запрашивает наш веб-сайт по всему миру. Таким образом, он сохраняет кеш CDN в тепле. Я также хотел бы поделиться нашим примером, который является простым и демонстрирует возможности CDN.
Более того, мы ожидаем, что ежемесячная плата в размере 2,2 $ в отличие от 7 $ для Godaddy Server (который не может справиться с скачками)
источник