如何使用AWS Cli启动具有自定义根卷ebs大小(大于8GB)的ec2实例

时间:2018-11-19 06:15:26

标签: amazon-web-services amazon-ec2 aws-ebs

我正在尝试使用aws cli启动ec2实例,但是默认情况下,根卷仅为8Gb。如何使用CLI提示100GB的根卷启动ec2实例?

我正在尝试此命令,

aws ec2 run-instances --image-id ami-xxxxx --count 1 --instance-type t2.micro \ --subnet-id xxxxxxx \ --key-name my-key \ --security-group-ids sg-xxxxxx \ --no-associate-public-ip-address \ -用户数据文件://test.sh \ --tag-specifications'ResourceType = instance,Tags = [{{Key = Name,Value = test-server}]'

我尝试添加以下参数,但不起作用。

-块设备映射DeviceName = / dev / sda1,Ebs = {VolumeSize = 100}

-block-device-mapping / dev / sda1 =:100:false

-block-device-mappings->将辅助ebs卷添加到实例。

1 个答案:

答案 0 :(得分:4)

此内容在AWS CLI文档中进行了介绍:

https://docs.aws.amazon.com/cli/latest/reference/ec2/run-instances.html

使用修改后的块设备映射启动实例

您可以更改现有AMI块设备映射的各个特征,以满足您的需求。也许您想使用现有的AMI,但是您想要的根卷比通常的8 GiB大。或者,您想对当前使用电磁卷的AMI使用通用(SSD)卷。

使用describe-images命令和要用于其现有块设备映射的AMI的图像ID。您应该在输出中看到一个块设备映射:

{
  "DeviceName": "/dev/sda1",
  "Ebs": {
    "DeleteOnTermination": true,
    "SnapshotId": "snap-1234567890abcdef0",
    "VolumeSize": 8,
    "VolumeType": "standard",
    "Encrypted": false
  }
}

您可以通过更改各个参数来修改上述映射。例如,要启动具有修改后的块设备映射的实例,请将以下参数添加到run-instances命令中,以更改上述映射的卷大小和类型:

--block-device-mappings file://mapping.json

mapping.json包含以下内容:

[
  {
    "DeviceName": "/dev/sda1",
    "Ebs": {
      "DeleteOnTermination": true,
      "SnapshotId": "snap-1234567890abcdef0",
      "VolumeSize": 100,
      "VolumeType": "gp2"
    }
  }
]

要在一个命令行上执行此操作,该命令应采用以下格式:

aws ec2 run-instances --block-device-mapping DeviceName=/dev/xvda,Ebs={VolumeSize=100} --image-id ami-0a5e707736615003c --region eu-west-1 --instance-type t3.micro

请注意,设备名称必须与根设备名称匹配,您可以使用以下格式的命令找到根设备名称:

aws ec2 describe-images --image-id ami-0a5e707736615003c --region eu-west-1