论坛首页 编程语言技术论坛

基于日常工作对亚马逊云计算平台的一点认识

浏览 20570 次
精华帖 (3) :: 良好帖 (0) :: 新手帖 (0) :: 隐藏帖 (0)
作者 正文
   发表时间:2011-05-21   最后修改:2011-05-21
PHP

      这两年在业界关于云计算应该是一个很热门的名词,但是国内的云计算一直都在谈论概念却还没有能够提供实质产品给用户使用,而在国外亚马逊的“云”却已经提供服务很久并还在不断的增加可供使用的功能。因为现在作供职的公司有些外资背景,从09年开始构建自身系统时就将硬件基础和部分软件服务都选择架构在亚马逊云计算平台上。经过2年的开发,在不断修正对云的认识中,算是对亚马逊的云计算平台有些许初步理解,拿出来与大家分享。

 

      亚马逊的云平台是由许多服务组合而成的,我们现在开发的项目中,主要使用EC2S3,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上。

 

     EC2EBSS3服务组合起来,完全就替代了原来的服务器租用或者托管需求。基于这样的理解,我们在最初架构应用时将EC2的每个instance完全当作一台服务器来使用,在很长一段时间里这样的使用都没有问题,SA搭建服务器群集非常迅速简捷。但后来出现有instance在管理界面上显示正常,实际却已经不能提供正常服务的情况,人工启动新instance修复服务的方式导致出现短时间的服务中断事故。所以在使用EC2时应该增加程序状态检查,服务器状态检查,以及当instance故障时自动启动新instance等功能 ,这样才能充分利用到EC2的特性。

 

      后来随着数据运算量的增加,我们在作部分数据运算时使用了高阶instance类型。这样的计算在一天24小时中大概只进行23小时,如果始终运行着这样的高阶instance将会造成很大的浪费。所以我们选择了按需开启instance的方式,这台 instance操作系统与程序代码等都放置在EBS上,另外有一台instance负责在需要时间点启动这台高阶instance,并挂载EBS,然后将当天需要运算的数据从S3拷贝到EBS上,计算结束后,程序代码检查结果数据,确认正确,返回正确结束码,高阶instance关闭自己。

 

     以上就是目前我对亚马逊云计算平台的应用。MapReduceSQS在目前新项目中将被大量使用,我会在下篇博客中介绍。

   发表时间:2011-05-22  
EC2的确是做数据挖掘的首选,相比国内的VPS,更适合做网站的托管。
0 请登录后投票
   发表时间:2011-05-24  
renzhen 写道
EC2的确是做数据挖掘的首选,相比国内的VPS,更适合做网站的托管。

如果作海量数据分析的话使用亚马逊的MapReduce更好。通过MapReduce服务,选择需要启动的instance类型和数量,可以非常方便的获得需要的计算能力。
只所以把这篇文章发到这里,因为我们现在对亚马逊云的应用程序,基本上都是在PHP上开发的。对PHP的应用已经不只是简单的WEB程序了,更多是作为命令行计算脚本来运行的。希望也有这样开发经验的PHPer可以有一个交流。
0 请登录后投票
   发表时间:2011-06-03  
能不能介绍介绍迁移到amazon EC2以后,相比于租用VPS或者自己构建data center,成本下降了多少?
0 请登录后投票
   发表时间:2011-06-03   最后修改:2011-06-08

 

这个是US East区的价格


Linux/UNIX Usage Windows Usage Standard On-Demand Instances Micro On-Demand Instances Hi-Memory On-Demand Instances Hi-CPU On-Demand Instances Cluster Compute Instances Cluster GPU Instances
Small (Default) $0.085 per hour $0.12 per hour
Large $0.34 per hour $0.48 per hour
Extra Large $0.68 per hour $0.96 per hour
Micro $0.02 per hour $0.03 per hour
Extra Large $0.50 per hour $0.62 per hour
Double Extra Large $1.00 per hour $1.24 per hour
Quadruple Extra Large $2.00 per hour $2.48 per hour
Medium $0.17 per hour $0.29 per hour
Extra Large $0.68 per hour $1.16 per hour
Quadruple Extra Large $1.60 per hour N/A*
Quadruple Extra Large $2.10 per hour N/A*


可以针对需要长期使用的instance预先缴纳一定的费用,之后每个小时的计费将会下降很多。

1 yr Term 3 yr Term Linux/UNIX Usage Windows Usage Standard Reserved Instances Micro Reserved Instances High-Memory Reserved Instances High-CPU Reserved Instances Cluster Compute Reserved Instances Cluster GPU Reserved Instances
Small (Default) $227.50 $350 $0.03 per hour $0.05 per hour
Large $910 $1400 $0.12 per hour $0.20 per hour
Extra Large $1820 $2800 $0.24 per hour $0.40 per hour
Micro $54 $82 $0.007 per hour $0.013 per hour
Extra Large $1325 $2000 $0.17 per hour $0.24 per hour
Double Extra Large $2650 $4000 $0.34 per hour $0.48 per hour
Quadruple Extra Large $5300 $8000 $0.68 per hour $0.96 per hour
Medium $455 $700 $0.06 per hour $0.125 per hour
Extra Large $1820 $2800 $0.24 per hour $0.50 per hour
Quadruple Extra Large $4290 $6590 $0.56 per hour N/A*
0 请登录后投票
   发表时间:2011-06-03  

以上是从Amazon 上摘抄下来的价格表,详细信息可以到http://aws.amazon.com/ec2/pricing/这里浏览。每个区的价格也不同,亚太区的价格会比欧美贵一些,但是如果作国内服务,放在日本或新加坡访问速度会比在美国或欧洲的好。

因为我们从一开始就是使用了Amazon的服务,所以没有办法给出成本比较。但是从SA的工作量来看,使用EC2后服务器硬件维护不需要了,增加instance效率也是极大的提高。但是因为是虚拟服务器,所以SA需要编写必要的程序来维护虚拟服务器状态。同时为了充分利用EC2的特性,也需要SA和程序员配合,在需要动态启用和关闭instance时提供可以调用的脚本。所以在使用EC2后,对SA的要求与以往不同了。

0 请登录后投票
   发表时间:2011-06-03  
dank 写道

以上是从Amazon 上摘抄下来的价格表,详细信息可以到http://aws.amazon.com/ec2/pricing/这里浏览。每个区的价格也不同,亚太区的价格会比欧美贵一些,但是如果作国内服务,放在日本或新加坡访问速度会比在美国或欧洲的好。

因为我们从一开始就是使用了Amazon的服务,所以没有办法给出成本比较。但是从SA的工作量来看,使用EC2后服务器硬件维护不需要了,增加instance效率也是极大的提高。但是因为是虚拟服务器,所以SA需要编写必要的程序来维护虚拟服务器状态。同时为了充分利用EC2的特性,也需要SA和程序员配合,在需要动态启用和关闭instance时提供可以调用的脚本。所以在使用EC2后,对SA的要求与以往不同了。


GOOGLE的云被墙,这个不会被墙吗
0 请登录后投票
   发表时间:2011-06-03  
EYE的内容过滤有问题啊,都排成什么样了
0 请登录后投票
   发表时间:2011-06-03  
哈,太感谢了,回复很有用。可以有你联系方式不,有时间多聊一下,我是做grid的,我们也有想法往amazon ec2上migrate
0 请登录后投票
   发表时间:2011-06-03  
wmcoo 写道
dank 写道

以上是从Amazon 上摘抄下来的价格表,详细信息可以到http://aws.amazon.com/ec2/pricing/这里浏览。每个区的价格也不同,亚太区的价格会比欧美贵一些,但是如果作国内服务,放在日本或新加坡访问速度会比在美国或欧洲的好。

因为我们从一开始就是使用了Amazon的服务,所以没有办法给出成本比较。但是从SA的工作量来看,使用EC2后服务器硬件维护不需要了,增加instance效率也是极大的提高。但是因为是虚拟服务器,所以SA需要编写必要的程序来维护虚拟服务器状态。同时为了充分利用EC2的特性,也需要SA和程序员配合,在需要动态启用和关闭instance时提供可以调用的脚本。所以在使用EC2后,对SA的要求与以往不同了。


GOOGLE的云被墙,这个不会被墙吗

 

google的服务被墙应该跟这个不一样,amazon这个想被墙不容易吧,没有办法基于域名或者ip进行过滤

0 请登录后投票
论坛首页 编程语言技术版

跳转论坛:
Global site tag (gtag.js) - Google Analytics