我有一个VPC,其中包含公有子网中的负载均衡器 私有子网中有3个Web服务器ec实例(tomcat7),实例通过自动扩展组启动。最初启动了2个实例(最小实例设置为2)。然后我手动(SSH)安装了java和tomcat并复制了war文件。
每件事都运转良好
我很少有混淆
1 - 新创建的实例如何安装java + tomcat + war,只有我可以怀疑的地方是“Launch Configuration” - >高级详细信息 - >用户数据 我打算在该提交的文件中写下以下文字
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 - 实时升级:假设自动调试和加载已达到7个实例,如果我想用新版本文件更新war,那将如何发生,是否必须通过手册SSH和更新或是否有任何自动方式来更新和同步所有缩放实例上的所有内容(当用户仍在访问网站时)?
答案 0 :(得分:0)
你可以将战争存储在s3上,这对cloudinit有意义(虽然它以root身份运行,所以不需要sudo)。这就是自动缩放机器的出现方式。
为了升级战争,你需要以某种方式推出war文件并重新启动tomcat * - 这就是人们使用Chef / Puppet / Ansible / Salt的原因。
如果这是压倒性的,你应该使用Elastic Beanstalk。它绝对可以简化事情。
*
你实际上不需要重新启动tomcat,但是你不想去掉PermGen rabbithole。