在云中找到你的服务器

日期: 2009-02-16 作者:William Brogden翻译:杨君 来源:TechTarget中国 英文

不久前,许多中小网站还是有多种选择机会来平衡降低设备和电力成本需求的。最近,当这种需求增加时,虚拟化操作系统则负责在恢复操作系统运作时引入新的服务器,如果需负载降低,就把服务器关掉。   实际上所谓的“云”计算提供了一种新的解决方法。你可以把所有的服务器负载转移到“云”里,只支付实际服务费用,无需再使用其它硬件。

  Slashdot效应   如果你从来没有读过像Slashdot这样高速资讯科技网站上的新闻,或者访问过其他网站,你可能从来没有遭遇过Slashdot效应,这种现象很好解释,你点击一个网站超过100次,一般数量的要求都会使服务器饱和。   如果一个受欢迎的游戏网站公布了一个新的升级……

我们一直都在努力坚持原创.......请不要一声不吭,就悄悄拿走。

我原创,你原创,我们的内容世界才会更加精彩!

【所有原创内容版权均属TechTarget,欢迎大家转发分享。但未经授权,严禁任何媒体(平面媒体、网络媒体、自媒体等)以及微信公众号复制、转载、摘编或以其他方式进行使用。】

微信公众号

TechTarget微信公众号二维码

TechTarget

官方微博

TechTarget中国官方微博二维码

TechTarget中国

不久前,许多中小网站还是有多种选择机会来平衡降低设备和电力成本需求的。最近,当这种需求增加时,虚拟化操作系统则负责在恢复操作系统运作时引入新的服务器,如果需负载降低,就把服务器关掉。

  实际上所谓的“云”计算提供了一种新的解决方法。你可以把所有的服务器负载转移到“云”里,只支付实际服务费用,无需再使用其它硬件。

  Slashdot效应

  如果你从来没有读过像Slashdot这样高速资讯科技网站上的新闻,或者访问过其他网站,你可能从来没有遭遇过Slashdot效应,这种现象很好解释,你点击一个网站超过100次,一般数量的要求都会使服务器饱和。

  如果一个受欢迎的游戏网站公布了一个新的升级,就会产生相似的效应。当传送大量升级时,能够解决一般游戏交通问题的服务器速度会减慢。上次在升级Second Life,我发现升级传送是从Amazon公司的Web服务得来的,而不是常规的Second Life服务器。

  Amazon公司的S3服务

  用Amazon公司Web服务(AWS)开启一个帐户,你可以获得一个独一无二的公共账户名,外加验证操作的个人密码。我在以前的文章“使用Amazon公司简单储存服务(S3)备份”中提到过,通过AWS帐户你可以创建一个名为“桶”的帐户,你可以储存个人或者公共文件或者只读访问桶,文件是由存取控制表(ACL)以及认证请求所控制的。你的AWS帐户是以每月1G 0.15美元来计算储存量的。用户下载文件的费用是1G流量0.17美元,费用随流量的多少递减。

  与云建立公共链接

  通过将部分网络资源文件储存到Amazon S3桶当中(准许公共访问),可以避免slashdot效应。下面这个链接是一个URL实例。首先要注意桶是如何命名的,“wbbackup.photos”是s3服务宿主名字的前缀。你可以使用桶这个名字作为请求路径的一部分。

  http://wbbackup.photos.s3.amazonaws.com/Jan17IceStorm.jpg

  还有好多其它工具比如说Firefox S3管理器插件和基于Java语言的开放源“Cockpit”应用程序,这些工具使得在S3移动文件变得更为简单,并且能够控制存取。注意S3并不能让你在桶之间转移文件,或者重新命名文件以确保你的文件和桶名在上载之前以其最终形式保存。

  控制对云的访问

  Amazon S3提供了一个机制,通过这个机制你可以从超载的服务器中将带宽要求转移到云中,同时控制访问。假设你利用个人访问设置在S3存了文件,通过使用临时url(只在短时内有效),你就可以提供一个只读访问。这样你的客户就可以得到资源但是URL不能多次传递,或者重用。

  创建一个有限时间URL

  要想创建一个有限时间URL需要程序编制步骤:

  ·用规范式创建一个包含私有密钥。桶和文件名和时间限制的字符串。请求串的数字签名必须用规范序列格式化,因为每个单一字符的不同都会产生不同的符号差导致S3拒绝URL。幸运的是对于开发商来说,如果URL遭到拒绝,错误信息就会显示字符串是如何创建的。注意你的系统时间时钟,必须和Amazon的一致。

  ·使用SHA-1算法,计算出“基于散列的消息验证代码”(HMAC)用你的个人密钥和标准字符串创建一个独特的签名作为20字节的数组。

  ·使用64位算法将签名字节变成一串可印的字符。有些字符和(+ / 和=)并不像URL一样都是合法的,这样以来以下几个步骤则是必不可少的。

  ·使用URL编码算法确保签名中的所有的字符在URL中都是合法的。

  ·将签名特性添加到URL然后传送请求

  最终URL包含S3主机、桶名、文件名、公共密钥ID、终止日期和签名,下面是个例子(许多行足以填满整页)。

  http://s3.amazonaws.com:80/wbbackup.documents/announce.pdf?
    AWSAccessKeyId=0RZH5W7VT9RG7EHM5KR2&
    Expires=1220794232&
    Signature=WwPfFSREPG0wu2BK6m6X04awcz8%3D

  一旦S3服务做出回应,应答头包含了一个从文件类型得来的内容列表。S3同样准许你添加复杂Web服务所需的自定义页头信息。

  使用标准Java类库外加一个公共域64位编码库和Amazon公司的S3代码库,我可以实施一个简单Java小服务程序,以便创建有限时间URL。除了Java以外,Amazon公司开发商网站用不同的编程语言给出编码包括Ruby、Silverlight、Python、PHP、 Perl、ColdFusion、Visual Basic和Erlang语言。Amazon公司的S3服务使用简单,而且价格公道,任何网站经营者在面对服务器需求增加的情况下,应该考虑将需求卸载到云中。

相关推荐