同一区域内各区域之间的 AWS 延迟
AWS latency between Zones within a same Region
我在同一个区域 US East(N. Virginia)
有一个 EC2
和 RDS
,但是这两个资源在不同的区域; us-east-1a
中的 RDS 和 us-east-1b
中的 EC2。
现在的问题是 如果我将两种资源放在同一个 zone
中,那么它会加速数据传输 to/from DB 吗?我每天从应用程序收到大约 20k-30k 个条目到这个实例。
编辑
我读 here 是:
Each Availability Zone is isolated, but the Availability Zones in a region are connected through low-latency links.
现在我想知道这些 low-latency links
是否非常小,或者我是否应该考虑将我的资源转移到同一区域以加快数据传输速度?
结论
正如答案和评论中所讨论的那样:
- 由于我只有一个
EC2
和 RDS
实例,所以 zone
中的一项服务失败将影响整个系统。所以将它们放在单独的区域中没有任何优势。
- 即使
zones
与 low-latency links
连接在一起,但仍然存在一些延迟,在我的情况下 可以忽略。
- 在不同区域的
EC2
和 RDS
之间还收取 0.01 美元/GB 的少量数据传输费用。
将资源移动到同一个 AZ 会减少延迟。 See here 用于一些非官方基准测试。对于您每天 20k reads/writes 的用例,这不会产生很大的不同。
但是,将资源移动到同一个 AZ 会显着提高您的情况的可靠性。如果您只有 1 个数据库和 1 个相互依赖的计算实例,那么没有理由将它们放在不同的可用区中。对于您当前的架构,us-east-1a
或 us-east-1b
中的任何一个失败都会导致您的项目失败。除非您计划扩展您的项目以拥有多个数据库和计算实例,否则它们应该位于同一个 AZ 中。
同一区域域间数据传输的典型值是多少?
虽然 AWS 不保证、陈述或以其他方式承诺硬数字,但典型的测量结果是低于 10 毫秒,我所看到的数字大约是 3 毫秒。
延迟如何影响数据传输吞吐量?
延迟越高,最大带宽越低。这里有许多因素需要考虑。 Brad Hedlund.
写了一篇优秀的论文
我是否应该担心同一地区不同区域之间 AWS 网络的延迟?
除非您使用具有非常高性能网络适配器(10 Gb 或更高)的最新实例,否则我不会担心。除了最特殊的情况外,容错的好处应该优先。
对于您的用例,数据库事务,1 毫秒和 10 毫秒之间的差异对您的事务性能的影响微乎其微。
但是,除非您在多个区域中使用多个 EC2 实例,否则您希望您的单个 EC2 实例与 RDS 位于同一区域中。如果您在两个区域中,则任一区域的故障都会导致您的配置失败。
有时延迟和网络带宽非常重要。对于这种特殊情况,AWS 提供置放群组,以便 EC2 实例基本上位于同一个机架中并靠近在一起,以将延迟降至绝对最低。
根据一些测试,我可以看到同一区域内可用区之间的延迟大约为 600 微秒(0.6 毫秒)。一根光纤每公里有5微秒的延迟(延迟),而azs之间的距离不到100公里,因此结果匹配。
我在同一个区域 US East(N. Virginia)
有一个 EC2
和 RDS
,但是这两个资源在不同的区域; us-east-1a
中的 RDS 和 us-east-1b
中的 EC2。
现在的问题是 如果我将两种资源放在同一个 zone
中,那么它会加速数据传输 to/from DB 吗?我每天从应用程序收到大约 20k-30k 个条目到这个实例。
编辑
我读 here 是:
Each Availability Zone is isolated, but the Availability Zones in a region are connected through low-latency links.
现在我想知道这些 low-latency links
是否非常小,或者我是否应该考虑将我的资源转移到同一区域以加快数据传输速度?
结论
正如答案和评论中所讨论的那样:
- 由于我只有一个
EC2
和RDS
实例,所以zone
中的一项服务失败将影响整个系统。所以将它们放在单独的区域中没有任何优势。 - 即使
zones
与low-latency links
连接在一起,但仍然存在一些延迟,在我的情况下 可以忽略。 - 在不同区域的
EC2
和RDS
之间还收取 0.01 美元/GB 的少量数据传输费用。
将资源移动到同一个 AZ 会减少延迟。 See here 用于一些非官方基准测试。对于您每天 20k reads/writes 的用例,这不会产生很大的不同。
但是,将资源移动到同一个 AZ 会显着提高您的情况的可靠性。如果您只有 1 个数据库和 1 个相互依赖的计算实例,那么没有理由将它们放在不同的可用区中。对于您当前的架构,us-east-1a
或 us-east-1b
中的任何一个失败都会导致您的项目失败。除非您计划扩展您的项目以拥有多个数据库和计算实例,否则它们应该位于同一个 AZ 中。
同一区域域间数据传输的典型值是多少?
虽然 AWS 不保证、陈述或以其他方式承诺硬数字,但典型的测量结果是低于 10 毫秒,我所看到的数字大约是 3 毫秒。
延迟如何影响数据传输吞吐量?
延迟越高,最大带宽越低。这里有许多因素需要考虑。 Brad Hedlund.
写了一篇优秀的论文我是否应该担心同一地区不同区域之间 AWS 网络的延迟?
除非您使用具有非常高性能网络适配器(10 Gb 或更高)的最新实例,否则我不会担心。除了最特殊的情况外,容错的好处应该优先。
对于您的用例,数据库事务,1 毫秒和 10 毫秒之间的差异对您的事务性能的影响微乎其微。
但是,除非您在多个区域中使用多个 EC2 实例,否则您希望您的单个 EC2 实例与 RDS 位于同一区域中。如果您在两个区域中,则任一区域的故障都会导致您的配置失败。
有时延迟和网络带宽非常重要。对于这种特殊情况,AWS 提供置放群组,以便 EC2 实例基本上位于同一个机架中并靠近在一起,以将延迟降至绝对最低。
根据一些测试,我可以看到同一区域内可用区之间的延迟大约为 600 微秒(0.6 毫秒)。一根光纤每公里有5微秒的延迟(延迟),而azs之间的距离不到100公里,因此结果匹配。