如果在您的cloudformation模板中使用cfn-init,那么烘焙您的AMI是否有意义?

时间:2015-02-18 19:31:28

标签: bootstrapping amazon-cloudformation

我开始怀疑我是否可能错过了cfn-init的全部内容。我开始认为我应该在我的cfn模板中烘焙我的AMI以节省时间,因此不会浪费时间重新安装所有软件包,因此我可以快速测试下一步的升级步骤。但是如果我在我的cfn-init命令中通过在我的userdata中执行cfn-init命令来下载awslog并传输我的日志,如果我将其烘焙,我的日志组将被创建,但awslog程序不需要运行一个新的命令来启动流式传输日志,如果该命令被烘焙就没有意义。这让我想到了下一个问题,cfn-init bootstrapping设计(或至少是最佳实践)每次运行它时都会运行新的ec2旋转,即你不能或不应该在cfn-init部分烘烤?

1 个答案:

答案 0 :(得分:2)

您的疑问非常有效,纯粹是设计方法和开发工作方式。

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

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

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

这纯粹是一种权衡。