2012-03-03 67 views
2

这是我的情况: 我有大约100个EC2实例,每个人都运行一个Java应用程序(Java SE应用程序,而不是Java EE应用程序),我想将所编译的jar文件和库部署到所有实例,然后使应用程序运行在每个人的应用程序上由于应用程序不时在变化,每次我都要花两个小时才能完成这项工作。如何将java应用程序部署到大约100个EC2实例?

您是否知道是否有管理工具或软件可以帮助我自动完成这项工作,以及您的实践如何部署此应用程序?

您有在AWS上进行开发的自动部署工作流吗?

回答

3

由于您使用的是Java,因此您可以使用AWS Elastic Beanstalk。

开发生命周期:

http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/create_deploy_Java.sdlc.html

管理环境:

http://docs.amazonwebservices.com/elasticbeanstalk/latest/dg/using-features.managing.html

有在同一页上有更多的文章链接,可能需要阅读所有的人,但这些我觉得这两个也是你的问题最相关的。我没有使用这个产品,所以我不能给任何第一手的经验,但它似乎旨在帮助你确切的问题。

+0

弹性魔豆只适用于WAR文件,而不是打包在JAR一般的Java应用程序。 – Max 2015-07-22 17:19:54

4

Kwatee(http://www.kwatee.net)是我们的免费和轻量级部署工具,它支持EC2实例以及弹性负载平衡。有一个小的EC2部署的简短视频here

+0

感谢,它似乎是一个非常酷的系统,它支持纯Java SE应用程序? – user1246500 2012-03-04 15:04:44

+0

它部署的任何文件/可执行文件,并完全与语言无关。部署通过ssh进行(最好在EC2实例上使用kwatee并使用私有地址),并配置在ssh shell上执行的部署操作以执行安装操作,启动和停止这些过程。 – mac 2012-03-05 09:32:53

1

Boxfuse确实如你所愿。

为了您的Java SE应用程序,你从字面上只需要执行:

boxfuse create my-javase-app -apptype=load-balanced 
boxfuse scale my-javase-app -capacity=100:t2.micro 
boxfuse run my-javase-app-1.0.jar -env=prod 

这将

  1. 创建一个新的应用程序并将其配置为使用ELB
  2. 缩放到100 T2 .micro instances
  3. 创建AMI
  4. 创建ELB
  5. 创建安全组
  6. 创建一个自动伸缩群
  7. 启动实例(S)

任何后续的更新工作将作为一个零停机蓝/绿部署。

1

您可以使用AutoScaling启动配置和AutoScaling组启动100个EC2实例。但请坚持,需要向AWS Support请求EC2实例类型的EC2实例限制。通常,完成请求需要1个工作日。

  • 首先您应该在AWS控制台中创建AutoScaling启动配置。AutoScaling启动配置包括类型,存储和安全组,您可以添加脚本以在启动EC2实例时运行。
  • 其次是自动缩放集团。您必须选择哪个启动配置适合您的自动调节组。在自动缩放组配置中,必须提到的最小和最大数(即)将推出基于分钟计数EC2实例并启动高达最大计数。 CloudWatch监控可用于AutoScaling组。 CloudWatch将基于EC2实例CPU利用率和警报设置进行工作。
  • 弹性负载平衡,将有助于散发EC2实例之间的交通。如果你想使用ELB,你必须在AutoScaling Group之前创建。在AutoScaling Group中,您可以包含ELB来处理和分配流量。
相关问题