我捆绑了一个我很满意的AMI。 但是我知道最终我需要修改它(例如,用于Debian安全更新或更新AMI中的其他系统软件)。 捆绑后是否可以更新图像? 如果我将一个新的AMI与同一个名称,清单和S3位置捆绑在一起呢? EC2cachingAMI一段时间; AMI在两次发射之间会发生什么变化?
我明白,我可以简单地捆绑一个全新的AMI,尽pipe我想避免图像的扩散。 我会更好地存储至less一些我的软件(如JRuby等)在EBS卷而不是AMI本身?
请注意,我指的“软件” 不包括我自己的可部署单元,而是第三方软件。
我所做的是捆绑AMI的同名。 然后在实例运行时删除AMI并上传并注册新的AMI。 从存储软件的“更好”的angular度来看,这取决于你更新或修改软件的频率。 如果你不介意通过捆绑过程,然后把它留在AMI。
PS捆绑AMI的方便提示是在屏幕会话中进行,以便您可以离开映像过程而不必担心SSH连接断开。
虽然现在可能对你没有帮助。 绑定EBS支持的实例要容易得多 。 就像“停止”实例一样简单(通过ec2-stop-instances或者xfs freeze,或者试试运行一次),然后快照EBS卷并注册它。 唯一棘手的部分是启动新的实例,以确保您使用相同的AKI,它可以在当前正在运行的实例的信息中find。 此外,来自EBS Backed Images的AMI不会存储在标准S3存储桶中,因此您不必担心扩散问题,只需在完成后取消注册即可。
或者,您可以尝试将常规AMI捆绑软件写入连接的驱动器,然后快照并注册,尽pipe我还没有取得太多的成功。 将实例存储移动到EBS所支持的目前并不完全平滑。
亚马逊跟踪AMI的AMI ID(ami-1a2s3d4f)而不是S3中的位置和名称,所以你可以很好地移除旧的和捆绑另一个相同的名称。