这两年在业界关于云计算应该是一个很热门的名词,但是国内的云计算一直都在谈论概念却还没有能够提供实质产品给用户使用,而在国外亚马逊的“云”却已经提供服务很久并还在不断的增加可供使用的功能。因为现在作供职的公司有些外资背景,从09年开始构建自身系统时就将硬件基础和部分软件服务都选择架构在亚马逊云计算平台上。经过2年的开发,在不断修正对云的认识中,算是对亚马逊的云计算平台有些许初步理解,拿出来与大家分享。
亚马逊的云平台是由许多服务组合而成的,我们现在开发的项目中,主要使用EC2,S3,EBS和将要使用MapReduce,SQS服务。在2年的开发和运营中这些服务使用的便利性和服务的健壮性为我们节约了许多时间和人力,但同时因为对这些服务理解的错误,而使用方法不当导致运营事故。
S3全称是Simple
Storage
Service,主要用于长久存储数据。S3服务会对用户上传的数据,作多备份存储,基本上可以保证用户数据的不丢失。我们公司所有web服务器中记录的apache
log信息等都会压缩后保存在S3中。
EC2全称是Elastic
Compute Cloud,可以根据需要灵活定义计算能力。在EC2中预定了许多种instance
types,每种类型定义虚拟cpu主频和虚拟内存数量。每种类型可以作为模板启动instance,对这个instance你拥有完整的控制权就好像原来一台单独放在机房机架中的服务器。从选择instance
types到启动这台instance只需要几分钟,费用是按照使用小时数计算。这种灵活性的好处就是当前系统原有计算能力不足时,可以迅速启动一台更高计算能力的instance顶替原有instance来增加计算能力,或者是启动一台与原有instance相同类型的instance,与原有instacne形成群集来增加计算能力。一旦峰值过后,就可以换回原有类型或关闭不再需要的机器,释放不需要的计算能力。如果在系统设计之初就充分考虑到这样的灵活性,所运行程序有自我监控和自我扩展能力,一旦某台instance出现不可修复错误时,系统通过新起instance
获得修复。
EBS全称Elastic
Block
Store,这个服务作为EC2的补充,增加更多的灵活性。EC2虽然可以方便启动使用再随时关闭,但是如果一台instance被关闭,所有与其有关包括虚拟硬盘数据都将被清除,如果希望这台instance虚拟硬盘上的数据能够被重复利用,那么最好方法就是在启动这台instance时选择使用EBS服务作为虚拟硬盘挂载在instance上,当这台instance被关闭后,可以将这个EBS块挂载到其他instance上。
EC2,EBS和S3服务组合起来,完全就替代了原来的服务器租用或者托管需求。基于这样的理解,我们在最初架构应用时将EC2的每个instance完全当作一台服务器来使用,在很长一段时间里这样的使用都没有问题,SA搭建服务器群集非常迅速简捷。但后来出现有instance在管理界面上显示正常,实际却已经不能提供正常服务的情况,人工启动新instance修复服务的方式导致出现短时间的服务中断事故。所以在使用EC2时应该增加程序状态检查,服务器状态检查,以及当instance故障时自动启动新instance等功能
,这样才能充分利用到EC2的特性。
后来随着数据运算量的增加,我们在作部分数据运算时使用了高阶instance类型。这样的计算在一天24小时中大概只进行2到3小时,如果始终运行着这样的高阶instance将会造成很大的浪费。所以我们选择了按需开启instance的方式,这台
instance操作系统与程序代码等都放置在EBS上,另外有一台instance负责在需要时间点启动这台高阶instance,并挂载EBS,然后将当天需要运算的数据从S3拷贝到EBS上,计算结束后,程序代码检查结果数据,确认正确,返回正确结束码,高阶instance关闭自己。
以上就是目前我对亚马逊云计算平台的应用。MapReduce和SQS在目前新项目中将被大量使用,我会在下篇博客中介绍。
分享到:
相关推荐
云计算是一种基于互联网的计算方式,它通过网络将复杂的计算任务分解为无数小任务,分散到大量联网的服务器上进行处理,然后将结果整合并反馈给用户。这一技术源于早期的分布式计算,旨在提供类似超级计算机的强大...
这一概念最早由亚马逊、谷歌和IBM等公司推广普及,如今已逐渐渗透到我们的日常生活中。云计算可以视作Web2.0技术的延伸,它让互联网变成了一个可以提供更多服务的平台,包括托管服务、应用服务提供商(ASP)、网格...
在移动互联网的生态系统中,“端”指的是终端设备,“管”则是连接终端设备与云端服务之间的网络管道,“云”则是提供各种服务的云计算平台。这三者之间相互依存、协同发展,共同构建了一个完整的移动互联网生态。 ...
云计算是一种基于互联网的计算方式,它利用分布式计算技术,通过网络将复杂的计算任务分解成无数个小部分,由多台服务器协同处理,然后将结果汇总反馈给用户。这种技术的起源可以追溯到早期的大规模分布式计算,它...
例如,Google Docs和Google Apps等在线应用已经让许多人不再需要在本地设备上安装办公软件,企业用户也能利用云计算平台快速开发应用,如电子商务交易程序,无需专业的编程技能。 云计算的发展符合开源软件的精神,...
我们日常使用的Google Search、Google Earth、Google Map、Google Gmail、Google Doc等服务都是基于谷歌的云计算平台提供的。谷歌通过云计算的方式,大幅降低了计算成本,使其业务更具竞争力。谷歌早期因资金限制,...
超大规模**:典型的云计算平台都拥有数以万计乃至数十万台服务器,这种规模的集群可以提供强大的计算能力和存储空间。 **2. 高可靠性**:通过多重备份和故障切换机制,云计算系统能够确保服务的连续性和数据的安全...
- **虚拟性**:云计算基于虚拟化的技术,能够将物理资源抽象成逻辑资源,使得资源的分配更加灵活高效。 - **高可用性**:通过冗余备份机制和分布式架构,确保服务的连续性和数据的安全性。 - **可扩展性**:用户可以...
今天,从亚马逊到淘宝、京东等平台,电子商务已经深入到我们的日常生活中,为人们提供了更加便捷的购物体验。 当我们回顾这些里程碑事件时,不难发现,互联网的发展历程实际上是一个不断突破技术限制、拓宽应用领域...