Closed. This question does not meet Stack Overflow guidelines。它当前不接受答案。












想改善这个问题吗?更新问题,以便将其作为on-topic用于堆栈溢出。

7年前关闭。



Improve this question




我当前的情况是我有一个基于Struts 2.0并在tomcat + mysql服务器上运行的Java EE应用程序。该应用程序当前托管在具有2GB RAM和60GB磁盘的Virtual Private Server上。但是,在高峰时段应用程序使用量会增加10到20倍,从而导致Tomcat和MySQL服务器崩溃。

我开始寻找替代方案,并发现亚马逊的EC2是最佳选择。我已经成功设置了RHEL AMI的免费微型实例,并在计算机上安装了Tomcat + MySQL。我还在亚马逊网站上阅读了有关EBS,负载均衡器,自动扩展,Cloud Watch和相关资料的信息。

这是我要通过AWS实现的主要目标:
  • 在Amazon(主服务器和辅助服务器)上设置两个EC2实例
  • 一天的大部分时间内,辅助实例将处于非 Activity 状态
  • 在高峰时段,辅助实例应自动唤醒
  • 然后,负载均衡器将根据可用性
  • 开始将流量路由到两个服务器
  • 流量减少后,应自动停用辅助服务器

  • 我有以下愚蠢的问题:)
  • 如何在两个EC2实例之间共享MySQL数据?是否可以在EBS卷上安装MySQL并将该卷同时安装在两个EC2实例上?这是否可以解决我现有的MySQL问题:连接过多,在高峰时段我当前的VPS占用很多连接?
  • 如何在两个EC2实例上共享上传的文件和图像?我是否必须将这些文件存储在外部EBS卷(Tomcat WebApps目录外部)上?
  • 我可以将完整的项目文件夹保留在外部EBS卷中,并且让两个EC2 tomcat实例都进行虚拟映射吗?请让我知道它的优缺点。

  • 此外,有关在EC2上对tomcat进行集群,会话管理,AWS自动扩展和负载均衡器的一些很好的教程也将有很大帮助。

    最佳答案

    好吧,我在构建AWS结构方面还没有真正的经验,但是我会尽力提供帮助。

    1)您无法通过EC2实例共享EBS卷,在这种情况下,您将不得不使用Web服务或RDS ...也许在进行更改时为更好的实例支付更多的费用会更容易,而且,Load Balancer在您的系统上增加了一些费用,请使用aws计算器检查它是否值得。

    2)对于文件,我建议您使用S3,api确实很简单,没有花招,速度也比将图像存储在EBS上便宜得多,只需将链接保存在数据库中,您就可以从任何地方访问。

    3)正如我在第一篇文章中提到的那样,您无法共享EBS量,因此,您将需要两个equals实例。

    另外,看看这个选项:http://aws.amazon.com/pt/elasticbeanstalk/
    这是从aws开始任何事情的一种非常简单的方法。

    08-07 12:20
    查看更多