You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

如何配置EC2堡垒机:将根卷设为临时卷并保留EBS卷

将EC2堡垒机根卷改为临时实例存储并保留原EBS卷的方案

可以直接将原EBS卷映射到/dev/sdh,同时把/dev/sda1作为实例存储类型的根卷,但需要满足几个关键条件并调整Terraform配置:

核心前提条件

  • 实例类型支持实例存储:确保你选择的EC2实例类型带有实例存储卷(比如t2.medium、m5.large等,部分微型实例可能没有),实例存储是临时存储,仅依附于实例生命周期。
  • 使用实例存储类型的AMI:当前的EBS-backed AMI无法直接切换为实例存储根卷,你需要先创建对应堡垒机系统的实例存储版AMI:
    1. 启动一个基于原EBS AMI的临时实例。
    2. 将EBS根卷的内容复制到实例存储卷。
    3. 基于实例存储卷创建新的AMI。

Terraform配置调整

移除原有的EBS根卷配置,添加实例存储根卷(通过使用实例存储AMI自动关联),同时配置额外的EBS卷映射到/dev/sdh:

resource "aws_instance" "bastion" {
  ami           = "ami-xxxxxx" # 替换为你的实例存储类型AMI ID
  instance_type = "t2.medium"  # 替换为支持实例存储的实例类型

  # 配置原EBS卷映射到/dev/sdh,保留持久化数据
  ebs_block_device {
    device_name           = "/dev/sdh"
    volume_size           = 20 # 替换为原EBS卷的大小
    volume_type           = "gp3" # 保持原卷的存储类型
    delete_on_termination = false # 确保实例终止时保留该卷
  }

  # 基础配置
  key_name               = "your-bastion-key"
  vpc_security_group_ids = ["sg-xxxxxx"]
}

关键注意事项

  • 实例存储数据生命周期:实例存储在实例停止后启动或终止时会丢失数据,但**重启(reboot)**时数据会保留。如果需要重启也清空根存储,需在user_data中添加启动脚本,比如重置特定目录、使用只读根文件系统配合临时挂载点。
  • 设备名映射:部分Linux系统(如Amazon Linux 2)会将/dev/sd*自动映射为/dev/xvd*,挂载时注意识别实际设备名,可在user_data中添加自动识别逻辑。
  • EBS卷数据保留:只要delete_on_termination设为false,EBS卷的数据会在实例重启、停止甚至终止时保留,完全符合你的需求。

内容的提问来源于stack exchange,提问作者Timothy Harmon

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.13 06:01:27