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

Заставить AWS CloudFront обновлять ресурсы из источника без запросов пользователей

Я развертываю распространение CloudFront для широко распределенной сети. Я использую свой собственный сервер в качестве источника, и я настроил срок действия кеша на настраиваемое значение (например, 24 часа). Все работает гладко для границ, используемых странами, которые генерируют высокий трафик, и для ресурсов, которые запрашиваются чаще, но я думаю, что это не так для (большой) части запросов, которые исходят из стран с низким трафиком.

Поскольку в сети несколько десятков тысяч ресурсов, и, учитывая органический (длинный хвост) характер трафика, к большинству из них обращаются всего 3-4 раза в день на каждое ребро. В этом случае, если я правильно понимаю, первый запрос имеет плохую производительность (он извлекается из источника), в то время как остальные 2-3 получают выгоду от облачного фронта. В этом сценарии примерно 30% трафика не использует кэширование CDN.

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

Если я правильно прочитал, нужно предварительно прогреть кеш. Официального способа предварительного прогрева кеша нет.

Однако вы можете использовать список из http://blog.domenech.org/2013/10/amazon-web-services-cloudfront-edgelocation-codes.html предварительно прогреть.

Для d709c28ax59vf.cloudfront.net, это будет:

  • d709c28ax59vf.ams1.cloudfront.net
  • d709c28ax59vf.ams50.cloudfront.net
  • ...

Вы можете написать сценарий для предварительного прогрева этого домена с помощью Host: d709c28ax59vf.cloudfront.net заголовок.