作者热门文章
- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我有一个 VPC,它在公共(public)子网中包含一个负载均衡器并在私有(private)子网中有 3 个 Web 服务器 ec 实例(tomcat7),实例通过自动缩放组启动。最初启动了 2 个实例(最小实例设置为 2)。然后我手动(SSH)安装了 java 和 tomcat 并复制了 war 文件。
一切正常
我几乎没有什么困惑
1 - 新创建的实例将如何安装 java + tomcat + war,我唯一怀疑的地方是“启动配置”-> 高级详细信息-> 用户数据我打算在该文件中写下后续文本
sudo su root
apt-get update
apt-get install -y openjdk-7-jdk
apt-get install -y tomcat7
some command to get war file from some where (S3)
2 - Live upgrade:假设自动缩放和负载已经达到 7 个实例,如果我想用新版本文件更新 war,那将如何发生,是否必须通过手动SSH 和更新,或者是否有任何自动方法来更新和同步所有扩展实例上的所有内容(当用户仍在访问网站时)?
最佳答案
您可以将 war 存储在 s3 上,这对 cloudinit 有意义(尽管它以 root 身份运行,所以不需要 sudo)。自动缩放机器也是这样出现的。
为了升级 war ,你需要以某种方式推出 war 文件并重启 tomcat*——这就是人们使用 Chef/Puppet/Ansible/Salt 的原因。
如果这是压倒性的,你应该使用 Elastic Beanstalk .它肯定会简化事情。
*
您实际上不必重新启动 tomcat,但您不想陷入 PermGen rabbithole。
关于ubuntu - AWS 在负载均衡器后面的自动缩放组中的 ec2 tomcat 上更新 war 文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/37156467/
我是一名优秀的程序员,十分优秀!