Небольшой вопрос: может ли Varnish кэшировать объекты S3? Или это работает только для статических файлов на сервере?
Varnish будет кэшировать файлы, которые обслуживаются через него (при условии, что он настроен для этого).
Типичная настройка будет иметь внутренний сервер, предоставляющий контент, и настройку Varnish в качестве кэширующего слоя перед сервером. Таким образом, Varnish можно настроить для кеширования как статического, так и динамического содержимого.
В случае с S3 он варьируется. Если вы обслуживаете свой контент непосредственно из S3 (т.е. URL вашего ресурса указывает на S3), Varnish не участвует и не будет кэшировать контент.
С другой стороны, если ваш сервер получает доступ к файлам S3 локально (например, ваше приложение читает файл или вы используете что-то вроде s3fs для локального монтирования корзины S3) и обслуживает файлы из него, тогда Varnish можно использовать для кэширования файлов. .
Хотя, возможно, возникает вопрос о цели. Обслуживание из S3 должно быть более масштабируемым, чем попытки реализовать собственное кэширование с помощью Varnish. Единственным преимуществом может быть сохранение поиска в DNS (что, возможно, подходит для небольшого количества мелких элементов). (Лучшей альтернативой кеширования может быть Cloudfront, но для небольшого количества файлов S3 часто работает лучше).