据我了解,为了使用 EC2 现货实例,必须将实例的 AMI 配置为在启动时立即开始执行它应该执行的任何操作,并继续执行直到完成或实例终止。
这本身不是问题,但我需要定期使用新软件和/或配置脚本更新 AMI,所以我偶尔需要调出一个常规实例,我可以通过 ssh 进入和修改,这不会与立即开始尝试执行操作的启动脚本配合得很好(例如,当我为一堆计算工作人员更新 AMI 时,相关的控制服务器可能会关闭)。
有没有办法为同一个 AMI 配置两种(或更多)启动模式?有点像老式的 SysV 运行级别……事实上,它可以很好地用于这个应用程序,除了我看不到任何从 EC2 Web 或 CLI 界面控制内核命令行的方法。
(AMI 内的操作系统是 Linux,如果这很重要的话。)
使用用户数据字段并设置一个标志以禁用执行。
例如,让您的启动脚本检查实例的用户数据,如果该数据设置为“不运行”,则中止您的启动脚本。
然后,当您需要启动“维护”实例时,请确保您的用户数据设置为“禁止运行”。