我有一个ECS,它实现了REST,它做了一些相当繁重的计算,但是可以从请求级别的缓存(因为它会接收许多相同的请求)中获得巨大的收益。
我目前已经在ECS映像本身上实现了缓存,但这并不是最优的,因为缓存显然不是跨ECS任务共享的,如果任务应该停止,缓存也不是永久的。
那么,在AWS中解决这个问题的最好方法是什么?我是否可以使用Redis集群或类似的东西,并将其放在ECS集群的前面?
发布于 2021-02-25 20:28:34
您不会将Redis放在ECS前面,但是您可以让您的ECS任务查询Redis缓存,看看是否存在所需的结果。如果是,则将其返回给调用方,如果不进行计算,则返回给调用方,并在下次将其存储到Redis。这是一个相当标准的模式,但需要运行在ECS上的应用程序的支持--它需要知道如何与Redis对话。或者是Memcache (更简单,可能对简单缓存来说也足够)。
或者,您可以将REST放在一个CloudFront CDN后面,并在该级别上启用缓存。如果做得正确,CloudFront将识别类似的请求,并立即返回缓存的响应,甚至不与ECS联系。这可以是透明的,不需要应用程序的支持。
希望有帮助:)
https://serverfault.com/questions/1055106
复制相似问题