让我们继续进行关于AWS成本优化主题的旅程。之前的部分--AWS。成本资源管理器--在CloudWatch日志的例子上检查成本和AWS:成本优化--购买RDS保留实例。
基于云的架构的缺点之一是,它的成本可能比使用自己的裸机服务器时高得多。在这种情况下,云供应商可能有一个混乱的计费方案,你将为使用的资源、流量等付费。
因此,在这篇文章中,我们将尝试了解--在使用亚马逊网络服务时要支付什么,并在下面的部分将检查有用的AWS服务,以控制和优化AWS环境,如成本资源管理器、可信顾问、计算优化器、AWS预算等。
AWS的成本类别
所有的成本都可以分成三个主要组别--计算、存储和数据传输。
- 计算:对使用的CPU和内存容量的租金收费,价格取决于使用的实例类型
- **存储:**对存储的数据进行收费
- 数据传输:在大多数情况下,入站流量或同一AWS区域的服务之间的流量是免费的,但有例外。实际上,AWS上的流量费用将在本文章的AWS数据传输费用部分详细描述 UPDATE
而我要增加一个数据处理的类别:这将包括HTTP(S)请求和AWS服务的数据处理的费用。
了解了这些类别,就会很容易理解你在AWS上支付的费用。
让我们通过服务实例来仔细看看。
- 计算。
- 实例使用时间*(EC2、RDS、Redshift)*
- 无服务器计算*(Lambda)*
- T-family实例的CPU点数使用("T2/T3/Т4无限模式")(EC2、RDS、Redshift)
- 支付类型 - 按需、现货、保留等*(EC2、RDS)*
- 部署类型 - 一个或多个可用性区域*(RDS)*
- 实例类型和它的CPU和RAM容量
- 存储。
- 弹性块存储(EBS)。
- 读/写操作的数量
- 使用的数据存储
- 数据传输
- 快照存储(通过S3价格)
- 磁盘类型 - SSD, HDD
- 简单存储服务(S3)。
- 存储类型*(标准、不经常访问、冰川*)。
- 存储对象的数量
- 弹性块存储(EBS)。
- 数据传输。
- 发送的数据*(NAT网关,LoadBalancer,EC2/EBS,S3*)
- 数据处理。
- 接收和/或处理的数据量*(Kinesis、CloudWatch Logs)*
- 处理的HTTP(S)请求的数量*(CloudFront, API Gateway*)。
此外,我们还要为以下情况收取额外费用。
- 对AWS API的API请求(CloudWatch指标收集、CloudTrail事件)
- AWS Marketplace许可证
- 以及针对某项AWS服务的额外费用,如AWS WAF WebACL中的一些规则,会影响WAF的收费,RDS Insights,EC2的扩展CloudWatch监控,等等。
AWS服务支付表
让我们把主要的AWS服务收集到一个表中,看看我们在使用一个服务时要支付什么费用。
| AWS服务 | 计算 | 存储 | 数据传输 | 数据处理 | 评论 |
| EC2 | - 每分钟对运行中的实例 | - 见EBS | - 出境数据传输 | - | - 价格取决于定价模式(按需、保留、现货、节约计划)。 |
| EBS | - | - 每GB存储在EBS上 - 快照存储(在S3)每GB - I/O操作 | - 快照传输到AWS S3(如果是跨区域的)。 | - 每MB/s (对于gp3) | - 价格取决于EBS类型(SSD支持,HDD支持) - EBS快照存储收费 |
| RDS | - 在运行的实例上每分钟 | - 每GB存储 - I/O操作 - 备份(快照)存储 | - 快照导出到S3 - 向外传输数据 | - | - 价格取决于单AZ或多AZ部署模式 - 跨AZ复制数据传输是免费的 |
| S3 | - | - 每GB存储 - 每个存储对象的数量 | - 外向数据传输 | - 请求数(PUT, COPY, POST, 等) - 额外的管理,如S3库存,分析,对象标签 | - 取决于存储类别(S3标准,S3冰川等) - 在同一AWS区域的S3桶之间的数据传输是免费的 - 在同一AWS区域从S3到AWS服务的数据传输是免费的 |
| CloudFront | - | - | - 从边缘位置到互联网的数据传输 - 从边缘位置到原点的数据传输 | - HTTP或HTTPS请求的数量 | - 价格取决于价格等级(所有价格等级,200价格等级,100价格等级)。 |
| 兰姆达 | - 在函数执行过程中每秒使用的计算时间 - 函数调用的数量 - 使用的内存 - 提供的并发量 | - | - AWS地区的出站数据传输 | - | - Lambda和一些AWS服务之间的数据传输是免费的 |
AWS数据传输成本
让我们来讨论一下最有趣的话题:在AWS上发送流量时,我们要为什么付费?
一般来说,AWS上的流量可以分为两部分 - 亚马逊网络服务和互联网之间,以及AWS网络内部。另外,流量的价格可以根据它的方向而不同 - 进入同一个或另一个可用区、AWS VPC或AWS区域。
因此,请记住,。
- 所有向外的流量将对所有具有弹性网络接口(EC2、ALB)的服务进行收费
- 所有跨可用性区域的流量
- 所有跨区域的流量
互联网上的AWS数据传输
从互联网进入AWS的入站流量
几乎所有从互联网到AWS云的入站流量都是免费的。
反之亦然--几乎所有的出站流量都会花费我们一些钱。
从AWS云到互联网的出站流量
从AWS账户到互联网的出站流量将按AWS区域价格计费,因为它们是不同的。请看亚马逊EC2按需定价>数据传输--数据从互联网传输到亚马逊EC2和数据从亚马逊EC2传输到互联网。
另外,当AWS将向您收取出站流量时,它将汇总您账户中以下服务的出站流量。
- 亚马逊RDS
- 亚马逊Redshift
- 亚马逊SES
- 亚马逊SimpleDB
- 亚马逊EBS
- 亚马逊S3
- 亚马逊冰川
- 亚马逊SQS
- AWS存储网关
- 亚马逊SNS
- 亚马逊DynamoDB
- 亚马逊CloudWatch日志
在AWS云内的数据传输成本
区域间数据传输
AWS区域之间的数据传输将按源区域的价格收费。在Amazon EC2 On-Demand Pricing > Data Transfer页面中的Data Transfer OUT From Amazon EC2 To的同一个表格中,你可以看到每个地区的价格。
例如,我们在us-east-2,俄亥俄州有一个S3桶,它有S3复制配置到us-west-1,北加州的一个桶,见AWS。S3跨区域复制与DeleteMarkers设置的更多细节。 在这种情况下,我们将按us-east-2, Ohio的价格收费。
AWS区域和直接连接地点之间的数据传输
虽然主要规则是传入的流量是免费的,但对于Direct Connet来说,有一个例外,因为它的传入流量将被收费,并且取决于源和目标区域的价格。请看AWS直接连接的数据转出(DTO)价格。
例如,从俄亥俄州到北加州的直接连接的数据传输将花费每GB 0.0200美元,而从俄亥俄州到爱尔兰,eu-west-1 - 每GB发送0.0282美元。
CloudFront边缘位置和AWS区域之间的数据传输
CloudFront的边缘位置是AWS数据中心,用于存储从源头获得的信息。
在这里,我们要支付的是。
- 从边缘位置到互联网的数据传输
- 从Edge地点到起源地的数据传输
- 处理的HTTP(S)请求的数量
再说一遍--价格将取决于源地和目标地区,更多信息请看Amazon CloudFront定价。
在AWS区域内的AWS数据传输
当AWS服务在同一AWS区域的范围内进行通信时,一些流量也会被收费。
- 亚马逊EC2、AWS容器、亚马逊RDS、亚马逊Redshift、亚马逊DynamoDB加速器(DAX)、亚马逊ElastiCache实例或不同可用区之间的弹性网络接口之间的数据传输,无论它是通过公共或私人IP发送,还是使用弹性IPv4,都将在两个方向上花费每GB 0.01美元
例如,我们从VPC-1的Redshift集群发送500GB到同一VPC的EC2实例,但相邻的可用区 - 在这种情况下,我们将对从VPC-1发出的流量收取5美元,对进入VPC-2的流量收取另外5美元。
- 在同一可用区VPC的EC2实例、容器或弹性网络接口之间使用公共IP或弹性IP进行数据传输,每个方向的费用为0.01美元/GB
如果你有两个EC2,每个都有自己的弹性IP连接 - 那么我们将收取数据传输的费用。
- 在同一可用区和同一VPC的EC2实例、容器或弹性网络接口之间使用私有IP进行数据传输是免费的。
这里很简单:只在VPC内使用私有IP,不要通过AZ边界--你就不用付钱了。
- 不受可用区或VPC限制的AWS服务(如AWS S3、DynamoDB、SES、Kinesis等)与同一AWS区域的EC2实例或其他服务之间的数据传输是免费的。
另外,对于使用多AZ部署的服务,如Amazon Aurora、Amazon Neptune和Amazon RDS,一些跨AZ流量是免费的。
另外,在同一AWS区域的经典或应用负载平衡器和EC2之间的流量也是免费的。
AWS流量计费图
在写这篇文章的时候,我在网上搜了很多资料,都没有得到类似于AWS流量计费地图的说明性演示。我找到的唯一东西是AWS博客上的《常见架构的数据传输费用概览》。
因此,在下面的方案中,我试图展示哪些流量将在AWS上收费。
让我们从一个 "入口 "开始逐步检查 - 区域1和AZ-1的负载平衡器。
Region-1, Availability Zone-1:
- LoadBalencer传入的流量是收费的(因为LCU包括处理的字节数)
- 然后,如果流量从ALB到EC2 - 它是免费的
- EC2通过NAT网关发送响应,在此期间,EC2和NAT网关之间的数据传输是免费的,但NAT网关的出站流量将被计费
- EC2向同一AWS区域内的CloudFront边缘位置发送数据,这是免费的,但从CloudFront向访问者发送数据是收费的
- 从CloudFront边缘位置到EC2的数据流量将被计费
- EC2和同一地区的S3之间的数据传输是免费的
- EC2通过VPC对等连接与正常AZ中的RDS主实例进行对话 - 这也是免费的
- EC2通过VPC对等连接与另一个AZ的RDS Slave对话--这将是收费的(跨AZ)。
- 在同一AWS区域的RDS主实例和其RDS从实例之间的复制流量是免费的
Region-1, Availability Zone-2:
- 从AZ-2的EC2到AZ-1的EC2的数据流量是收费的,因为它是跨AZ的流量。
- 在AZ-2的EC2和RDS Slave之间的流量是免费的
- 但从EC2和RDS主站的流量将被收取费用,因为它也是跨A区的。
区域-2,可用区-3。
- 从该区域的EC2到区域1的EC2的出站流量将被计费,因为这是跨区域的传输。
- 从本区域的EC2到区域1的S3桶的出站流量将被计费,因为这是跨区域的传输。
AWS流量建议
- 尽量将您的所有工作负载保持在同一个AWS区域,如果需要使用其他区域,请选择价格最低的区域。
- 尽量将你的所有工作负载保持在同一个可用区和VPC中,并使用私有IP进行连接
- 避免使用NAT网关,因为它是按出站流量收费的。在可能的情况下,使用互联网网关。
- 如果你需要向用户发送数据,请使用CloudFront--与直接从EC2实例发送流量相比,它的速度更快,费用更低。
有用的链接
-
[
](twitter.com/share?text=…: Linux, DevOps, and system administration "Tweet This Post")
-
[
](www.linkedin.com/shareArticl…: Linux, DevOps, and system administration)
类似的帖子
-
09/07/2021 aws:成本资源管理器--对CloudWatch Logs实例的成本检查 (0)
-
09/04/2020 AWS弹性Kubernetes服务:负载测试和高负载调整--问题和解决方案( 0)
-
10/28/2019 dnsmasq:AWS--"名称解析暂时失败",日志、调试和dnsmasq缓存大小 (0)
-
08/15/2019 Kubernetes:第三部分--AWS EKS概述和手动EKS集群设置 (0)
-
03/18/2019 Terraform:用AWS EC2、VPC和AWS跨区域VPC对等连接创建一个项目 (0)
The postAWS:成本优化--AWS中的服务费用概述和流量成本首次出现在RTFM:Linux、DevOps和系统管理上。


