用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更贴切一些吧……
