在亚马逊云上部署Java Web应用程序

14

我有一个使用Struts2、JSP、JPA、Spring和MySql开发的Web应用程序。我希望将这个应用程序迁移到亚马逊云上。我之前没有进行过云部署,也不知道如何做。

请问是否有人能提供一步一步的过程,或者需要遵循的流程,或者指导我完成此操作的文件?感谢您的帮助。

3个回答

12

在弹性豆腐丝中上传项目的 .war 文件并部署项目。

创建新应用程序在豆腐丝中的步骤为 -

1)在 Elastic Beanstalk 中创建一个名为“测试应用”的新应用程序,选择最适合您需求的地区。

2)在应用程序“测试应用”中创建一个新环境,选择您喜欢的应用服务器,例如 tomcat 6 32/64 或 tomcat732/64。

3)将 .war 文件上传到新创建的环境中。

4)您可以提供自定义 Cname,通过它可以从浏览器访问您的 Web 应用程序。

5)最后,根据您的需求设置健康检查状态时间间隔、扩展单元等。


MySQL数据库怎么样?我该如何管理它?可以在环境中安装MySQL或Oracle数据库吗?我可以为不同的客户使用不同的数据库吗?或者,我应该如何最好地管理多个客户的数据?感谢您的迅速回复。 - Uchenna Nwanyanwu
如果您想选择关系型数据库,AWS RDS可以为您服务。如果您想选择非关系型数据库,则可以选择新的Amazon AWS Dynamo DB。对于AWS RDS,您可以选择mysql或oracle,并需要设置主用户和密码。您将获得所选RDS的公共URL,以便在jdbc连接中提及URL、主用户名和密码。如果您需要额外的信息,请告诉我。 - Sangram Anand
哇,非常感谢您的及时回复。它非常准确。我不太理解云上应用程序管理的一些概念。您的应用程序的不同客户或用户是否使用相同的数据库和应用程序实例,还是将针对每个用户或客户在不同的数据库和应用程序实例上运行。再次感谢。 - Uchenna Nwanyanwu
我有一个问题 - 你想在云端部署的Java Web项目是用于生产环境,也就是说你希望多个用户访问Web应用程序。假设这是要求,你可以只有一个Beanstalk环境,并在其中部署WAR文件,在弹性负载平衡中指定你想要运行的应用程序实例数量,以便平衡负载。对于数据库,Amazon RDS提供使用MySQL/Oracle的关系型数据库,因此你可以选择任何一个,并且RDS的附加支持(实例)取决于你的数据库结构,即记录数、表格等。 - Sangram Anand
感谢您的回复。让我完整地解释一下。这是公司使用的应用程序。目前,该应用程序安装在公司的服务器上,并创建将使用该应用程序的公司的用户。该应用程序知道如何管理其用户。因此,需要此应用程序的每个公司都购买服务器,并在服务器上部署应用程序。现在我想将此应用程序移至云端,我该如何进行部署?我以前没有做过云相关的事情,也不太了解在云上的部署。我将使用mysql。谢谢。 - Uchenna Nwanyanwu
1
将来请您只使用一个答案,而不是几个答案? - Kev

11

明白了...感谢详细的说明。 您可以有两种方式实现它

  1. 创建单个Beanstalk应用程序

为所创建的应用程序中的每个公司创建不同的 环境,并在每个环境中部署 .war 文件,并根据您的要求提供资源,例如tomcat 6/7、最小实例数和最大实例数以进行自动缩放。健康检查监视器间隔、超时前检查次数等,并最后分配与公司名称相关联的 CNAME(即访问该应用程序的 URL),例如如果 webapp 是为 xyz 公司创建的,则提供 cname 作为 xyz.elasticbeanstalk.com。

2.创建多个 Beanstalk 应用程序,即每个公司一个,每个应用程序中可以根据您的要求创建多个环境,如开发环境、测试环境、预发布环境和生产环境等。

至于数据库

如果您的数据库是关系型数据库,请选择 RDS。计划多个公司的两种方式如下:

1)在单个 RDS 中创建多个模式,即一个组织机构一个模式。

2)为每个组织机构创建单独的 RDS - 如果 DB 记录更多,则建议使用此方法。

如果您有任何疑问,请告诉我。 很乐意帮忙...:)


我认为你的回复让我比以往任何时候都更加快乐。你的回答直截了当。相信我,那是最好的答案。这里有很多人一直在想如何做到这一点,但你做到了。我猜我很幸运。非常感谢。关于单个和分离的beanstalk n DB,哪个选项更具成本效益。非常感谢。还有一件事,其他提供商(如openshift、jelastic等)是否也适用相同的方法? - Uchenna Nwanyanwu
在Beanstalk中,成本效益取决于您选择的实例类型和数量。每个环境需要至少一个实例,因此由您决定要选择哪种AMI,无论是微型、小型、中型还是大型。 - Sangram Anand

1

请在粗体的内联注释中找到我。

目前,该应用程序已安装在公司服务器上,并创建了将使用该应用程序的公司用户。

How is the installation done, and what is the architecture(x86/x64) and platform(windows   
server/linux) of the server

该应用程序知道如何管理其用户。因此,每个需要此应用程序的公司都会购买服务器,并将应用程序部署在服务器上。

Buys a server in the sense - you guys are providing the application and they are 
launching in their server, i mean in their own infrastructure.

The facts i understood from your reply is, that you guys provide a web application to 
different company's. And those company's deploy your webapplication in their 
application server and DB in their DB server. 

如果我说错了,请纠正我


部署方式:这是一个Java Web应用程序。我们在客户的服务器上安装Tomcat和MySQL。运行特定于客户的必要数据库脚本。启动服务器并完成其他配置,如创建用户、角色等。您说得对。这就是它一直以来的工作方式。我们在X86和X64上都进行部署,并根据客户的情况在Linux和Windows上进行部署。我想将此应用程序托管在云端,以便每个公司不再需要去各自的服务器上,而是指向云端获取应用程序。希望您能理解。 - Uchenna Nwanyanwu

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接