web服务从amazon aws ec2到本地服务器的高延迟问题

我们有一个遗留的Web应用程序,运行在位于休斯敦的数据中心的数据中心。 我们已经开发了一个新的基于.NET 4的Web应用程序,以便为客户提供新的function。 新的Web应用程序托pipe在amazon aws ec2环境(北维吉尼亚州美国东部1b区)。

为了与遗留应用程序无缝集成,新的Web应用程序使Web服务调用来检索数据。 对于这些Web服务调用,我们看到等待时间超过5秒。 完全相同的Web服务调用在我们的本地PC上返回的时间不到一秒钟(这对于与实际服务器物理接近是有意义的)。 奇怪的是,我们在加利福尼亚州的开发人员也有相同的毫秒响应时间。 我们正在使用第三方工具(如SoapUI),谷歌浏览器扩展(如高级REST客户端,Postman REST客户端等)testingWeb服务响应。

就好像这并不奇怪,我们已经注意到,在testing同一区域和可用区域的同时,某些其他ec2实例的低延迟也是如此。 如果我们能够从所有可以理解的ec2实例中经历高延迟。 但是还有其他的事情正在发生。

比较低延迟和高延迟ec2服务器的各种统计数据和结果并不显示任何显着差异:ping(常量40ms),tracert,winmtr等

我们也有VPC中的实例。 所以我尝试了Web服务主机服务器的公共和私人IP地址,并没有为上述结果有所作为。

我们需要解决这个延迟问题,因为这会导致网页加载非常缓慢(几乎15+秒,这是不可接受的)。

ec2实例具有64位的Windows Server Datacenter。 让我知道,如果有任何其他信息,我可以提供帮助诊断这一点。

首先,这听起来像你将不得不与亚马逊排除故障。 一个简单的tracert到你的目标主机会告诉你延迟的地方。

其次,你应该devise你的应用程序来加载页面,然后显示数据,只要它变得可用,而不是简单地期望它出现。 这听起来像你没有在你的应用程序中使用任何AJAX故障转移。 你怎么能确定你的新应用程序将永远有一个连接回到你的遗留应用程序。

TL; DR:运行一个tracert,打电话给亚马逊,检查你的代码,确保它允许延迟和没有互联网连接的情况。

5+秒的延迟看起来像一个罕见的但不是不寻常的事件。 尝试使用类似iperf的东西来检查休斯顿的数据中心和弗吉尼亚州的ec2实例之间的带宽。 如果有帮助的话,下面是我们最近在两个亚马逊地区(东部和西部)以及这些地区和我们在加州的数据中心主机之间的一些带宽测量:

ec2-east -- ec2-west: 25.75 +-7.96 ec2-east -- localhost: 665.0 +-104.5 ec2-west -- localhost: 79.35 +-4.38 

所有数字均以Mbits / sec为单位,测量二十次并取平均值。 + – 是stdev。

希望这可以帮助。