AWS .Net SDK 创建具有特定 EBS 卷大小的 Amazon EC2 实例

AWS .Net SDK Create an Amazon EC2 instance with a specific EBS Volume Size

我正在开发一个以编程方式创建和管理 ec2 实例的 .net Web 应用程序。截至目前,当我创建新实例时,磁盘卷的大小是固定的:我相信是由映像 (AMI) 定义的。

我想在创建新实例时预定义磁盘卷的大小,这样我以后就不需要运行 调整大小操作了。那可能吗?哪种方法最好?

我有几个想法:

  1. 在 RunInstancesRequest 对象上定义卷大小。但是我觉得没有这个选项。

  2. 使用不同的磁盘大小创建 AMI 映像的副本,并使用该副本请求新的 EC2 实例。这能做到吗?

  3. 有什么other/better方法吗?

如果有帮助,我附上我目前用于请求新实例的代码:

var launchRequest = new RunInstancesRequest()
    {
        ImageId = amiID,
        InstanceType = type,
        MinCount = 1,
        MaxCount = 1,
        SecurityGroupIds = groups
    };
    var launchResponse = ec2Client.RunInstances(launchRequest);
    var instances = launchResponse.Reservation.Instances;
    var myInstance = instances.First();

您需要在 launchRequest[ 中设置 EbsBlockDeviceVolumeSize 的(整数 GiB)值=28=].BlockDeviceMappings 启动前。

请记住,如果指定快照,卷大小必须等于或大于快照大小。此外,如果您从快照创建卷并且未指定卷大小,则默认值为快照大小。

提示:始终检查 DeleteOnTermination 的布尔值,不要假设它具有默认值 True 对于 AWS 控制台中的根卷。

You can find out more on EbsBlockDevice properties here