amazon-web-services - AWS 中的性能测试:如何保证带宽
问题描述
我需要针对基于 Elastic Beanstalk 的应用程序运行性能测试,该应用程序位于 ELB 前面的 AWS 中。我预计流量约为 25 Gbit/s
根据 AWS 要求,我正在使用我的 AWS 组织的另一个账户(专用于测试)。该应用程序是我的 AWS 组织的另一个账户中的生产应用程序。
我的性能测试将使用生产网站的 DNS 条目,它将由具有 Internet 网关的 VPC 子网中的 EC2 实例执行。
我对带宽有疑问,从我阅读的 AWS 文档中我不明白是否会有带宽限制?
从这个答案看来我可能会面临这样的问题:
在这种情况下,我如何运行反映生产中发生的情况的性能测试,即通过指向 ELB 的 DNS 条目。
假设我在测试账户 VPC 和生产 VPC 之间创建了对等连接,最大带宽是多少?
我的测试表明,使用 3 c5d.9xlarge 使用 VPC 对等连接,我只能获得大约 10 Gbits/s,因此无论实例数量如何,它都是最大值。
另一项测试表明,在 3 c5d.9xlarge 使用 Internet 网关的情况下,我得到的带宽上限约为 12 Gbits/s,但我不知道真正的限制是什么。
那么我的选择是什么?- VPC Peering 不是 - 来自多台机器的 Internet 网关可能是,但我想要一种保证 - 是否有更好的选择(中转网关?)?
解决方案
我需要针对基于 Elastic Beanstalk 的应用程序运行性能测试,该应用程序位于 ELB 前面的 AWS 中。我预计流量约为 25 Gbit/s
这听起来很好,ELB 可以轻松处理 25 Gbps。
确保您的测试反映了您的生产负载将是什么样的。如果您的生产负载全部来自极少数来源,请复制它。如果它来自大量来源(例如,客户端应用程序的大量用户,每个用户都会产生一点流量,从而产生大量的总流量),请确保复制它。如果您在这种测试中没有经验,可能会有一些细微差别,并且尽可能接近地再现真实环境是避免任何这些问题的最简单方法。
要使用大量相对低带宽的源进行测试,请查看以下项目:
我对带宽有疑问,从我阅读的 AWS 文档中我不明白是否会有带宽限制?
AWS 中的某些组件有带宽限制,而有些则没有。
具体来说,每个 EC2 实例都有其支持的最大带宽,具体取决于实例类型。此外,您应该知道,即使给定的 EC2 实例类型支持特定带宽,您也需要确保在该实例上运行的操作系统支持该带宽。这通常意味着您需要确保使用正确的驱动程序。根据我的经验,只要您使用可用的最新版本的 Amazon Linux,一切都应该“正常工作”。
此外,正如我稍后将详细提到的,VPC 对等连接和 Internet 网关不限制带宽。
假设我在测试账户 VPC 和生产 VPC 之间创建了对等连接,最大带宽是多少?
VPC 对等连接不是带宽瓶颈。也就是说,它们不会限制您通过对等连接所拥有的带宽量。
问:对等连接是否有任何带宽限制?
对等 VPC 中实例之间的带宽与同一 VPC 中实例之间的带宽没有区别。
[nb:常见问题中有关于归置组的说明,但你没有提到,所以我删除了它;如果您正在使用该功能,请澄清,因为根据您最初在问题中描述的内容,您很可能不应该使用它]
我的测试表明,使用 VPC 对等连接的 3 个 c5d.9xlarge,我只能得到大约 10 Gbits/s
c5d.9xlarge 实例类型限制为 10 Gbps。因此,如果您将其用于测试,您将永远不会看到超过 10 Gbps 的实例。
更多信息:Amazon EC2 C5 实例。
此外,请确保检查EC2 C6g 实例。我没有亲自使用过它们,但它们应该更快且成本更低:它们仅在 2 天前发布。
另一项测试表明,在 3 个 c5d.9xlarge 使用 Internet 网关时,我得到的带宽上限为 12 Gbits/s [...]
互联网网关不是带宽瓶颈。换句话说,互联网网关没有带宽限制。
事实上,没有“单一设备”是互联网网关。更多地将其视为一个“标志”,它告诉 VPC 网络系统您的 VPC 具有进出 Internet 的路径。
问:互联网网关是否有任何带宽限制?我需要担心它的可用性吗?会不会是单点故障?
不会。Internet 网关是水平扩展的、冗余的和高度可用的。它不施加带宽限制。
那么我的选择是什么?- VPC Peering 不是 - 来自多台机器的 Internet 网关可能是,但我想要一种保证 - 是否有更好的选择(中转网关?)?
VPC Peering 可能是这里的最佳选择。正如我所提到的,它不会限制您的带宽。检查我之前提到的其他内容:实例类型、操作系统、驱动程序等。
为此使用 Internet 网关意味着,从路由的角度来看,您的流量正在“离开 AWS”并“进入 Internet”(即使在物理上,它可能永远不会真正离开 AWS 的物理设备)。这意味着,从计费的角度来看,您需要支付“数据传输到 Internet”的费用。它们明显高于您为 VPC 对等互连支付的费用。
我认为这里不需要中转网关,因为您描述的场景非常简单,可以通过 VPC 对等连接来解决。
推荐阅读
- iis - 如何授予 IIS 进程读取网络位置的权限?
- apache-kafka - 如果 Kafka 丢失分区同步会发生什么
- java - 使用 Mockito 对 Spring Boot 控制器进行单元测试
- r - 无法将用户输入传递到 R 闪亮模块
- vue.js - Vue-jest 找不到 babel
- python - 从模型创建 graphene-django 接口
- php - htaccess 重写资产目录
- android - Gradle下载错误版本的appcompat
- embedded - 其他节点如何在 CAN 总线上确认传输的 CAN 报文?
- asp.net - .NET Core 中的 GraphQL 查询返回空结果