使用EC2进行合理部署

时间:2011-11-09 21:22:34

标签: deployment amazon-ec2 web-deployment

我们目前正在使用RightScale,每次部署时,我们都会在要更新的服务器或服务器阵列上执行脚本。它从GitHub存储库中提取代码,在/var/www/releases/TIMESTAMP中创建一个新文件夹,并将文档根/var/www/current符号链接到该目录。

我们希望获得更好的部署策略,例如我们将SSH连接到专用网络上的某个服务器,并运行命令行脚本来部署我们想要部署的内容。

但是,这意味着这一台服务器必须在我们要部署的所有服务器的authorized_keys中拥有其公钥。这样安全吗?这不是一台允许访问所有其他服务器的服务器吗?

最好的方法是什么?

谢谢!

1 个答案:

答案 0 :(得分:2)

我们使用类似的策略进行部署,但我们不再使用Rightscale了。

我认为一般来说这种方法很好,我有兴趣了解你认为不重要的事情。

如果你想做自己的事情,那么我会做以下几点:

  1. 使用安全组锁定ssh,例如仅打开具有deploy安全组或类似IP的特定IP或服务器的ssh。这里的缺点是,当其他服务器关闭等时,您可能会将自己锁定。
  2. 我会在每个实例上放置公钥以允许无密码登录。如果您的安全性很有意义,您可以按月轮换这些密钥,例如,当员工离职时等等。
  3. 使用fabriccapistrano使用ssh登录您的服务器(从部署主服务器)并进行部署。
  4. 同样,我认为Rightscale的方法并非独一无二。许多服务就是这样做的。原因是,例如当你使用符号链接并保留以前的版本时,它就更容易回滚等等。