S3 是否比 EC2 DIY 解决方案便宜(适用于小文件)

Jan*_*ann 5 amazon-s3 amazon-ec2

通过 S3 托管图像和脚本真的比使用运行 nginx/varnish/etc 的 EC2 实例更便宜吗??

在我看来(但我才刚刚开始使用 AWS),如果您不使用精灵或其他优化,请求成本将是主要因素……或者我是否遗漏了什么?

Jus*_*ott 5

使用 S3,您需要支付传输和存储费用。使用 EC2,您还需要为实例的运行时间付费。无论哪种方式,您都需要支付传输和存储费用,因此在所有情况下,仅使用 S3 进行文件托管应该更便宜。EC2 应该总是更昂贵,因为除了存储和传输之外,您还要为实例的运行时间付费。亚马逊有一个定价计算器,您可以根据自己的使用案例以及预计所需的传输和存储来计算数字。


Jer*_*use 3

你有点试图在这里比较苹果和橙子。亚马逊的EC2(弹性计算云)和S3(简单存储服务)服务有两个完全不同的目的。S3 用于冗余存储,本身并不是“服务器”。是的,如果您有一个托管在其他地方的网络服务器,您可以使用 S3 作为 CDN 的一种形式,并使用 S3 和 Cloudfront,但主要目的是存储。另一方面,EC2 是一个 VPS(虚拟专用服务器),能够运行 nginx、varnish、apache 等守护进程。S3 本身无法为您执行此操作。

如果您为 EC2 创建自己的 AMI(亚马逊系统映像),那么您会将它们存储在 S3 中,并且您将支付与之相关的存储费用。EC2 实例可以在不使用任何 S3 的情况下运行。但是,如上所述,当实例不再运行时,EC2 实例不会存储关闭后的数据。为了在启动和关闭之间保留数据,您必须将其存储在 S3 上,或者使用可以为您保留数据的 EBS(弹性块存储)。

入站、出站和给定区域内的带宽以及存储容量、I/O 请求等有不同的定价等级。这变得很复杂,有几个计算器可以帮助您计算出来。我已经使用公式编写了自己的电子表格,并导入了我的使用历史记录 CSV 下载,以帮助估算未来的使用成本。我在 EC2 中为一个客户端管理多个服务器实例已经有 9 个多月了。我发现最容易计算的成本是实例运行时间,因为它是每个实例的简单小时费率。之后,EBS 卷和 S3 存储容量很容易计算,但 I/O 请求和带宽有时可能会令人惊讶。

我的 S3 存储成本通常非常微不足道(通常 < 2 美元/月),并且我存储了多个 AMI 和应用程序服务器访问的一些文档,以及实例的初始启动。我的实例使用在 Amazon 外部的 VPS 上维护的 Puppet 服务器,该服务器也用作我的监控和跳转盒服务器。平均运行大约 7 个实例,我发现我的 I/O 请求在 5-800 万个之间,平均成本 < 1 美元/月。过去 6 个月,我的 EBS 卷平均约为 10GB,而每月成本仅略高于 1 美元。我使用 EBS 卷来存储静态内容以及 MySQL 数据库文件和二进制日志。入站数据传输量在 20-24GB 之间,平均约为 2.25 美元/月,而出站数据传输量在 241-326GB 之间,平均约为 42 美元/月。我的实例之间的区域带宽在 130MB-535GB 之间运行,因为并非所有实例都位于相同的可用区,平均约为 2.45 美元/月。尽管如此,正如我所说,每小时费率是最容易计算的,我们的 EC2 实例本身每月的费用高达 1700 美元。我们目前正在考虑转向预留实例与按需实例,并且在扣除获取预留实例的前期成本(6-9K 美元)后,应将其降至每月 600 美元左右。