【问题标题】:Get AWS to automatically attach EC2 Volume to Ubuntu instance at startup让 AWS 在启动时自动将 EC2 卷附加到 Ubuntu 实例
【发布时间】:2019-04-28 05:36:16
【问题描述】:

我想附加一个 EBS 卷而不是快照作为我的 Spot 实例的持久存储。我了解如何手动附加卷、挂载它并让它在重新启动后仍然存在,但我如何让它在启动时自动附加?

在启动实例时我可以在用户数据中做些什么吗?

目前,我有一个 ami 作为现场实例运行。我有一个单独的卷,它持续存在并用于实例的输入和保存结果。我一次只有一个实例。 ami 将驱动器安装在 /data。为了使挂载能够在重新启动后继续存在,我编辑了 /etc/fstab 以包括:

UUID=MY_VOLUME_UUID /data xfs defaults,nofail 0 2

再次编辑以展示 Passatizhi 的解决方案

我将以下内容添加到 EC2 启动向导的配置实例详细信息 > 高级详细信息 > 用户数据部分:

#!/bin/bash
INSTANCE_ID=$(curl 169.254.169.254/latest/meta-data/instance-id) 
export AWS_DEFAULT_REGION=$(curl 169.254.169.254/latest/meta-data/placement/availability-zone | sed 's/[a-z]$//') 
/home/ubuntu/miniconda3/bin/aws ec2 attach-volume --volume-id vol-myVol12345 --instance-id $INSTANCE_ID --device /dev/sdf 
sleep 10 
sudo mkdir -p /data 
sudo mount /dev/nvme1n1 /data

注意: 我需要将完整路径添加到 aws 以使其正常工作。另外由于 ami 已经有 /data 设置,我不需要sudo mkdir -p /data

【问题讨论】:

  • “启动时”是指实例启动时?
  • @hephalump 是实例启动时
  • 我想澄清一下,one 卷是同时挂载多个实例的吗?您可以创建一个卷并将其附加到 aws 控制台中。这不合适吗?
  • @Passatizhi 我将我的问题编辑得更具体,但我并没有问如何在创建/第一次启动时将卷附加到多个实例自动一个卷到一个实例.

标签: amazon-web-services amazon-ec2


【解决方案1】:
#!/bin/bash INSTANCE_ID=$(curl 169.254.169.254/latest/meta-data/instance-id) 
export AWS_DEFAULT_REGION=$(curl 169.254.169.254/latest/meta-data/placement/availability-zone | sed 's/[a-z]$//')
/bin/aws ec2 attach-volume --volume-id vol-0fdb738415896f8f6 --instance-id $INSTANCE_ID --device /dev/sdf
sleep 10
sudo mkdir -p /data
sudo mount /dev/nvme1n1 /data

尝试 /bin/aws 代替 aws。我用的是 t3.small,所以 /dev/nvme1n1

【讨论】:

    猜你喜欢
    • 2014-08-03
    • 1970-01-01
    • 2018-12-29
    • 1970-01-01
    • 2014-07-31
    • 1970-01-01
    • 2015-04-10
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多