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