AWS - Amazon · 2020年12月21日

AWS里的Cache

用Cache的好处这里就不赘述了,如果你不懂,请自己查一查。

我一直很好奇,AWS里究竟哪些地方给你选项,可以用Cache。

首先一个组件,CloudFront,为Cache而生。

CloudFront关注的是将返回的结果快速地分发到客户端,可以简单理解为HTTP Content Cache。

多说一句,配置CloudFront Cache的时候,记得static和dynamic分别处理。static可以cache,dynamic request嘛,只能尽力了。

另外对于Header的匹配也要注意,包括cookie,容易变的,就不要当做匹配条件。比如传说中的Date header,你每次收到的请求,Date值肯定是不一样的。你若是将这个值用在你Cache匹配上,那你的Cache基本上命中不了。

第二个Cache的组件,AWS ElasticCache。

我其实觉得这个挺……那啥……不要face的……明明用的就是Redis,或者memcached,封装了一下就叫ElasticCache了。(我甚至一度以为和ElasticSearch有关)

不过AWS还是做了一些工作的,封装了一些非常实用的功能,比如监控什么的。

Redis的功能不用介绍了吧,这个用的比较多了。

第三个,DAX,也就是DynamoDB Accelerator。

我第一次知道这个的时候,觉得特别惊讶:为什么DynamoDB需要Cache?它不是key-value数据库么?

Redis也是key-value数据库,为什么DynamoDB还要用DAX?

换一个问题,如果DynamoDB需要DAX,那RDS为什么没有RAX?

我其实不理解为什么,但暂时知道DAX有就行了,因为它提供了10x performance improvement。

第四个,API Gateway其实自己也有Cache。

最后,Route 53。

我不觉得它用的叫Cache,说TTL更贴切一些吧……


参考:https://aws.amazon.com/caching/aws-caching/