通过S3托pipe图像和脚本比运行nginx / varnish / etc的EC2实例更便宜。 ?
在我看来(但我刚刚开始使用AWS),请求成本将是主要因素,如果你不使用精灵或其他优化…或者我错过了什么?
你有点儿试图在这里比较苹果和橘子。 亚马逊的EC2(弹性计算云)和S3(简单存储服务)服务服务于两个完全不同的目的。 S3用于冗余存储,本身不是“服务器”。 是的,如果您有其他networking服务器,您可以使用S3作为CDN的一种forms,并使用S3和Cloudfront,但主要目的是存储。 另一方面,EC2是一个VPS(虚拟专用服务器),能够运行像nginx,varnish,apache等守护进程.S3本身不能为你做到这一点。
如果您为EC2创build自己的AMI(Amazon Machine Image),那么您可以将它们存储在S3中,您将支付与此相关的存储费用。 一个EC2实例可以在没有任何S3的情况下运行。 但是,如上所述,EC2实例在实例不再运行时不会将数据存储过去。 为了在启动和closures之间保留数据,您必须将其存储在S3上,或者使用可以为您保留数据的EBS(弹性块存储)。
在入站,出站和给定区域的带宽以及存储容量,I / O请求等方面有不同的定价等级。这变得复杂,并且有几个计算器可以帮助你弄清楚。 我使用公式编写了自己的电子表格,可以导入我的使用历史loggingCSV下载,以帮助估算未来的使用成本。 现在,我已经为EC2中的客户pipe理了几个服务器实例,现在已经有9个多月的时间了。 我发现计算最简单的成本是实例运行时,因为它是每个实例的简单小时率。 之后,EBS卷和S3存储容量很容易计算,但I / O请求和带宽有时会令人惊讶。
我的S3存储成本通常很小(通常小于2美元),我存储了几个AMI和应用服务器访问的一些文档,以及最初启动的实例。 我的实例使用维护在Amazon以外的VPS上的Puppet服务器,该服务器也用作我的监视和跳转服务器。 平均运行7个实例,我发现我的I / O请求在5-8百万之间,平均成本低于1美元。 在过去的6个月里,我在EBS的平均数据量上平均只有10GB,而且每月的成本只有一美元多一点。 我使用EBS卷作为我的静态内容以及我的MySQL数据库文件和二进制日志。 数据传input站运行在20-24GB之间,平均值约为2.25美元/月,出站运行在241-326GB之间,平均约为42美元/月。 实例之间的区域带宽运行在130MB-535GB之间,因为不是所有的实例都在相同的可用区域,平均每个月$ 2.45。 所有这一切,正如我所说的小时费率是最容易计算的,EC2实例本身每月高达1700美元。 我们目前正在考虑转向保留实例与按需实例,并且在获得保留实例的前期成本($ 6-9K)之后,将其降至每月600美元左右。
使用S3,您需要支付传输和存储费用。 有了EC2,你还需要花费实例运行的时间。 无论哪种方式,您都需要支付传输和存储费用,所以在所有情况下,使用S3进行文件托pipe应该更便宜。 EC2应该总是更加昂贵,因为除了存储和传输之外,您还需要支付实例运行的时间。 亚马逊有一个定价计算器 ,你可以用它来根据你自己的使用情况和估计的转移和存储需求来玩数字。
在S3上托pipe静态文件比支付任何专用服务器来承载该内容便宜。 它也减轻了你的一些头痛,如HTTP服务器configurationopimization,磁盘空间pipe理和一般服务器问题。
如果您希望进一步提高网站访问者的下载性能,它还可以让您轻松利用Amazon的CDN(CloudFront)。
您需要考虑将会将s3数据提供给networking服务器的stream量。 ec2你按小时支付,但你得到160GB的本地存储,s3你支付存储和带宽。
一般来说,我认为对于一个web服务器来说,ec2实例要么更便宜,要么等于s3。 但看看定价计算器来validation
由于S3本质上是提供分布式networking文件系统,所以试着用EC2节点来构build它。
MongoDB / GridFS将是一个令人信服的比较。
据说S3有不时读/写超时,并build立自己的caching层也可能有帮助。