Грубо, вы бы использовали низкоуровневый кеш, такой как Redis или Elasticache, для кеширования необработанных данных (например, результат запроса SQL);тогда как для кэширования всей HTML-страницы, на которой отображаются данные, вы использовали бы кэш более высокого уровня, например Nginx или Varnish.То, какой из них подходит, зависит от вашего варианта использования.Если у вас есть одна простая страница (или фрагмент страницы), которая содержит медленные данные, и этот контент отображается одинаково для всех пользователей, тогда может подойти кэш высокого уровня.Если контент подвергается множеству небольших изменений и форматов, которые делают кеш целой страницы очень фрагментированным, то кеш более низкого уровня будет уместным.
В действительности, эти технологии не привязаны к этому жестковысокий / низкий уровень разделения: вы можете хранить целые страницы в Redis и отдельные фрагменты данных в Varnish, так что это не так просто.Но в общем, решите что вы хотите кэшировать, прежде чем решить как кэшировать его.
Даже если вы решили, что кэшировать, выбор правильной технологии будетзависит от множества соображений.Elasticache в AWS имеет то преимущество, что полностью управляется и, таким образом, сэкономит ваше обслуживание, но, вероятно, будет самым дорогим в работе (по крайней мере, в малом / среднем масштабе).Кэширование Nginx с бэкэндом файловой системы, вероятно, будет самым быстрым и дешевым для реализации, но не будет хорошо масштабироваться (и будет неудобно проводить рефакторинг по мере увеличения вашего масштаба).Varnish и Redis, вероятно, лучше всего реализовывать как отдельные экземпляры EC2, поэтому расположитесь где-то посередине.