我在同一区域EC2
中有一个RDS
和US East(N. Virginia)
,但是两个资源都位于不同的区域; us-east-1a
中的RDS和us-east-1b
中的EC2。
现在的问题是,如果我将两个资源都放在同一个zone
中,那么它会加快与数据库之间的数据传输速度吗?从应用到此实例,我每天大约收到2万至3万的条目。
编辑
我读过here:
每个可用区都是隔离的,但是区域中的可用区通过低延迟链接连接。
现在我想知道这些low-latency links
是否很小,还是应该考虑在同一区域中转移资源以加快数据传输?
结论
如答案和评论中所述:
EC2
和RDS
的一个实例,因此zone
中一项服务的失败将影响整个系统。因此,将它们放在单独的区域中没有任何好处。zones
与low-latency links
连接在一起,但在我的情况下仍然存在一些可以忽略的的延迟。EC2
和RDS
之间还有一笔 0.01美元/ GB 的次要数据传输费用。答案 0 :(得分:4)
将资源移到相同的可用区将使延迟减少很少。 See here获取一些非官方基准。对于每天20k次读/写的用例来说,这不会有太大的不同。
但是,将资源移到相同的可用区将大大提高您的情况的可靠性。如果只有1个相互依赖的数据库和1个计算实例,则没有理由将它们放在单独的可用区中。对于您当前的体系结构,us-east-1a
或us-east-1b
的失败都会使您的项目瘫痪。除非您计划将项目扩展到具有多个数据库和计算实例,否则它们都应位于同一可用区中。
答案 1 :(得分:4)
同一区域内的区域间数据传输的典型值是什么?
尽管AWS不会保证,声明或以其他方式承诺硬数字,但典型的测量方法是不到10毫秒,而我所看到的数字约为3毫秒。
延迟如何影响数据传输吞吐量?
等待时间越高,最大带宽越低。这里有许多因素要考虑。 Brad Hedlund撰写了一篇出色的论文。
我应该担心同一区域中区域之间的AWS网络中的延迟吗?
除非您使用的是具有非常高性能的网络适配器(10 Gb或更高)的最新实例,否则我不必担心。除最特殊的情况外,容错的好处应占主导地位。
在您的用例中,数据库事务在1毫秒和10毫秒之间的差异对事务性能的影响微乎其微。
但是,除非您在多个区域中使用多个EC2实例,否则您希望单个EC2实例与RDS在同一区域中。如果您位于两个区域中,那么任何一个区域的故障都会降低您的配置。
有时候,延迟和网络带宽非常重要。对于这种特殊情况,AWS提供了放置组,因此EC2实例基本上在同一机架中并排在一起,以将延迟最小化到绝对最小。
答案 2 :(得分:0)
根据一些测试,我可以看到同一区域内的可用区之间有 600 微秒(0.6 毫秒)的延迟。一根光纤每公里有 5 微秒的延迟(延迟),而 azs 之间的距离不到 100 公里,因此结果匹配。