我有一个运行CPM / WHM的EC2实例,我想设置一个“自我修复”环境。 我的计划是用单个实例自动缩放组来包装EC2实例,确保当实例死机时,一个新实例将取代它。 到现在为止还挺好。
问题是,启动configuration不反映实例启动后对文件系统所做的任何更改。
所以我的问题是:我如何自动化及时的AMI创build+启动configuration更新?
先谢谢你!
首先,一个免责声明:这不是你所希望的答案,但这是正确的答案。
我有一个运行CPM / WHM的EC2实例
这是你的第一个问题。 实现目标的第一步需要消除对这些工具的依赖。
这些控制面板是尖利的用户工具,而不是系统pipe理工具。 删除这些,并使用一个真正的configurationpipe理系统来pipe理你的服务器。 我为此使用Ansible ,但还有很多 其他非常好的免费选项。
问题是,启动configuration不反映实例启动后对文件系统所做的任何更改。
对,因为您正在对系统进行手动更改,而不是使用configurationpipe理系统,从而进行自动化,程序化更改。
我如何自动实现AMI的创build+启动configuration更新?
您不想在需要缩放时创build新的AMI。 真的,这是完全错误的方式来做到这一点。
任何应用程序状态(上传的文件,会话,数据库等)都需要在自动缩放组之外进行pipe理。 这里的典型模式包括使用上传文件的S3,数据库的RDS等。如果您需要自动扩展节点之间的共享文件系统,那么通过NFS将文件系统从长期运行(非自动扩展)的存储服务器导出到这些系统。
一旦开始使用正确的configurationpipe理系统,您所需要做的就是使用启动configuration来configuration自动扩展组,启动configuration使每个节点在启动时应用自己的configuration。 时期,就是这样。 如何做到这一点的细节高度依赖于你select哪个CM。