在Amazon Web Services \ EC2中,我有一个现场实例请求已经运行并手动终止(由我)。现在,我想再次运行相同的实例 - 无需经历创建新实例的过程(我的意思是,我选择AMI的过程,即时类型,配置,安全组等)。当使用不间断实例时,这很容易,因为我可以根据需要手动终止或启动实例(并且我保存的数据在终端之间保持不变)。但是对于spot实例,我不知道如何做到这一点,因为在它终止后,EC2管理控制台中的spot请求页面显示请求已关闭,我不知道如何重新发送相同的请求试。
我知道我可以选择一个持久的点请求,但是我知道这会在终止时自动重新发送请求,而我希望继续手动控制请求已发送。
总而言之,我希望能够拥有以下工作流程:
如何做到这一点?
答案 0 :(得分:2)
简短的回答是,一旦终止实例,你就不能重新启动它。终止意味着实例,数据等被破坏。您的描述描述了按需实例(价格除外)。
答案 1 :(得分:1)
简短的回答是强调是。 绝对
您描述的实例“工作流程”实际上是实例生命周期。该生命周期是云中任何表现良好的应用服务器的正常生命周期,即使您依赖于计算的点实例。您可以控制实例生命周期的所有方面:启动,配置,扩展和终止。
使用此CloudFormation template for a Jenkins server with automatic backup and recovery的修改版本,我有许多自动缩放版本,完全符合您的描述(NB我使用按需实例。但相同的策略适用于现场实例.NB2 I说下面的 fleet ,但这只能是1个实例的车队)
以下是快速概述(或长答案):
使用CloudFormation(可选,但建议)定义/启动自动缩放组并启动配置以启动1个(或更多)实例。自动缩放直接支持竞价型实例。请参阅Launching Spot Instances in Your Auto Scaling Group
使用自动缩放政策和您的现货出价参数/持续时间来控制您希望为实例支付的时间和成本,以获得所需的计算能力。对于Jenkins,我自动缩放以在我的VPC中的任何AZ中拥有1个健康实例。自动扩展策略非常灵活。对于手动终止,请暂停ASG Launch
进程。请参阅Suspending and Resuming Auto Scaling Processes
在实例启动时,使用UserData scripting来配置软件,安装备份和还原脚本,配置实例以及从上次备份加载任何实例数据。使用专用S3存储桶备份实例数据。在我的例子中,我将整个Jenkins工作空间和配置数据存档在压缩的tar文件中。您可能希望根据数据集的需要进行备份。
在新实例的任何自动重新启动时,实例配置为检查S3数据回桶,并恢复最新的实例。它立即为上次备份的所有数据提供服务。如步骤3中所述,您具有手动备份和还原脚本,因此您可以登录到实例并根据需要执行这些操作。
使用这些技术,您可以构建一个按需或点实例的实例队列,并集成备份和自动恢复。