繁体   English   中英

如何在Amazon EC2上部署Java Webapp,以便您可以有效地使用自动缩放?

[英]How to deploy a Java webapp on Amazon EC2 so that you can efficiently use autoscaling?

我正在努力弄清Amazon Web Services上的一个简单WebApp Java部署案例。

我已经在单个EC2实例上手动部署了,在香草RedHat映像上手动安装了Java,Tomcat,MySql,就像我拥有硬件一样。

现在,我正在尝试建立一个可自动扩展,易于管理的生产证明环境:

  • 1-> n个部署了标准Java WebApp的Tomcat实例,
  • 1个具有1个模式和几个表(不多)的MYSQL数据库,webapp连接到该数据库。

我知道自动缩放取决于某些触发器(例如,超过使用百分比)。 但是,启动新服务器后,由于我的应用程序不在VM映像中,因此未部署我的应用程序。 需要发生一些事情,以便新服务器运行我的代码。

  1. 大规模部署到Amazon上仅tomcat服务器的1-n自动缩放组的最佳选择是什么?
  2. 升级应用程序的最佳选择是什么? 我想你不希望所有服务器一口气掉下来...
  3. 如何创建自动从我的CI中检索可用的最新版本(已上传到S3或其他版本)的VM映像? 我可以轻松地将此脚本添加到Tomcat bootstrap / Linux启动...

像Chef或Puppet这样的商业工具呢? 有开源等效项吗?

我在网上回顾了很多事情,是的,正如Georges所说,ElasticBeanStalk是正确的选择。 虽然,一开始感觉很混乱。

首先,您可以使用t2.micro实例在Free层上运行负载平衡/可扩展的环境。 重要的是总小时数。 您可以使用100台服务器使用7个小时,这样就可以了。 请谨慎使用“健康检查”,因为它会一直ping您的环境。 如果您运行测试/评估并不想付费,请确保保存/备份并尽快终止环境。 数据传输显然不是免费的,因此,如果您不想付款,请确保不要使用任何多可用区和多区域。

也就是说,BeanStalk是一种“黑匣子”,可以为您做很多事情。 旨在为您在控制台中创建所有配置。 一种用于负载平衡/可扩展环境的“超级向导”。

配置是这样的:您说您有一个要部署的战争文件,将其上传,然后选择一个容器(例如linux + tomcat),设置一个数据库,它将创建一个基本配置,其中包含您想要的所有内容:加载平衡,自动缩放和监视。 可以轻松更改设置以满足您的需求。

一件事棘手的是数据库配置:您需要设置环境变量,并按照以下方式在您的Spring配置中使用它们: https : //raymondhlee.wordpress.com/2013/06/01/migrating-a-java-web-app-for -deploy到AWS-弹性豆茎/

应用程序更新可以“滚动”方式进行,即仅在有限数量的服务器机群中进行(默认值为30%),这意味着您不必担心停机时间。

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. 启动您的实例

任何后续更新将作为零停机时间蓝/绿部署进行。

更多信息: https : //boxfuse.com/blog/auto-scaling

您可以在EC2启动配置上使用用户数据 您可以使用它来将Shell脚本传递给您的实例,该实例在首次启动时会自动运行。 如您在问题中所建议的,一种常见的模式是让Shell脚本从S3下载并安装构建。

使用这种模式,升级自动扩展组上的构建很容易。 只需将新的版本上传到S3。 然后,手动终止自动扩展组中的实例。 自动缩放将自动启动新的EC2实例,该实例将从S3下载新的版本,并保存您的自动缩放组。 如果您一次终止一个实例,并且在终止下一个实例之前等待新实例上线,则对系统的影响将降至最低。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM