在数据终止后手动重新发送AWS EC2现场实例请求,并保持数据持久性

时间:2017-11-13 23:58:14

标签: amazon-web-services amazon-ec2

在Amazon Web Services \ EC2中,我有一个现场实例请求已经运行并手动终止(由我)。现在,我想再次运行相同的实例 - 无需经历创建新实例的过程(我的意思是,我选择AMI的过程,即时类型,配置,安全组等)。当使用不间断实例时,这很容易,因为我可以根据需要手动终止或启动实例(并且我保存的数据在终端之间保持不变)。但是对于spot实例,我不知道如何做到这一点,因为在它终止后,EC2管理控制台中的spot请求页面显示请求已关闭,我不知道如何重新发送相同的请求试。

我知道我可以选择一个持久的点请求,但是我知道这会在终止时自动重新发送请求,而我希望继续手动控制请求已发送。

总而言之,我希望能够拥有以下工作流程:

  1. 创建专案实例请求。
  2. 运行现货实例(当现货价格小于我的出价时)。
  3. 在实例中保存了一些数据。
  4. 终止实例(手动或由于出价阈值)。
  5. 手动,在我选择的时间,重新发送运行相同实例的请求,这样当它打开时,我仍然可以看到之前的数据。
  6. 返回2。
  7. 如何做到这一点?

2 个答案:

答案 0 :(得分:2)

简短的回答是,一旦终止实例,你就不能重新启动它。终止意味着实例,数据等被破坏。您的描述描述了按需实例(价格除外)。

答案 1 :(得分:1)

简短的回答是强调绝对

您描述的实例“工作流程”实际上是实例生命周期。该生命周期是云中任何表现良好的应用服务器的正常生命周期,即使您依赖于计算的点实例。您可以控制实例生命周期的所有方面:启动,配置,扩展和终止。

使用此CloudFormation template for a Jenkins server with automatic backup and recovery的修改版本,我有许多自动缩放版本,完全符合您的描述(NB我使用按需实例。但相同的策略适用于现场实例.NB2 I说下面的 fleet ,但这只能是1个实例的车队)

以下是快速概述(或长答案):

  1. 使用CloudFormation(可选,但建议)定义/启动自动缩放组并启动配置以启动1个(或更多)实例。自动缩放直接支持竞价型实例。请参阅Launching Spot Instances in Your Auto Scaling Group

  2. 使用自动缩放政策和您的现货出价参数/持续时间来控制您希望为实例支付的时间和成本,以获得所需的计算能力。对于Jenkins,我自动缩放以在我的VPC中的任何AZ中拥有1个健康实例。自动扩展策略非常灵活。对于手动终止,请暂停ASG Launch进程。请参阅Suspending and Resuming Auto Scaling Processes

  3. 在实例启动时,使用UserData scripting来配置软件,安装备份和还原脚本,配置实例以及从上次备份加载任何实例数据。使用专用S3存储桶备份实例数据。在我的例子中,我将整个Jenkins工作空间和配置数据存档在压缩的tar文件中。您可能希望根据数据集的需要进行备份。

  4. 在新实例的任何自动重新启动时,实例配置为检查S3数据回桶,并恢复最新的实例。它立即为上次备份的所有数据提供服务。如步骤3中所述,您具有手动备份和还原脚本,因此您可以登录到实例并根据需要执行这些操作。

  5. 使用这些技术,您可以构建一个按需或点实例的实例队列,并集成备份和自动恢复。