1.要解决的问题
在短时间内一般很难通过增加机器数量来应对突发性的访问量增加。尽管可以考虑通过预测访问量的方式增加服务器来解决这一问题,但出于成本考虑这样增加服务器数量耗费很大。
2.云模式的说明
在这个模式中,AWS云提供的网络存储将被用作web服务器,不仅寄存像图片、视频这样的大文件,还会托管HTML。因为网络存储最初就是被设计用于共享存储,所以不需考虑容量方面的问题。即使某个服务的访问量骤增,网络存储作为一个整体,也能够很好地处理这一过程,使你能够像使用web服务器一样而无需采取任何特殊的措施来处理负载。
3.实施
将要发布的静态内容(HTML、CSS、JavaScript、图片、视频等)上传至亚马逊S3的网络存储上。
设置S3的桶来发布内容,并将其机制设置为允许公开访问桶中的内容。
开启S3的网站托管功能并设置一个首页和一个出错页面,实现在S3上托管网站。
4.配置
5.好处
访问静态内容的任务都交由S3处理,使你轻松地增加了web系统的可用性和持久性。
6.注意事项
在S3上不可能运行服务器端的程序,例如,它不能针对每个登录的用户输出不同的页面。
当JavaScript被嵌入在由S3传输的内容中,且数据将会通过异步通信从另一台服务器上获得时,获取数据的服务器和域名地址将会有所不同。由于JavaScript主要通信封闭的限制,这时则有必要通过JSONP来进行通信。
7.其他
这个模式甚至也可以用于动态网站,如亚马逊内容管理系统(CMS)。例如,当你使用MovableType来发布博客,那么博客引擎编写的一个静态HTML文件就可以寄放在S3上。
S3还有一个发布签名URL的功能。你可以用它来发布一个签名的URL来允许有限的用户访问。你还可以对这个签名地址设置一个期限。参见私有分配模式。
S3还提供了一个用于执行访问验证的系统,即所谓的“桶规则”。你可以使用它来允许特定的用户进行访问或只限制访问HTTPS。
到2012年三月,超过9千亿个对象(文件)存储在S3上,并且在顶峰期,每秒处理了超过70万次的请求。