在上次(2008.01.10)简单了写了一篇《RubyOnRails + S3 + EC2 = ? 》至今已经有段时间了,经过一段时间的发展,Amazon Web Services到今天已经相当成熟了,一整套的解决方案可以给Web App带来很多的便利,再一系列的改进措施后,AWS基本上是成熟了。
上面这个图片来源于slideshare上的一个PPT“Using Amazon SimpleDB with Ruby on Rails”,正如我上面截取的这个图片说的:
静态文件存储在S3上; App server使用课余无限扩展的EC2; 结构化数据存储在SimpleDB上; 客户端/服务端的交互使用SQS;
看看AWS的几个应用,正好覆盖了WebApp的整个过程,以下逐一介绍下这几个服务:
1、S3看上去就是一个大的硬盘,你可以把App中的所有数据都放上去,取回来,展示等等,是个比较安全的存储服务,省略了自己买磁盘阵列,维护等等费用,且号称是安全的。
2、EC2的最大卖点就是其可以无限伸缩的,号称可以扩展到“云”上去,不用因为您的服务器压力过重而购买一批一批的机器,免得找机房,等等,可谓相当方便,在其推出固定IP和固态存储之后,使得EC2相当成熟;
3、SimpleDB推出的最早,但是一直没仔细看,以为其和S3差不多,今天仔细看了下,其实不然,看其名字是SimpleDB,是用来替代DB的,但是比普通的DB更加Simple,其实也就是一个结构化的存储,你可以把DB的东西(表,行)组合一下放进去,然后根据其有的API查询和存贮,省了维护数据库的人力物力,但是速度不晓得如何。
4、SQS是前段时间了解的,不晓得这个服务当初推出的典型应用场景是什么样的,就我的理解,其就是一个队列,相当于一个缓冲队列,用在分布式处理或者作用同步上相当不错,有兴趣的可以看我以前的文章“Amazon SQS,分布式作业不再费心”。
总的来说,AWS的几个服务都是将WebApp开发中涉及到的几个方面分拆出来做成服务,以来提供便捷,二来自己赚了一大笔,真是聪明,不过这些应用的维护不晓得Amazon 是怎么处理的,肯定不会是我们常见的人工维护,估计和Google存储差不多的自维护系统。
如果您对AWS感兴趣,如果您和笔者一样使用的是RubyOnRails,你可以使用RightAws插件,其包含了以上4个应用的实现,相当不错。
但是其不足之处依然存在,例如多国内用户,速度不敢恭维;也有人列举了“Top 10 Reasons to Avoid the SimpleDB Hype”,当然也有人针锋相对的回应了这10个问题“ Top 10 Reasons to Avoid Document Databases FUD 4 ”;另外还有其价格是否真的划算(现在支付美刀比较划算),以及其曾经出现过的问题,所以您在决定使用之前还请仔细考量,这几个应用我都有过尝试,虽然没有大规模的使用,但是基本上比较了解了,如果您有问题,或者其他的经验,欢迎和我交流。