Bootstrapping 如果在cloudformation模板中使用cfn init,烘焙AMI有意义吗?

Bootstrapping 如果在cloudformation模板中使用cfn init,烘焙AMI有意义吗?,bootstrapping,amazon-cloudformation,Bootstrapping,Amazon Cloudformation,我开始怀疑我是否遗漏了cfn init的全部要点。我开始想,我应该烘焙cfn模板中使用的AMI以节省时间,这样就不会浪费时间重新安装所有软件包,这样我就可以快速测试下一个增强步骤。但是,如果我在cfn init命令中有下载awslog并通过在userdata中执行cfn init命令来流式传输日志的命令,那么如果我将其烘焙,将创建日志组,但是awslog程序不需要运行新命令来启动流式传输日志,如果该命令被烘焙,则没有意义。这就引出了我的下一个问题,cfn init引导设计(或至少是最佳实践)是否

我开始怀疑我是否遗漏了cfn init的全部要点。我开始想,我应该烘焙cfn模板中使用的AMI以节省时间,这样就不会浪费时间重新安装所有软件包,这样我就可以快速测试下一个增强步骤。但是,如果我在cfn init命令中有下载awslog并通过在userdata中执行cfn init命令来流式传输日志的命令,那么如果我将其烘焙,将创建日志组,但是awslog程序不需要运行新命令来启动流式传输日志,如果该命令被烘焙,则没有意义。这就引出了我的下一个问题,cfn init引导设计(或至少是最佳实践)是否可以在每次新的ec2启动时运行它,也就是说,您不能或不应该在cfn init部分烘焙?

您的疑问是非常正确的,这纯粹是devop的设计方法和工作方式

如果您的cfn int只安装了几个包;很好,这可以在AMI中烘焙。正如您正确指出的,这将节省时间并确保更快地创建堆栈

但是,如果您想安装最新版本的软件包,该怎么办;在这种情况下,您只需将最新的标志/关键字添加到cfn init package部分。我已经使用cfn init动态地接受Active Directory域控制器的BIOS名称;因此,在这种情况下,我将无法在AMI中烘焙它

cfninit帮助的另一个地方是假设您已经配置了4个要安装的软件包;如果您还需要安装另一个软件包,该怎么办;在这种情况下,如果它是CloudFormation cfn init,那么它就是要添加的另一行代码。如果是AMI——一种新的AMI方法——必须烘焙新的AMI

这纯粹是一种权衡