You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

如何在AWS中启动实例时指定初始存储卷大小?

如何在AWS启动实例时指定初始根卷容量?

当然可以做到!你完全不需要先启动实例再后续挂载调整,直接在启动阶段就能指定根卷的自定义容量,和EC2控制台里“添加存储”标签页的效果完全一致。下面给你两种最常用的实现方式:

方法一:使用启动模板(Launch Template)

这是和控制台操作逻辑最贴近的方式,适合需要重复使用配置的场景:

  • 登录EC2控制台,创建新的启动模板
  • 切换到“存储”配置部分,找到根卷(通常显示为/dev/sda1/dev/xvda),直接修改“大小”输入框为你需要的容量
  • 保存模板后,后续通过这个模板启动实例时,根卷就会自动以你设置的容量创建

方法二:通过RunInstances API/CLI直接配置

如果你是用SDK或者命令行调用RunInstances,只需要在请求参数里添加BlockDeviceMappings来定义根卷的容量。这里给你几个示例:

Python boto3示例

import boto3

ec2_client = boto3.client('ec2', region_name='us-east-1')  # 替换成你的区域

response = ec2_client.run_instances(
    ImageId='ami-0c55b159cbfafe1f0',  # 替换为目标AMI ID
    InstanceType='t2.micro',
    MinCount=1,
    MaxCount=1,
    BlockDeviceMappings=[
        {
            'DeviceName': '/dev/xvda',  # 必须和目标AMI的根设备名称一致
            'Ebs': {
                'VolumeSize': 50,  # 自定义容量(GB),不能小于AMI的默认根卷大小
                'DeleteOnTermination': True  # 实例终止时自动删除卷,保持默认即可
            }
        }
    ]
)

AWS CLI示例

aws ec2 run-instances \
    --region us-east-1 \
    --image-id ami-0c55b159cbfafe1f0 \
    --instance-type t2.micro \
    --block-device-mappings '[{"DeviceName":"/dev/xvda","Ebs":{"VolumeSize":50}}]'

重要注意事项

  • 确认根设备名称:你可以通过aws ec2 describe-images --image-ids <你的AMI ID>命令查看目标AMI的RootDeviceName字段,必须和配置里的DeviceName一致
  • 容量限制:自定义的卷容量不能小于AMI本身的默认根卷大小,否则API会返回错误
  • EBS卷属性:如果需要调整卷类型(比如gp3),也可以在Ebs参数里添加VolumeType字段

这样操作后,启动的实例就会直接带着你指定大小的根卷,不需要后续额外调整。

内容的提问来源于stack exchange,提问作者George Polevoy

火山引擎 最新活动