首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >在亚马逊EC2上部署Java应用程序

在亚马逊EC2上部署Java应用程序
EN

Stack Overflow用户
提问于 2011-01-28 17:38:48
回答 4查看 3K关注 0票数 14

我们有一个Java应用程序(部署在JBoss、MySQL、MongoDB上的Java文件),我们希望将其部署到Amazon实例上。关于部署最佳实践,我有几个问题。

  1. 什么是我们可以依赖的最常用的Linux AMI来进行健壮的部署(有这么多的Linux变体,我不确定哪个是常用的,Fedora,CentOS,Red,SUSE .)
  2. 我们如何处理生产升级(EAR文件修改或模式升级)。是否有任何工具可用于处理这些更改的安装或回滚。
  3. 数据库有什么样的数据备份功能?
  4. 我应该依赖亚马逊RDS来获得MySQL支持吗?
  5. 我应该如何处理对MongoDB的支持?

这是第一次,我是第一次主持一个网络应用程序,并希望得到一些关于如何管理生产实例的投入。

EN

回答 4

Stack Overflow用户

发布于 2011-01-31 23:13:21

  1. 我同意Mark的回答:使用您最熟悉的Unix变体。选择一个有良好云支持的人可能是有代价的。对于我的网站,我使用Ubuntu。
  2. 我有一个共同的映像,这是我所做的每个版本部署的基础。我让www.mysite.com指向一个弹性IP,这样我就可以决定它到哪个实例了。公共映像包含我需要安装的所有软件(Postgres/Postgis/Tomcat/等等),但数据库和web服务器数据文件夹以及与弹性块存储(EBS)实例有符号链接。 当需要进行部署时,我启动一个新实例,冻结并快照生产上的EBS卷,并生成新卷。我将我的新实例指向新卷,然后安装所需的任何内容。一旦我成功地测试了所有的东西,我就可以切换Elastic来指向新的实例,并且一切都在继续。 我要指出的是,我目前的优势是只有我可以修改数据库;没有用户可以修改数据库。这很快就会成为一个问题。
  3. 如果在EBS卷上使用XFS文件系统,那么可以告诉XFS冻结文件系统(因此不会发生更新),然后调用XFS api对卷进行快照,然后解冻文件系统。结果是快照被快速捕获并发送到S3。我有一个夜间剧本来做这个。
  4. 如果RDS看起来符合您的需要,那么就使用它。Amazon正在快速构建许多可靠的工具,如果您有可伸缩性的话,这将缓解您的可伸缩性问题。
  5. 对不起,我不知道。
票数 10
EN

Stack Overflow用户

发布于 2011-01-31 19:48:18

问得好!

1)我建议您使用您最喜欢的Linux变体。如果你有一个对CentOS很感兴趣的人,那就去吧。一旦选择了AMI,就可以使用它,并通过配置您想要的方式来定制它。然后将AMI保存为基本布局。这将使推出新的机器更容易,并节省您的培根,如果EC2下降。

2)使用EC2进行升级是很酷的。而不是升级一个活动的系统,采取您的预先配置的AMI,更新,并将AMI保存为myAMI-1.1 (或其他)。这样,您几乎可以立即切换到新系统,并回滚到以前的版本,以防出现故障。还可以将DB实例备份到S3。它很便宜,大约是0.10美元/GB/月。

3)这取决于您将数据库存储在何处。如果将其存储在EC2实例中,则会遇到麻烦。EC2实例没有持久性存储。所以如果你的机器崩溃了,你就会失去一切。我不熟悉Amazon系统,但您也应该看看。这基本上是你可以写的真正的硬盘。当您想升级您的架构时,执行一个完整的DB转储到S3,然后对您的实际模式进行升级。如果出了问题,可以从S3中提取以前的版本。

我从来没有用过,所以我帮不了你。

票数 4
EN

Stack Overflow用户

发布于 2011-02-06 08:31:45

什么是我们可以依赖的最常用的Linux来进行健壮的部署(有这么多的Linux变体,我不确定哪个是常用的,Fedora,CentOS,Red,SUSE .)我们如何处理生产升级(EAR文件修改或模式升级)。是否有任何工具可用于处理这些更改的安装或回滚。数据库有什么样的数据备份功能?我应该依赖Amazon来支持MySQL吗?我应该如何处理对MongoDB的支持?

  1. 任何Linux都会完成这项工作,您只需要一个JRE。(假设不需要开发工作)。如果您需要监视JVM行为,那么就安装JConsole。
  2. 最简单的方法是将SSH放到本地主目录中,传输更新的类文件/EAR文件(取决于应用的更改数量),并将其复制并替换到Tomcat部署目录中,重新启动apache。(在上传到生产之前,确保您在本地进行了测试)。
  3. 取决于您使用的是哪个数据库,如果您使用的是MySQL,那么只需执行计划好的备份,将其写入您的主目录,这样您就可以不时地进入并下载备份副本。
  4. 我不会考虑在Amazon上回复MySQL支持,因为有两个原因: MySQL足够小且易于管理,而且我也希望完全控制数据库,如果您可以自己支付更多的费用,FOC?
  5. MongoDB的使用应该与您的应用程序的目的相一致,并从中获益。我建议您使用MongoDB进行静态数据检索,如州、国家、地区等。其中MySQL仅用于事务数据。
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/4831311

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档