0

我正在使用 PHP 脚本以编程方式创建一个新的 Windows 实例并在其上运行测试。

一切正常,直到我升级为使用小型实例(而不是微型实例)。最初我以为 Windows 2008 的C:\ 驱动器大小为 160 GB,但不,似乎必须启用这个空间。

我搜索了很多,发现可以使用命令行或使用此 PHP 函数modify_instance_attribute以编程方式启用此存储

但是,目前尚不清楚如何做到这一点。我的问题是:是否可以作为D:\访问此实例存储(例如)。如果是这样,我怎样才能在 PHP 中做到这一点?IE。

$ec2->modify_instance_attribute($instance_id, 
       array('BlockDeviceMapping' => array(
            'DeviceName' => '/dev/sdc=ephemeral0'
       )
));

PS。我不关心数据完整性,我只需要那些 160 GB 以便我为我的自动化测试动态生成随机数据。

4

2 回答 2

2

试试这个:

  1. 创建您的 m1.small 实例
  2. 通过 RDP 连接并转到开始菜单 --> 计算机 --> 管理
  3. 在服务器管理器窗口 GoTo Storage中,您应该在底部面板中找到列为未分配空间 (149GB) 的实例存储
  4. 右键单击它并选择在线
  5. 再次右键单击并将其安装为新硬盘驱动器
  6. 格式化这个新驱动器并在资源管理器中仔细检查它是否存在
  7. 现在注销,转到亚马逊控制面板并将这个正在运行的实例保存为新图像

就这样。从现在开始,每当您从 PHP 启动一个新的小型实例时,您的 160GB 驱动器应该已经挂载并可用。

PS。不需要 modify_instance_attribute() 函数,您可以使用 run_instances() 执行此操作,即。

<?php
$ec2 = new AmazonEC2();
$ec2->set_region(AmazonEC2::REGION_EU_W1);
$ec2->run_instances($ami_image_id, 1, 1, array(
                    'KeyName'       => 'my-Key',
                    'Placement'     => array('AvailabilityZone' => 'eu-west-1a'),
                    'BlockDeviceMapping' => array(
                              'VirtualName'    => 'ephemeral0',
                              'DeviceName'     => '/dev/xvdb'
                     ),
                     'InstanceType'  => 'm1.small',
                     'SecurityGroup' => 'my-RDP-group'
 ));
?>
于 2012-04-29T18:02:33.597 回答
0

Amazon EC2实例启动后,无法以编程方式为其启用/映射实例存储,请参阅在Amazon EC2 实例存储使用场景中使实例存储在您的实例上可用部分:

默认情况下,将 Amazon EBS 用于根设备的实例在启动时没有可用的实例存储。如果要将实例存储与 EBS 支持的实例一起使用,则必须在启动实例时显式地将实例存储与设备映射[强调我的]

该页面还概述了实现此目标所需的高级步骤,cyberx86对 m1.xlarge 实例上缺少临时磁盘的回答提供了两种可用方法的很好的总结。

于 2012-04-29T14:01:02.913 回答