AWS OpsWorks:如何设置每层的默认EBS卷大小?

时间:2014-05-07 12:12:17

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

我确信我遗漏了一些明显的东西,但我无法找到一种方法来设置每层的默认EBS卷大小。我在这一层启动的每个实例默认都有10GB的容量。

在图层配置窗格中,我尝试添加一个我需要的尺寸的EBS卷,但它不允许我将它安装在" /"。

我需要为/ srv / www上安装的应用程序增加这个额外的大小,但是文档说此时不应该安装卷:

  

不要将Amazon EBS卷安装到以下挂载点。如果   实例重新启动,autofs可能会使用它们来安装一个短暂的   设备而不是你的音量。

     

/ SRV /网络

2 个答案:

答案 0 :(得分:7)

在撰写本文时,您无法使用OpsWorks更改默认根卷大小。但是,在使用API​​的create-instance command时,您可以提供block device mapping(就像在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}}]'

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

答案 1 :(得分:5)

您无法将卷装入/,即根目录。 遗憾的是,您无法在OpsWorks中设置根设备大小。 但你可以在其他地方安装一个卷,如/mnt/www和符号链接。