亚马逊EC2服务问题

我们的应用程序是一个ASP.Net 3.5 Web应用程序。 目前我们正在美国的专用服务器上托pipe我们的应用程序。 现在我们有来自美国和亚洲的用户,按照目前的设置,美国的用户正在得到很快的速度,但是来自亚洲的用户并没有得到如此快速的应用。 然后我们开始了解Amazon EC2服务,我们想了解一下这个服务,但在进一步研究之前,我们想知道我们是否能够在Amazon EC2服务上进行所需的设置。

我们要在Amazon EC2上设置以下环境:

  • 1美国地区的networking服务器
  • 1新加坡地区的networking服务器
  • 1数据库服务器在美国地区
  • 在这两个实例之间创build一个Loadbalancer

我们希望在美国和亚洲的用户正在使用我们的应用程序时进行上述设置,所以我们希望他们能够以良好的速度受益。 根据我们目前的研究,我们开始知道在不同地区的两个实例之间build立一个负载平衡器是不可能的。 它是否正确?

其他问题是关于亚马逊的AutoScalingfunction。 我们浏览了几个博客和网站,发现AutoScaling也是亚马逊的一个很好的function,但是我们想知道这对我们是否有用,或者不考虑上面的设置。 我们对AutoScaling做了一些研究,并且知道为了在Amazon上设置它,我们需要运行一些API脚本,或者我们需要使用它们的API命令行工具。 所以这些是设置的唯一方法,或者有一些基于GUI的工具可用,我们可以使用它来做到这一点。

编辑:
Web应用程序正在被来自世界各地的用户使用4年以上。 而我们的应用程序是有图像,皮肤,主题,CSS,video等

与他们在一起,我们也有像angular色pipe理其他function。 为了从CloudFront运行这个应用程序,我们可以把我们的代码,即dll和

CloudFront上的其他代码相关的项目,然后使用它? 我们还需要使用数据库连接。所以,请让我知道

如果在我的场景中,是否可以使用来自两个使用CloudFront代码的不同区域的多个实例运行我们的应用程序? 请告诉我。 我的另一个问题是关于设置AutoScaling。 根据我们的研究,这对我们来说是一个很好的select,在某些时候,我们可以在特定的时间内获得更多的点击量,所以我们可以使用AutoScalingfunction来保持我们的应用程序为用户提供服务一个或多个实例自动按照要求。 但我们找不到任何选项来configuration使用某些GUI工具。 那么你可以让我们知道这个呢?

这是你尝试完成一个单一的步骤:

  • 从专用服务器去云端
  • 运行您的应用程序的多个实例,而不是一个实例
  • 引入负载平衡

每一步都可能有很多陷阱。 仅举一个例子:如果你仍然只有一个数据库服务器,并且世界上不同地区之间的延迟是一个问题,那么如果你的networking服务器和你的数据库服务器之间的通信只有一个位置比用户代理和你的networking浏览器更“健谈”!

所以我会build议做的是:

  • 对于您的所有静态文件(如JavaScript,图像,CSS,静态HTML文件等),请使用Amazon CloudFront等内容交付networking。 很容易集成到当前的应用程序和部署中,而且更便宜(无需像每天24×7运行多个EC2实例那样收取最低费用),并且您的页面的加载速度将显着加快,特别是每个会话的第一个页面请求。 您的文件将遍布世界上的许多数据中心(而不仅仅是两个),您的实际应用程序仍然运行在单个Web服务器上。
  • 尝试使用更好的链接到国际骨干和路由的托pipe服务提供商。 对于单个HTTP请求,“正常”用户对延迟的影响应该不明显(当然仍然可以测量),通常不超过300毫秒。 在第一个请求(或访问),效果总结,因为许多文件可能不得不一次加载。