如果您在 cloudformation 模板中使用 cfn-init,那么烘焙 AMI 是否有意义?
Does it make sense to bake your AMI if you use cfn-init in your cloudformation template?
我开始怀疑我是否错过了 cfn-init 的全部要点。我开始考虑我应该烘焙我的 cfn 模板中使用的 AMI 以节省时间,这样我就不会浪费时间重新安装所有包,这样我就可以快速测试下一个 boostrapping 步骤。但是,如果我在我的 cfn-init 命令中通过在我的用户数据中执行 cfn-init 命令来下载 awslog 和流式传输我的日志,如果我将其烘焙,我的日志组将被创建,但 awslog 程序不需要运行 一个新的命令来启动流日志,如果该命令被烘焙就没有意义。这让我想到我的下一个问题,cfn-init 引导设计(或至少是最佳实践)是 运行 每次启动新的 ec2 时,即您不能或不应该在 cfn-init 部分烘焙?
你的质疑很有道理,纯粹是devop的设计方法和工作风格。
如果您的 cfn-int 只安装了几个包;很好,这可以在 AMI 中烘焙。正如您正确指出的那样,它将节省时间并确保更快地创建堆栈。
但是,如果您想安装最新版本的软件包怎么办?在这种情况下,您只需将最新标志/关键字添加到 cfn-init 包部分。我已使用 cfn-init 动态接受 Active Directory - 域控制器的 BIOS 名称;所以在这种情况下,我无法在 AMI 中烘焙它。
cfn-init 的另一个帮助是假设您已经配置了 4 个要安装的包;如果您还需要安装另一个软件包怎么办?在那种情况下 - 如果它是 CloudFormation cfn-init - 它是要添加的另一行代码。如果是 AMI - 新 AMI 方法必须烘焙新 AMI。
这纯粹是一种权衡。
我开始怀疑我是否错过了 cfn-init 的全部要点。我开始考虑我应该烘焙我的 cfn 模板中使用的 AMI 以节省时间,这样我就不会浪费时间重新安装所有包,这样我就可以快速测试下一个 boostrapping 步骤。但是,如果我在我的 cfn-init 命令中通过在我的用户数据中执行 cfn-init 命令来下载 awslog 和流式传输我的日志,如果我将其烘焙,我的日志组将被创建,但 awslog 程序不需要运行 一个新的命令来启动流日志,如果该命令被烘焙就没有意义。这让我想到我的下一个问题,cfn-init 引导设计(或至少是最佳实践)是 运行 每次启动新的 ec2 时,即您不能或不应该在 cfn-init 部分烘焙?
你的质疑很有道理,纯粹是devop的设计方法和工作风格。
如果您的 cfn-int 只安装了几个包;很好,这可以在 AMI 中烘焙。正如您正确指出的那样,它将节省时间并确保更快地创建堆栈。
但是,如果您想安装最新版本的软件包怎么办?在这种情况下,您只需将最新标志/关键字添加到 cfn-init 包部分。我已使用 cfn-init 动态接受 Active Directory - 域控制器的 BIOS 名称;所以在这种情况下,我无法在 AMI 中烘焙它。
cfn-init 的另一个帮助是假设您已经配置了 4 个要安装的包;如果您还需要安装另一个软件包怎么办?在那种情况下 - 如果它是 CloudFormation cfn-init - 它是要添加的另一行代码。如果是 AMI - 新 AMI 方法必须烘焙新 AMI。
这纯粹是一种权衡。