我目前在悉尼,确实有以下情况:
我需要这个以进行冗余,这是简化的方案。
当我的EC2悉尼应用程序连接到N. Virgnia上的RDS时,几乎需要2.5秒才能得到结果。我们可以考虑:好的,那就是等待时间。
但是,当我将请求发送到EC2 N. Virginia时,我在不到500ms的时间内得到了结果。
为什么从区域外部访问RDS时连接速度较慢?
我的意思是:当我也在计算机上运行应用程序时,也会遇到这种缓慢的连接。但是,当应用程序与RDS位于同一区域时,在我自己的计算机上可以更快地工作。
答案 0 :(得分:0)
您向RDS提出的请求很可能需要多次往返才能完成。即首先,您的EC2实例向RDS请求某些内容,然后根据第一个请求进行其他请求,等等。在没有看到数据库代码的情况下,很难确切地说出是什么原因。
然后您说,当您与远程EC2实例通信时,您会在不到500毫秒的时间内获得响应。这表明建立一个TCP连接并发送带有回复的单个请求为500毫秒。基于此,我猜测您的数据库连接至少需要5倍的来回流量。
RDS在区域外使用并不会带来额外的损失,但是大多数数据库协议并未针对高延迟条件进行优化。在悉尼设置只读副本可能会更好。
答案 1 :(得分:0)
如果您尝试使用面向公众的网络连接RDS,则可能会很慢。 AWS已启动cross region VPC peering,请对等所有区域的VPC(确保不会出现IP冲突),然后尝试使用专用连接进行连接。