Amazon web services 在AWS上,既然ami_from_实例存在于terraform中,为什么需要Packer生成ami_

Amazon web services 在AWS上,既然ami_from_实例存在于terraform中,为什么需要Packer生成ami_,amazon-web-services,terraform,packer,Amazon Web Services,Terraform,Packer,Terraform允许使用自定义ansible脚本配置aws基础设施 由于地形的作用, 允许将实例转换为AMI,并将其转换为AMI。 我对这些工具非常陌生,我可能不了解它们的细微之处,但为什么要使用Packer生成Terraform实例化的ami的常见模式?因为Packer创建了一个ami,配置为代码,所以您将有一个可复制的ami创建方法 如果您使用Terraformsami\u from\u instance,则会创建不可复制源的克隆,从而创建雪花服务器(所有服务器都略有不同) 公共云的另一个

Terraform允许使用自定义ansible脚本配置aws基础设施

由于地形的作用, 允许将实例转换为AMI,并将其转换为AMI。
我对这些工具非常陌生,我可能不了解它们的细微之处,但为什么要使用Packer生成Terraform实例化的ami的常见模式?

因为Packer创建了一个ami,配置为代码,所以您将有一个可复制的ami创建方法

如果您使用Terraforms
ami\u from\u instance
,则会创建不可复制源的克隆,从而创建雪花服务器(所有服务器都略有不同)


公共云的另一个重要特性是自动缩放,为此,您希望从AMI开始,它包含尽可能多的内容,因此启动时间很短。这使得预烘焙的AMI比具有初始化脚本的通用AMI更好,该脚本可以安装和配置所有适应生产环境的功能。

我不会重复“ydaetskcoR”已经提到的内容。Grt分数。Packer真正做的另一个用例是与多个帐户共享AMI。在我们的设置中,我们在一个帐户中创建AMI,并将其共享给其他要使用的帐户。Packer是专门为创建AMI而构建的,因此它比简单Terraform的AMI_from_实例有很多特性。我的2美分

我不确定这是否会得到一个好的答案,因为这可能是主观的,但Packer专门针对创建图像,并以比Terraform的
aws_ami_from_instance
资源更好的方式处理创建图像的对象的生命周期。要使用Terraform执行与Packer相同的操作,您需要定义一个实例资源,然后定义ami_from_实例资源,然后以某种方式销毁该实例,因为Terraform将启动它进行备份。对实例和来自实例的ami_运行Terraform destroy将取消ami的注册。@ydaetskcoR这可能是一个很好的答案,因为它开始描述一种避免打包的详细方法为什么要避免打包?尽管使用Terraform在技术上是可行的,但我认为这不是一个好方法,我也不知道有谁提倡这样做。@ydaetskcoR,因为学习单个工具的成本应该更低,因为我发现高效的Terraform的编写计划创建步骤及其在开发时的重启能力。这不是严格意义上的。您可以像Packer那样使用Terraform来启动实例,然后像Packer那样使用远程供应器来配置它。然后,您需要在不取消AMI注册的情况下拆除实例的东西(a
terraformdestroy
将取消AMI注册),但这是可行的。只不过在这方面比Packer差了一点点(避免编写短的Packer JSON配置)。当然,但这就像用链锯敲钉子一样。这是可行的,但很可能你会割伤自己。是的,我同意这不是一个很好的工具,但我不认为你的答案能真正解释为什么,因为从技术上讲,实现同样的目标是可能的。总的来说,我认为这更像是一个基于观点的问题,有些观点是错误的;)@RickardvonEssen是的,它是用链锯敲钉子的,但既然你无论如何都需要掌握shainsaw,那么最好用你正在运行的shainsaw,因为打包机“锤子”仍然需要一些投资才能掌握(学习使用它和调试它仍然需要成本)