距离上一次写关于Amazon AWS的文章超过一年了,最近一年一直在用AWS的东西,却没有时间把心得记一下。简单的讲讲这两年的变化吧~
SimpleDB
SimpleDB基本上被AWS抛弃了,在官网已经没有链接可以访问得到。作为一个可用性极高的云上非关系型数据库,我个人觉得SimpleDB是在那个历史时期非常不错的进步。我觉得主要问题出在每个domain 10G和2500万对象的限制上,扩展性相当不好。我们团队还有约500G的数据shard在SimpleDB上,头大啊。
DynamoDB
作为AWS接下来主推的非关系数据库之一,我实在是非常不喜欢:存储贵,I/O贵,查询支持及其差。其特点是每个数据库表格只能设置两个key:一个hash key和一个range key。还想用第三列查询?呵呵,要么scan全表,要么建个中间数据表吧。麻烦死,永远查不到东西。
DynamoDB主要的开销在读写的capacity上,注意每张表按需设置(看CloudWatch的历史记录),不然费用轻松上万元RMB一个月。
EMR(Elastic Map-Reduce)
从理念上来说是不错的东西,让map-reduce变得非常好管理,支持Hive, Pig和java等等。有些小小的问题,比如说不能根据自己的map-reduce的需求设置Hadoop的设置(也可能是我们没找到设置的敌方。。。)。我们遇到的真正根源的问题是,Hive太慢,准确的说是Hadoop太慢。有的同学推荐我们用Storm,还没有时间去看。
EMR是可以控制自动开关服务器的,做到费用的最低化。
Elastic Cache
很好很方便的服务内存缓存服务。操作非常简便,给个key,就能放进去拿出来。注意两个小技巧:
1. elastic cache只能从AWS EC2的机器访问(惊呆了!)
2. 内存贵啊,压缩啊同学们
阿里云有类似的云缓存服务,还在试用阶段。
Redshift
现阶段我心目中的女神。和hadoop+Hive的结构相比,redshift能用1/4的价格达到Hive 20X的效率。觉得不可能?好吧,有的人说是10X效率的。
最无法让人释怀的是:它支持SQL!!!当在经过这两年写couchDB的view(用javascript),到写SimpleDB的find,到写dynamoDB的那不知道算什么东西,到写Hive之后,你真的不知道写SQL是多么美妙的事情。。。。
什么样的应用适合使用Redshift?AWS的架构师给我的标杆是“应用是否以聚合类计算为中心”。用人话说,就是group by是不是很多。
当然咯,女神上多了,就感觉没什么了。。。。
Kinesis
我看了三遍Kinesis的广告片,才勉强对自己说知道它是做什么的。我的理解是一个做海量流数据分析的框架,大概很想storm吧(请勿喷!)
“Amazon
Kinesis 是一种完全托管的服务,能够实时处理大规模数据流。Amazon Kinesis 每小时可以从数十万个来源采集和处理数百 TB 的数据,帮助您轻松编写能够实时地从各种来源(例如网站点击流、营销和金融信息、生产规范和社交媒体、运行日志和计量数据等)处理信息的应用程序”
其他就没什么了,EC2, RDS, SQS,S3等服务还是很鲁棒。Cloud Search马上要支持中文,签了保密协议不能多说,大家尽请期待了。
Amazon AWS亚马逊云服务新服务简介(DynamoDB, Redshift,Kinesis),布布扣,bubuko.com