百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 软件资讯 > 正文

“我将 AWS 的数据传输成本,降低了 99%!”

ninehua 2025-03-01 14:56 23 浏览

本文作者发现,在 AWS 上传输数据有一种方法,可大幅降低传输成本——利用 S3:“如果成本是你最关心的问题,这个方法可以有效降低 99% 以上的成本。”

原文链接:https://www.bitsand.cloud/posts/slashing-data-transfer-costs/

作者 | Daniel Kleinstein
翻译 | 郑丽媛
出品 | CSDN(ID:CSDNnews)

在 AWS 上不小心花太多钱的方式有很多,其中最简单的一种就是不小心传输了数据。截至目前,AWS 对数据传输的收费标准如下:

(1)从 AWS 到公共互联网的数据传输费用从 0.09 美元/GB(弗吉尼亚州北部)到 0.154 美元/GB(开普敦)不等,因此每 1TB 的数据传输费用约为 90-154 美元。

(2)从一个 AWS 区域到另一个 AWS 区域的数据传输费用从 0.02 美元/GB 到 0.147 美元/GB 不等,因此从未离开 AWS 网络的每 1TB 数据的传输费用约为 20-147 美元。

在这两种传输中,你只需要支付出口费用——也就是说,你只要为离开 AWS 区域的数据付费,无需支付传入数据的费用。现在,让我们来看更棘手的数据传输方式:

(3)在同一 AWS 区域内可用区之间的数据传输,每个方向(不论是传入还是传出)的成本为 0.01 美元/GB,这一定价在所有地区都是一样的。因此,在两个相同区域的可用区之间传输 1TB 数据时,出口和入口的费用分别为 10 美元和 10 美元,总计 20 美元。

以上价格在所有主流云提供商之间都差不多。数据传输的价格很容易累加,对云提供商来说这是一个利润极高的收入来源——甚至由于利润很高,Cloudflare 推出了与之竞争的 R2 存储,其特点就是零出口费,同时还发表了一些激烈言辞,抨击 AWS 收取出口费用。

一般来说,AWS 推荐在多个可用区中设置资源,这是确保可靠性和可用性的最佳做法。但这种方式很容易导致资金流入跨区成本的“熔炉”中:任何涉及在不同可用区资源之间发送数据的应用程序,都会产生此类费用。

所以,我们能鱼与熊掌兼得吗?换句话说,我们能否在建立跨可用区基础设施的同时,避免支付跨可用区的数据传输费用?

使用 S3 避免数据传输成本

S3 有一个重要特性——S3 中的大多数存储类,都以区域粒度而非可用区粒度来存储它们的存储桶。AWS 会在后台该区域内至少三个可用区内复制这些数据,这也就是 S3 具有超高持久性和可用性的原因之一。

(注:有两种存储类别,S3 One Zone- infrequency Access 和新推出的 S3 Express One Zone,这两种都只将数据存储在单个可用区中。二者之中,你支付的存储费用可能较低,但要以可用性为代价。例如,S3 One Zone-Infrequent Access 的成本为 0.01 美元/GB,其可用性为 99.5%,而 S3 Infrequent Access 的成本为 0.0125 美元/GB,但其可用性为 99.99%。)

这意味着,标准 S3 存储桶中的数据对其所在区域的所有 AWS 可用区都“平等”可用——对于 S3 来说,从 us-east-1a 或 us-east-1b 下载数据并无区别。

不过,S3 还有一个重要特点:对于标准存储类别,从 S3 下载数据是免费的,只有在区域之间或到公共互联网下载数据时才会产生标准传输费用。此外,任何存储类别上传至 S3 也是免费的!(在数据传输方面,你发出的 S3 API 请求会产生费用,但相对较少)

现在,假设我想在 us-east-1a 或 us-east-1b 的两个 EC2 实例之间传输 1TB 的数据。从上文可以看到,如果我直接传输数据,将花费 20 美元。但如果我从一个实例上传数据到 S3,然后从另一个实例下载呢?

结果是:上传免费,下载也免费,但 S3 存储不是免费的,每月费用为 0.023 美元/GB,即 23 美元/TB。另外,这是以小时为单位收费的,因此我们可以设计我们的上传/下载,使数据在 S3 中的停留时间不超过一小时。假设一个月有 720 个小时,这意味着我们需要支付 23 美元的 1/720,约合 0.03 美元。(记住,我们要在使用完毕后删除存储!)

这样算下来,这次数据传输的费用仅为 0.03 美元,而不是 20 美元——非常棒!如果用具体数字来表示:假设数据传输速率低于一小时,那么我们已经将数据传输费用从 0.02 美元/GB(出口 0.01 美元,入口 0.01 美元),降低到了 0.000032 美元/GB,仅为原始费用的 0.15%!举个极端的例子,用这种方法传输 1PB 的数据大约只需 32 美元,而用标准方法则需要 20000 美元。

不仅如此,S3 还可以无限扩展。因此,用这种方法可以非常方便地将数据从一个 AZ(Availability Zone,可用区)复制到另一个 AZ 中的任意多个实例中,第二个 AZ 中的数千个实例也都可以下载相同的 S3 对象,且占用的时间与下载单个实例相同。S3 存储成本将保持不变,下载成本也将保持免费,这也很棒!

值得一提的是,S3 还有一个重要特性:单个对象不能超过 5TB。因此,如果使用这种方法传输超过 5TB 的文件,则需要对文件进行分片。此外,单个上传文件的大小也不能超过 5GB,如果文件大于 5GB,则需要使用多部分上传(S3 会在后台自动处理)。

演示

接下来,让我们看看实际情况,并为之惊叹。当我第一次想到这个方法时,尽管其背后的所有基本原理都很可靠,但如此大幅节约的成本还是令人难以置信——直到我在成本资源管理器中看到结果时,我才真的敢相信。

我想从一个干净的 AWS 账户开始,这样我们在检查定价时就不会有任何干扰因素。因此,我为演示的每个部分创建了两个账户:

在每个账户中:我们将设置两个 EC2 实例,一个在 us-east-1a 中,另一个在 us-east-1b 中;我们将把两个实例都放在公共子网中,这样就可以轻松地通过 SSH 进入它们;还在实例中随机生成一个 1TB 的文件,以将其传输到另一个实例中。

我们将进行以下这两个实验:

(1)在第一个实验中,我们把两个实例分别放置在两个可用区中带有私有子网的 VPC 中。我们将在实例上,连接到私有子网的接口上,设置一个 netcat 服务器。然后,一个实例将 1TB 的文件传输到另一个实例中。

(2)在第二个实验中,我们将把两个实例放在一个具有 S3 网关端点的 VPC 中,然后创建一个 S3 存储桶,一个实例将把 1TB 的文件上传到存储桶中。上传完成后,另一个实例将下载这个 1TB 文件(然后将其删除!)。

在这两个实验中,我们都将 1TB 的数据从 us-east-1a 传输到 us-east-1b 中。在此之后,我们将等待 AWS 的成本资源管理器更新产生的成本,看看这种方法是否真的有效。

结果

几个小时后,成本资源管理器更新了计费数据。对于标准的数据传输方式,我们原本预计其成本为 20 美元,但最终花费了 21.49 美元(期间,由于我不小心停止了传输,不得不重新启动,导致了部分额外成本,另外创建的文件在技术上为 1024GB,因此基本价格为 20.48 美元):

我们真正想看的实验是基于 S3 的数据传输,我们预计其存储成本仅为几美分,实际结果如下:

只要 8 美分!!!让我们深入了解一下 S3 存储成本的详细情况,同时扩大我们的筛选范围,确保不存在数据传输费用:

的确,我们可以看到没有数据传输成本!但有些奇怪的是,唯一可用的 S3 使用类型与存储无关.....让我们筛选 S3 并按使用类型分组:

实际上,我们根本不需要支付任何存储费用。按理说,我们需要对 S3 请求收费:PUT 请求每 1000 次收费 0.005 美元,GET 请求每 1000 次收费 0.0004 美元,按照上传和下载 1TB 文件所需的请求量相加,得出最终费用。但令人震惊的是,这个过程真的没有存储成本——就好像 S3 不收取任何临时存储费用一样?这很不像 AWS,但我不知道该如何解释。我本来怀疑可能是 S3 免费层隐藏了成本,但我的 S3 存储免费层完全不受实验影响,没有消耗任何成本。

不管怎样,我们已经证明了这个方法是有效的。最后,让我们总结一下。

结论

在幕后,AWS会自动在可用性区之间复制S3数据——不管这对AWS来说可能会产生什么费用,都会被隐藏在你为数据支付的存储成本中。因此,在最根本的层面上,这种方法正在解锁免费的跨区成本——因为在你将数据上传到 S3 时,实际上就已经支付了跨区成本!事实上,如果你将数据一直保留在 S3 中,最终你将支付比跨区成本更多的费用,但通过立即在传输后删除它,你就可以节省 99% 的成本。

这种方法有一些明显的缺点:它不能直接替代现有的数据传输代码,它的延迟可能也比直接传输要高得多。但如果成本是你最关心的问题,那么这种方法可以有效降低 99% 以上的成本。

我真心希望这个方法对你有用,我认为它说明了在 AWS 中你可以节省多少成本——有这么多的服务,这么多的功能,这么多的价格点,几乎总有更多节省的空间。

相关推荐

Origin将普通双Y轴柱状图升级为高级的3D倒影柱状图

双Y轴柱状图可以在同一张图表中展示两组具有不同量纲或数量级的数据。3D倒影柱状图是一种通过三维立体及倒影形式展示多个数据的图表,它通过柱子的高度和颜色来表示不同的数据类别和数值大小,以及通过不同平面展...

Origin 2021 安装教程(附安装包下载)

Origin2021软件介绍广泛用于科研、工程和数据分析领域。它支持多种数据格式,包括Excel、ASCII、CSV等,可以方便地导入和分析各种类型的数据。Origin提供了丰富的数据分析工具,包括...

VIVO origin os系统关闭广告教程(IQOO同理)

以下是我使用期间发现的,如有其他未发现的,欢迎大家评论补充。1设置-安全-更多安全设置-广告与隐私-个性化广告推荐关闭2设置-安全-更多安全设置-应用安装-应用推荐关闭3设置-系统管理-全局搜索-首页...

Origin 2019 安装教程(附安装包下载)

Origin2019软件介绍广泛用于科研、工程和数据分析领域。它支持多种数据格式,包括Excel、ASCII、CSV等,可以方便地导入和分析各种类型的数据。Origin提供了丰富的数据分析工具,包括...

vivo开启Origin OS3系统公测,并且公布首批至第四批可升级名单

vivo在本月初发布了OriginOS3.0操作系统,11月25日开启了首批机型的公测招募活动,首批公测机型包括vivo和iQOO,共计14款机型。首批公测招募的机型有:vivoxfold+、v...

Origin将普通热图升级为高级的3D堆叠热图

3D堆叠热图是一种将多个热图组合在一起展示的图表可视化形式。每个热图代表一个数据集,通过比较不同数据集在不同条件(分组)下的颜色深浅变化来挖掘数据的大小差异或者相关性,能够直观地比较多组数据的相对强度...

最新最详细的Origin2021安装教程(保姆级)

直入正题,下面是Origin2021的安装过程安装包(复制到浏览器打开):%74%2E%63%6E/%41%36%4E%67%6D%54%74%4A安装步骤1、下载得到安装包后,请先解压!一定要先解压...

vivo和iQOO抓紧更新 OriginOS5末班车 12月最后一波升级

进入12月底了,很多老旧机型也已经开始更新各家的新系统了,所以大家一定要注意查看系统版本更新。那么就拿今年国内销量第一的vivo和iQOO来说,OriginOS5都已经推出两个月了,根据之前公布的适...

Origin将普通点线图转换为高级的3D堆叠点线图

点线图用于显示数据随时间或其他连续变量的变化趋势;点线图主要功能是展示数据随时间或连续变量的变化趋势,强调变化幅度,比较多个变量,描述周期性变化,识别异常值,并帮助分析趋势和预测未来趋势。当具有多组数...

蓝厂Origin OS 2.0首批适配机型曝光!有没有你的手机型号?

2020年11月18日蓝厂新系统OriginOS正式发布,并由后来的X60系列首发,新系统发布后网上就有言论:蓝厂补足了最后一块短板!发布至今大概已经有11月的时间了,网上也是褒贬不一,Origin...

Origin2018软件安装包以及安装教程

安装步骤:1.鼠标右击软件压缩包,选择“解压到Origin2018”2.打开“Origin2018\Origin2018”文件夹,鼠标右击“setup”,选择“以管理员身份运行”3.软件正在准备...

Origin这样操作,轻松绘制漂亮的雷达图

背景介绍雷达图是以从同一点开始的轴上表示的三个或更多个定量变量的二维图表的形式显示多变量数据的图形方法。轴的相对位置和角度通常没有信息。雷达图也称为网络图、蜘蛛图、星图、星图、蜘蛛网、不规则多边形...

曝OriginOS新版本在“玩命打磨底层”流畅性比肩鸿蒙

  日前,vivo正式官宣了2022年vivo开发者大会的举办时间:11月8日-11月9日。OriginOS全新版本届时将正式登场。时隔一年,这次全新OriginOS又将给我们带来什么样的全新体验? ...

Dify工具使用全场景:1.0.1发布了,升级(功能篇·第8期)

上一篇:Dify工具使用全场景:API扩展(功能篇·第7期)一、Dify1.0.1版本升级特性Dify1.0.1版本在稳定性、性能和用户体验方面进行了全面升级,修复了之前版本中的一些已知问题,带来...

vivo 新系统originOS 升级公测后增加手机内存

vivo新系统originOS,通过内存融合、进程优化、应用预载三种技术,一方面调用部分闲置的闪存空间,另一方面低系统对内存的占用,从而可以让原硬件内存增加2-3GB内存使用。vivo新系统ori...