Amazon EC2学习笔记(一)

来源:互联网 发布:网络市场监管系统 编辑:程序博客网 时间:2024/05/29 19:39

一、一个广为传播的经典故事

        话说NYT有一大票1851-1922年间扫描的1100万份文章,要从TIFF图档格式转换为PDF,由于数量实在太庞大,转换起来不但耗时甚久,也需要极大数量的机器。最后NYT的工程师将所有文档传到S3放着,然后到EC2开了100个Instance,再装个Hadoop利用这100台电脑跑分布运算,结果是只花了24小时和大约3000美金就搞定(由于处理速度实在太快,他们实际上还跑了两次)。

        如果按传统的方式,自己来处理分布式问题,那么广软件开发费用的增加都远远不止3000美元,更不用讲硬件的问题。这一堆硬件不买不行,买了以后呢好像就用了那么一回,也不是个事啊。这里就显出Hadoop+EC2的威力来了,这个也被称作是云计算。

二、AWS介绍

        EC2是整个亚马逊Web Service的冰山一角,整个AmazonWeb Service(简称AWS)的体系如下图所示:

 

        如上图所示,AWS分成以下几大部分:

        •EC2(Elastic ComputeCloud)

        •基础存储架构:Dynamo

        •S3(Simple StorageServices)

        •EBS(Elastic BlockStorage)

        •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来部署应用的例子,见下图

 

        上面图中的蓝色圆角框代表虚机,也就是Amazon叫Instance的那个东西。他用多台虚机组成一个应用的集群(灰色框内),在这个集群的前端有一个HAProxy作为Load Balencer之用。另外他还用了数据库集群(分Master和Slave),同时在这台虚机上还安装了Memcache作为缓存服务器。而最终的数据都是持久化到S3中的。

Amazon EC2 提供以下功能:

    1.虚拟计算环境,也称为实例。

    2.实例的预配置模板,也称为 Amazon 系统映像 (AMI),其中包含服务器需要的程序包 (包括操作系统和其他软件)。

    3.实例CPU、内存、存储和网络容量的多种配置,也称为实例类型。

    4.使用密钥对的实例的安全登录信息 (AWS 存储公有密钥,用户在安全位置存储私有密钥)。

    5.临时数据 (停止或终止实例时会删除这些数据) 的存储卷,也称为实例存储卷。

    6.使用 Amazon Elastic Block Store (Amazon EBS) 的数据的持久性存储卷,也称为 Amazon EBS 卷。

    7.用于存储资源的多个物理位置,例如实例和 Amazon EBS 卷,也称为区域和可用区。

    8.防火墙,让用户可以指定协议、端口,以及能够使用安全组到达用户的实例的源 IP 范围。

    9.用于动态云计算的静态 IP地址,称为弹性 IP 地址。

    10.元数据,也称为标签,用户可以创建元数据并分配给用户的Amazon EC2 资源。

    11.用户可以创建的虚拟网络,这些网络与其余AWS云在逻辑上隔离,并且用户可以选择连接到用户自己的网络,也称为 VirtualPrivate Cloud (VPC)。


 

 

3 0