Amazon ec2 在Amazon EC2 Spot实例启动期间连接EBS

Amazon ec2 在Amazon EC2 Spot实例启动期间连接EBS,amazon-ec2,amazon-ebs,Amazon Ec2,Amazon Ebs,我想运行一个AmazonEC2SPOT实例作为CI服务器。 为了保留历史信息,我希望保留单独EBS卷上的所有数据,因为spot实例的EBS卷在每次终止时都会被删除 如何在启动期间装载EBS卷 谢谢,, Ido。您可以使用EC2 API和您的EBS卷ID知识来执行此操作 具体步骤取决于您的操作系统。这里有一个链接,展示了如何在Linux上执行此操作 这个特定的脚本是Ruby的,根据Linux发行版的不同,您可能需要安装Ruby。主体可以很容易地移植到例如bash 如果您的实例正在运行Window

我想运行一个AmazonEC2SPOT实例作为CI服务器。 为了保留历史信息,我希望保留单独EBS卷上的所有数据,因为spot实例的EBS卷在每次终止时都会被删除

如何在启动期间装载EBS卷

谢谢,,
Ido。

您可以使用EC2 API和您的EBS卷ID知识来执行此操作

具体步骤取决于您的操作系统。这里有一个链接,展示了如何在Linux上执行此操作

这个特定的脚本是Ruby的,根据Linux发行版的不同,您可能需要安装Ruby。主体可以很容易地移植到例如
bash

如果您的实例正在运行Windows,请参见以下内容:


您可以使用以下命令创建一个
init
脚本,用于连接已可用的卷:

ec2-attach-volume volume_id --instance instance_id --device device 
要想让它起作用,你需要

  • 安装在机器上的EC2-API

  • 您需要将
    EC2_私钥
    EC2_证书
    作为环境变量,或者必须显式传递

  • 您尝试连接的卷应该可用。或者,也可以选择先强制

  • 您可以使用
    curlhttp://169.254.169.254/latest/meta-data/instance-id
    获取当前实例的实例id

  • 参考:


    希望这能有所帮助。

    是否有办法对根卷执行此操作?您可能无法使用init脚本,因为如果它已经使用根磁盘运行脚本,那么将现有EBS磁盘作为根卷已经太晚了?还要注意,init脚本是由根运行的,因此您的凭据需要添加为根。awscli特别需要这个。连接设备后,可能需要显式安装。