从早期开始,我就一直是 Heroku 的粉丝。但我喜欢 AWS Elastic Beanstalk 让您更好地控制实例特征的事实。我喜欢 Heroku 的一件事是我可以部署应用程序而不必担心管理它。我假设Heroku 确保及时应用所有操作系统安全更新。我只需要确保我的应用程序是安全的。
我对 Beanstalk 的初步研究表明,虽然它为您构建和配置实例,但之后它转向了更加手动的管理过程。安全更新不会自动应用于实例。似乎有两个方面的担忧:
- 新的 AMI 版本 - 随着新的 AMI 版本的出现,我们似乎希望运行最新的(大概是最安全的)。但我的研究似乎表明您需要手动启动新设置才能查看最新的 AMI 版本,然后创建一个新环境以使用该新版本。是否有更好的自动化方式将您的实例轮换为新的 AMI 版本?
- 在发布之间,将发布包的安全更新。似乎我们也想升级它们。我的研究似乎表明人们安装命令来偶尔运行 yum 更新. 但是由于新实例是根据使用情况创建/销毁的,因此新实例似乎并不总是具有更新(即实例创建和第一次 yum 更新之间的时间)。因此,有时您会遇到未打补丁的实例。而且您还将让实例不断自我修补,直到应用新的 AMI 版本。我的另一个担忧是,这些安全更新可能没有经过亚马逊自己的审查(就像 AMI 版本那样),它可能会破坏我的应用程序来自动更新它们。我知道 Dreamhost 曾经有过 12 小时的中断,因为他们在没有任何审查的情况下完全自动地应用了 debian 更新。我想确保同样的事情不会发生在我身上。
所以我的问题是亚马逊是否提供了一种方法来提供像 Heroku 这样的完全托管的 PaaS?或者 AWS Elastic Beanstalk 真的更像是一个安装脚本,之后您就可以自己动手了(除了他们提供的监控和部署工具)?