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

Промахи в Cloudfront CDN

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

Проблема в том, что мы получаем много промахов от Cloudfront (около 25%), и мне непонятно, почему - поскольку нет новых фотографий или новых размеров, я подумал, что origin почти никогда не следует называть.

В начале origin не отправлял время истечения срока действия, а 8 апреля я добавил недельный срок действия без каких-либо последствий.

Почему так часто запрашивается происхождение?

Во-первых, я предполагаю, что у вас есть собственное происхождение и что это веб-сервер, такой как nginx, который обслуживает файлы с настройкой типа «истекает 1 нед.». Также знайте, что объем получаемого трафика также может влиять на соотношение попаданий и пропусков.

Для начала вам нужно увидеть, как Cloudfront видит ваши объекты, когда они обслуживаются из вашего источника. Я использую Chrome Devtools для загрузки объекта и просмотра заголовков (F12, перезагрузите браузер, щелкните вкладку «Сеть», щелкните актив, посмотрите вложенную вкладку «Заголовки»). Вы можете увидеть что-то вроде этого, которое я обрезал до соответствующих полей:

Age: 1091
Cache-Control:max-age=604800 
Cache-Control:public
Date:Thu, 10 Jul 2015 19:35:35 GMT
Expires:Thu, 17 Jul 2015 19:35:35 GMT
Last-Modified:Tue, 16 Jun 2015 18:00:59 GMT
X-Cache:Miss from cloudfront

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

Если это так, моя первая идея состоит в том, что вы сказали, что изначально у вас был другой срок действия, но затем вы изменили его на одну неделю. Я считаю, что если вы измените время истечения срока действия в своем источнике, но вы, по крайней мере, не «прикоснетесь» к своим файлам, чтобы обновить их дату изменения, Cloudfront не будет обновляться с вашим новым сроком действия. Вы можете установить его на 1 год, но если активы остаются такими же, как и раньше, Cloudfront продолжит проверять их по истечении срока их первоначальной загрузки.

По сути, это говорит о том, что вы конкурируете за пограничные ресурсы с другими веб-сайтами. Свободное пространство на краю ограничено, и менее часто используемый контент удаляется из краевого кеша. Ваш номер на самом деле неплохой. Мы видим около 70% пропусков в США.