首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 服务器 > 云计算 >

基于日常工顶牛儿亚马逊云计算平台的一点认识

2012-12-22 
基于日常工作对亚马逊云计算平台的一点认识? ? ? 这两年在业界关于云计算应该是一个很热门的名词,但是国内

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

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

?

? ? ? 亚马逊的云平台是由许多服务组合而成的,我们现在开发的项目中,主要使用EC2,S3,EBS和将要使用MapReduce,SQS服务。在2年的开发和运营中这些服务使用的便利性和服务的健壮性为我们节约了许多时间和人力,但同时因为对这些服务理解的错误,而使用方法不当导致运营事故。

?

? ? ?S3全称是SimpleStorageService,主要用于长久存储数据。S3服务会对用户上传的数据,作多备份存储,基本上可以保证用户数据的不丢失。我们公司所有web服务器中记录的apachelog信息等都会压缩后保存在S3中。

?

? ? ?EC2全称是ElasticCompute Cloud,可以根据需要灵活定义计算能力。在EC2中预定了许多种instancetypes,每种类型定义虚拟cpu主频和虚拟内存数量。每种类型可以作为模板启动instance,对这个instance你拥有完整的控制权就好像原来一台单独放在机房机架中的服务器。从选择instancetypes到启动这台instance只需要几分钟,费用是按照使用小时数计算。这种灵活性的好处就是当前系统原有计算能力不足时,可以迅速启动一台更高计算能力的instance顶替原有instance来增加计算能力,或者是启动一台与原有instance相同类型的instance,与原有instacne形成群集来增加计算能力。一旦峰值过后,就可以换回原有类型或关闭不再需要的机器,释放不需要的计算能力。如果在系统设计之初就充分考虑到这样的灵活性,所运行程序有自我监控和自我扩展能力,一旦某台instance出现不可修复错误时,系统通过新起instance获得修复。

?

? ? ?EBS全称ElasticBlockStore,这个服务作为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在目前新项目中将被大量使用,我会在下篇博客中介绍。

</li>
<li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 13px; background-position: 0px 0.5em;">750 hours of an?<a style="color: #004b91; text-decoration: none;" href="https://aws.amazon.com/elasticloadbalancing/">Elastic Load Balancer</a>?plus 15 GB data processing*</li>
<li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 13px; background-position: 0px 0.5em;">10 GB of?<a style="color: #004b91; text-decoration: none;" title="EBS" href="https://aws.amazon.com/ebs">Amazon Elastic Block Storage</a>, plus 1 million I/Os, 1 GB of snapshot storage, 10,000 snapshot Get Requests and 1,000 snapshot Put Requests<code style="font-style: normal; font-weight: normal; font-family: monospace; line-height: 12px; padding: 0px; margin: 0px;">*</code>
</li>
<li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 13px; background-position: 0px 0.5em;">5 GB of?<a style="color: #004b91; text-decoration: none;" href="https://aws.amazon.com/s3">Amazon S3</a>?standard storage, 20,000 Get Requests, and 2,000 Put Requests<code style="font-style: normal; font-weight: normal; font-family: monospace; line-height: 12px; padding: 0px; margin: 0px;">*</code>
</li>
<li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 13px; background-position: 0px 0.5em;">30 GB per of internet data transfer (15 GB of data transfer “in” and 15 GB of data transfer “out” across all services except Amazon CloudFront)<code style="font-style: normal; font-weight: normal; font-family: monospace; line-height: 12px; padding: 0px; margin: 0px;">*</code>
</li>
<li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 13px; background-position: 0px 0.5em;">25?<a style="color: #004b91; text-decoration: none;" href="https://aws.amazon.com/simpledb">Amazon SimpleDB</a>?Machine Hours and 1 GB of Storage<code style="font-style: normal; font-weight: normal; font-family: monospace; line-height: 12px; padding: 0px; margin: 0px;">**</code>
</li>
<li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 13px; background-position: 0px 0.5em;">100,000 Requests of?<a style="color: #004b91; text-decoration: none;" title="SQS" href="https://aws.amazon.com/sqs">Amazon Simple Queue Service</a><code style="font-style: normal; font-weight: normal; font-family: monospace; line-height: 12px; padding: 0px; margin: 0px;">**</code>
</li>
<li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 13px; background-position: 0px 0.5em;">100,000 Requests, 100,000 HTTP notifications and 1,000 email notifications for?<a style="color: #004b91; text-decoration: none;" title="SNS" href="https://aws.amazon.com/sns">Amazon Simple Notification Service</a><code style="font-style: normal; font-weight: normal; font-family: monospace; line-height: 12px; padding: 0px; margin: 0px;">**</code>
</li>
<li style="margin-top: 0px; margin-right: 0px; margin-bottom: 0.5em; margin-left: 0px; padding-top: 0px; padding-right: 0px; padding-bottom: 0px; padding-left: 13px; background-position: 0px 0.5em;">10?<a style="color: #004b91; text-decoration: none;" href="https://aws.amazon.com/cloudwatch">Amazon Cloudwatch</a>?metrics, 10 alarms, and 1,000,000 API requests<code style="font-style: normal; font-weight: normal; font-family: monospace; line-height: 12px; padding: 0px; margin: 0px;">**</code>
</li>
</ul>
<p style="margin-top: 0px; margin-right: 0px; margin-bottom: 1em; margin-left: 0px; padding: 0px;">In addition to these services, the?<a style="color: #004b91; text-decoration: none;" href="https://aws.amazon.com/console">AWS Management Console</a>?is available at no charge to help you build and manage your application on AWS.</p>
</span></p> 21 楼 wmcoo 2011-06-08   Asia Pacific (Tokyo), Asia Pacific (Singapore),US East (Virginia)
这几个地区哪一个国内访问速度会比较快呢。 22 楼 dank 2011-06-08   wmcoo 写道Asia Pacific (Tokyo), Asia Pacific (Singapore),US East (Virginia)
这几个地区哪一个国内访问速度会比较快呢。
Tokyo和Singapore没有试过的。我们用Virginia的,从国内SSH连接上去,直接在线写代码速度有时候会非常慢。但是WEB网站访问速度还可以的。 23 楼 wmcoo 2011-06-08   dank 写道wmcoo 写道Asia Pacific (Tokyo), Asia Pacific (Singapore),US East (Virginia)
这几个地区哪一个国内访问速度会比较快呢。
Tokyo和Singapore没有试过的。我们用Virginia的,从国内SSH连接上去,直接在线写代码速度有时候会非常慢。但是WEB网站访问速度还可以的。
牛,直接连SSH写代码,不过比我在淘宝上人气最高的店铺买的VPS速度快一倍,我用US East (Virginia)的Instance,PING 大概300MS左右,等会建两个其它区的比较下 24 楼 dank 2011-06-08   wmcoo 写道dank 写道wmcoo 写道Asia Pacific (Tokyo), Asia Pacific (Singapore),US East (Virginia)
这几个地区哪一个国内访问速度会比较快呢。
Tokyo和Singapore没有试过的。我们用Virginia的,从国内SSH连接上去,直接在线写代码速度有时候会非常慢。但是WEB网站访问速度还可以的。
牛,直接连SSH写代码,不过比我在淘宝上人气最高的店铺买的VPS速度快一倍,我用US East (Virginia)的Instance,PING 大概300MS左右,等会建两个其它区的比较下
恩。希望可以看到你的测试结果了。用VIM来写程序,连在开发服务器上更方便的。
25 楼 suhuanzheng7784877 2011-06-09   国内想做到亚马逊那么大,还有很远的路啊~~~~~~现在各个公司都在观望+摸着石头过河。谁也说不好云计算在中国是怎么个呈现方式和推广。 26 楼 dank 2011-06-09   suhuanzheng7784877 写道国内想做到亚马逊那么大,还有很远的路啊~~~~~~现在各个公司都在观望+摸着石头过河。谁也说不好云计算在中国是怎么个呈现方式和推广。
关键是国内网站的审批制度了。现在好像开通一个网站,租用虚拟主机、主机租用或者托管都要经过复杂和费时的备案审批过程。云计算这样可以方便的更新服务器,随意解析域名等等特性,在国内怎么可能会被允许呢。 27 楼 wmcoo 2011-06-09   dank 写道wmcoo 写道dank 写道wmcoo 写道Asia Pacific (Tokyo), Asia Pacific (Singapore),US East (Virginia)
这几个地区哪一个国内访问速度会比较快呢。
Tokyo和Singapore没有试过的。我们用Virginia的,从国内SSH连接上去,直接在线写代码速度有时候会非常慢。但是WEB网站访问速度还可以的。
牛,直接连SSH写代码,不过比我在淘宝上人气最高的店铺买的VPS速度快一倍,我用US East (Virginia)的Instance,PING 大概300MS左右,等会建两个其它区的比较下
恩。希望可以看到你的测试结果了。用VIM来写程序,连在开发服务器上更方便的。

比较结果在附件里
175.41.135.217 Singapore
175.41.249.208 Tokyo
175.41.249.208 Virginia
Tokyo最快,看起来很舒服啊 28 楼 alang 2011-06-16   楼主。非常感谢分享。我也用了一段时间。但是最近ssh登录不上东京的ec2了,我在内地,在网上也问了,据说是我们这旮瘩block了这个数据中心,或者说block了ssh,登录都登录不小,跟不谈应用了。你在那个城市,情况怎么样? 29 楼 alang 2011-06-28   这个AWS的怎么发在php区了?浪费这么好的一个话题。
我搞定了ssh了,一个破论坛欢快的跑在免费的AWS EC2上。东京数据中心。爽利。 30 楼 dank 2011-06-29   alang 写道这个AWS的怎么发在php区了?浪费这么好的一个话题。
我搞定了ssh了,一个破论坛欢快的跑在免费的AWS EC2上。东京数据中心。爽利。
呵呵,因为我们主要开发的语言是用的PHP了,所以对亚马逊的云平台感受更多是在PHP开发中获得的。 31 楼 deeravenger 2011-06-30   dank 写道renzhen 写道EC2的确是做数据挖掘的首选,相比国内的VPS,更适合做网站的托管。
如果作海量数据分析的话使用亚马逊的MapReduce更好。通过MapReduce服务,选择需要启动的instance类型和数量,可以非常方便的获得需要的计算能力。
只所以把这篇文章发到这里,因为我们现在对亚马逊云的应用程序,基本上都是在PHP上开发的。对PHP的应用已经不只是简单的WEB程序了,更多是作为命令行计算脚本来运行的。希望也有这样开发经验的PHPer可以有一个交流。
最近新浪弄了一个appengine,支持php的,你开发php的话直接用那个不是更好? 32 楼 dank 2011-06-30   deeravenger 写道dank 写道renzhen 写道EC2的确是做数据挖掘的首选,相比国内的VPS,更适合做网站的托管。
如果作海量数据分析的话使用亚马逊的MapReduce更好。通过MapReduce服务,选择需要启动的instance类型和数量,可以非常方便的获得需要的计算能力。
只所以把这篇文章发到这里,因为我们现在对亚马逊云的应用程序,基本上都是在PHP上开发的。对PHP的应用已经不只是简单的WEB程序了,更多是作为命令行计算脚本来运行的。希望也有这样开发经验的PHPer可以有一个交流。
最近新浪弄了一个appengine,支持php的,你开发php的话直接用那个不是更好?

恩,不过新浪SAE里有一个超长的禁用函数列表,很多函数是在我们的开发中是需要用到的。有兴趣的可以看看这个http://sae.sina.com.cn/?m=devcenter&catId=39,新浪SAE的服务限制等说明,这样的服务对于流量少且功能简单的网站来说还是够用,但是对我们来说不太合适。而且因为我们服务的流量主要在美国,所以从访问速度上考虑,亚马逊的云平台是最好的选择了。 33 楼 deeravenger 2011-06-30   不过做PaaS平台的话禁用部分函数是不可避免的,google的appengine也是有一堆禁用的类。
对于已存在的应用,要往PaaS平台上迁移是不太可能的。但如果是新应用倒是可以考虑。我倒是觉得,它有些禁止使用的东西,其实从可扩展性上来讲是应该避免的...

热点排行