如何将Java应用程序部署到大约100 EC2实例?

时间:2012-03-03 07:12:13

标签: deployment amazon-ec2 amazon-web-services auto-build

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

您知道是否有可以帮助我自动完成此项工作的管理工具或软件,您部署此应用程序的做法是什么?

您是否在AWS上进行开发的自动部署工作流程?

4 个答案:

答案 0 :(得分:4)

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

答案 1 :(得分: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

在同一页面上还有更多的文章链接,可能需要阅读所有这些链接,但这些是我认为与你的问题最相关的两个。我没有使用过这个产品,所以我无法提供任何第一手的体验,但它似乎旨在帮助您解决确切的问题。

答案 2 :(得分: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实例
  3. 创建AMI
  4. 创建ELB
  5. 创建安全组
  6. 创建自动缩放组
  7. 启动您的实例
  8. 任何后续更新都将作为零停机蓝/绿部署完成。

答案 3 :(得分:1)

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

  • 首先,您假设在AWS Console中创建AutoScaling启动配置。 AutoScaling启动配置包括类型,存储,安全组,您可以添加脚本以在启动EC2实例时运行。
  • 接下来是AutoScaling Group。您必须选择适合您的自动缩放组的启动配置。在AutoScaling Group配置中,您必须提及最小和最大计数(即)它将根据最小计数启动EC2实例并启动最大计数。 CloudWatch监控可用于AutoScaling组。 CloudWatch将基于EC2实例CPU利用率和警报设置工作。
  • Elastic Load Balancing将有助于在EC2实例之间分配流量。如果要使用ELB,则必须在AutoScaling Group之前创建。在AutoScaling Group中,您可以包括ELB来处理和分发流量。