如何在亚马逊EC2上部署Eclipse Java Web动态项目?

13

我正在尝试创建一个能够与Amazon RDS通信的Web项目。我知道如何使用JDBC让本地主机项目连接到RDS。

然而,问题是我从未尝试过部署我的项目(例如,有人可以键入“somePage.com”,并进入我的网页)。

我有一个Amazon EC2实例,并且已经编写了一个简单的Hello World jsp页面。我能够使用安装的Apache Tomcat服务器编译和运行Eclipse Web动态项目,然后键入localhost:8080/somePage,然后我就可以看到我的Hello World弹出来。

但是,我如何在这个EC2实例上部署我的项目呢?我正在使用Windows Server 2012版。

我的整个想法是,一旦我设置好一个AMI镜像,那么我就可以使用自动缩放来扩展我的网页。

有人能指点我正确的方向吗?


这个你说的简单的“Hello World”,你在哪里运行它了?在你的 Eclipse 里吗?另外,你在你的 Amazon EC2 实例上安装了 Apache Tomcat 吗? - acdcjunior
是的,我在我的Eclipse中运行了这个程序。我还没有在我的Amazon EC2实例中安装Apache Tomcat,我想这是第一步吧?我实际上已经去过那个网站了,但是在压缩文件中没有EXE文件。编辑:我刚刚找到了它。 - user1157751
2个回答

21

按照以下步骤进行操作:

  1. 在您的Amazon EC2实例上设置Apache Tomcat。
    • 通常情况下,您只需下载当前版本,解压缩它,然后通过运行apache-tomcat-folder\bin\startup.bat来启动它。(您也可以下载安装程序并将其设置为windows服务。有关更多详细信息,请查看此链接。)
    • 确保在继续之前进行测试(在浏览器中打开它的地址,类似于http://yourinstaceaddress.com:8080/)。
  2. 导出您的Web应用程序.war文件
    • 在Eclipse中,右键单击Web项目,然后选择导出。然后在导出窗口中选择WAR文件,然后选择下一步。选择项目、.war文件名和要导出的文件夹。更详细的说明可以在这里这里(附有图片)找到。
  3. .war文件部署到您的Tomcat服务器
    • 迄今为止,最简单的方法是将您的.war文件(例如myapp.war)放在您的apache-tomcat-folder\webapps\文件夹中。
    • 还有其他方式,比如通过Tomcat管理器。但是它们可能会很棘手,作为新用户,您应该避免使用它们。(不用担心:简单的方法对于生产部署来说是可以的)。
  4. 测试您的Web应用程序
    • 访问网址:假设您的.war文件名为myapp.war。您应该访问http://yourinstaceaddress.com:8080/myapp

就这样。如果您编辑了应用程序,请重复步骤2-4(但在执行步骤3之前删除已创建的webapps\myapp\文件夹)。


谢谢你的帮助,它可以工作了,哇呼!是否有可能将myapp更改为index,以便wwww.yourinstanceaddrss.com可以正常工作? - user1157751
是的,请将 myapp.war 重命名为 ROOT.war 并像往常一样部署(在此之前不要忘记删除 ROOT.warwebapps\ROOT 文件夹)。 - acdcjunior
@user1157751 太棒了!你打字的速度比我快 :) - acdcjunior
非常感谢您的帮助,我还有一个问题,如果我将Apache Tomcat设置为自动启动,那么我可以创建此EC2实例的映像并在两个实例之间使用弹性负载平衡器吗?这种方法可行吗? - user1157751
2
非常感谢您的帮助。我一直在寻找如何做到这一点的答案,但许多网站都使用弹性 Beanstalk。顺便说一下,我从未处理过并发访问。我认为您已经帮了我足够多的忙了,我会尝试自己解决问题!谢谢!!! - user1157751
显示剩余5条评论

1

Boxfuse可以完全满足您的需求。

对于您的Java Web应用程序,您只需要执行以下操作:

boxfuse create my-tomcat-app -apptype=load-balanced
boxfuse scale my-tomcat-app -capacity=1-16:t2-micro:cpu25-75
boxfuse run my-tomcat-app-1.0.war -env=prod

这将:
  1. 配置您的应用程序使用ELB
  2. 设置它根据CPU使用率在1到16个t2.micro实例之间自动扩展(在25%及以下缩小,在75%及以上扩大)
  3. 创建包含Tomcat和您的应用程序的AMI,准备启动
  4. 创建一个ELB
  5. 创建具有正确端口的安全组
  6. 创建自动缩放组
  7. 启动您的实例
任何后续更新都将作为零停机蓝/绿部署完成。
对于您的域名,您只需将samepage.com DNS记录映射到ELB的CNAME。
更多信息:https://boxfuse.com/blog/auto-scaling

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