EC2 介绍(一)
?
一、一个广为传播的经典故事?? ?话说NYT有一大票1851-1922年间扫描的1100万份文章,要从TIFF图档格式转换为PDF,由于数量实在太庞大,转换起来不但耗时甚久,也需要极大数量的机器。最后NYT的工程师将所有文档传到S3放着,然后到EC2开了100个Instance,再装个Hadoop利用这100台电脑跑分布运算,结果是只花了24小时和大约3000美金就搞定(由于处理速度实在太快,他们实际上还跑了两次)。????????? EC2(Elastic Compute Cloud)
????????? 基础存储架构:Dynamo
????????? S3(Simple Storage Services)
??????????EBS(Elastic Block Storage)
????????? SDB(SimpleDB)
????????? 弹性MapReduce
????????? CloudFront
????????? 其他
?? ?AWS的基础是Dynamo,它是一个分布式的存储系统,使用了DHT作为实现方式,这在后面会有比较详细的讨论。构筑与它之上的,是三个存储子系统,分别面向不同的上层应用。EBS主要面向EC2,S3则是直接面向最终用户,为最终用户提供存储服务,而SDB则是为一些应用提供简单数据库服务。三、EC2介绍?? ?由于本篇只涉及EC2相关的,因此重点的内容是EC2和与其相关的一些内容,对于其他的内容则不作太多的讨论。EC2的体系结构如下:这里面涉及几个概念,分别简单介绍如下:????????? Amazon Machine Image (AMI),一个机器镜像,可以理解成像Ghost制作的操作系统的镜像文件。
????????? Instance 实例是指基于AMI上运行的系统,可以理解为一个在运行中的操作系统。或者可以称为虚机。
????????? EBS(Elastic Block Store)与S3不同,它是为EC2提供一个临时存储的服务,如果说S3相当于硬盘,那么EBS就相当于内存,一个Instance还回去以后EBS上的内容会丢失。(或者重启就会丢失?)
????????? Zone:分Region Zone和Availability Zone
?一个AMI镜像可以创建出很多个Instance,相当于一个模板可以有多个具体具体实现一样。每个Instance是一个操作系统,用户可以开很多Instance来做他需要做的事情。Instance里的东西会首先存到EBS上,如果需要永久存储,则选择S3.用户可以通过SSH登录到虚机里面,尽心一些配置等操作。由此可见,EC2只是提供了一个基本的基础设施,如果涉及用户应用的话要用户自己去上传管理。当然它也提供一些安装了某些软件的镜像,比如安装了Apache的,或者安装了Tomcat的虚机。但总的来讲,当涉及多台虚机进行分布式协作时,用户还需要做很多复杂繁琐的事情,需要把很多机器弄成集群,然后做一些负载均衡或者别的事情。除非直接使用它提供的Map/Reduce服务。
?? ?我们来看一下一个实际使用EC2来部署应用的例子,见下图: