6

我确定我遗漏了一些明显的东西,但我找不到设置每层默认 EBS 卷大小的方法。默认情况下,我在该层上启动的每个实例都有一个 10GB 的卷。

在层配置窗格中,我尝试添加具有所需大小的 EBS 卷,但它不允许我将其安装在“/”上。

我需要为安装在 /srv/www 的应用程序提供这个额外的大小,但文档说此时不应安装卷:

不要将 Amazon EBS 卷挂载到以下挂载点。如果实例重新启动,autofs 可能会使用它们来挂载临时设备而不是您的卷。

/srv/www

4

2 回答 2

7

在撰写本文时,您无法使用 OpsWorks 更改默认根卷大小。但是,当使用 API 的create-instance 命令时,您可以提供块储存设备映射(如在 EC2 上)并定义大小。

例如,您可以创建一个包含以下内容的文件,并为方便起见将其命名为“instance.json”:

{
    "InstanceType": "c4.large", 
    "RootDeviceType": "ebs", 
    "BlockDeviceMappings": [
        {
            "DeviceName": "ROOT_DEVICE", 
            "Ebs": {
                "VolumeSize": 20, 
                "VolumeType": "gp2", 
                "DeleteOnTermination": true
            }
        }
    ] 
}

然后,您可以执行如下命令来创建具有所需根卷大小的实例,使用该文件并替换正确的堆栈和层 ID:

aws opsworks create-instance --cli-input-json file://./instance.json --stack-id <stack-id-number-here> --layer-ids <one-or-more-layer-id-numbers-here>

如果您更喜欢 oneliner,虽然有点笨拙:

aws opsworks create-instance --stack-id <stack-id-number-here> --layer-ids <one-or-more-layer-id-numbers-here> --instance-type <e.g. c4.large> --block-device-mappings '[{"DeviceName":"ROOT_DEVICE","Ebs":{"VolumeType":"gp2","VolumeSize":20}}]'

请注意,此过程仅在创建实例时有效,之后您无法修改,除非手动修改。

于 2015-09-07T08:40:59.360 回答
5

您不能在 / 处挂载卷,这是根目录。不幸的是,您无法在 OpsWorks 中设置根设备大小。但是您可以在其他地方安装一个卷,/mnt/www并在那里进行符号链接。

于 2014-05-23T12:15:10.780 回答