【问题标题】:AWS OpsWorks: how to set the default EBS volume size per layer?AWS OpsWorks:如何设置每层的默认 EBS 卷大小?
【发布时间】:2014-06-24 09:51:45
【问题描述】:

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

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

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

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

/srv/www

【问题讨论】:

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


    【解决方案1】:

    在撰写本文时,您无法使用 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}}]'
    

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

    【讨论】:

    • 我可以使用 CloudFormation 实现这一目标吗?
    • @Casper 这无法通过 CloudFormation 实现。 Here 你可以看到不支持BlockDeviceMappings。但是,您可以使用Custom Resources 调用Lambda function 来创建/修改/更新这些资源。
    • 所以你是说我需要先启动一个实例,然后修改根卷?
    • @Casper,您能否通过 CloudFormation 实现这一目标?
    • @ManishJoshi 不是 atm,我联系了 AWS 支持,这是一个功能请求。
    【解决方案2】:

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

    【讨论】:

    • 是的,我最终做了这样的事情......遗憾的是,它不能更容易地完成。
    • 我会将此作为功能请求。 :)
    • @spangenberg 我正在寻找这个确切的东西。我们将日志存储几天,它们偶尔会超过限制。希望实例从更多空间开始。谢谢。
    • 我了解您的问题。同时,请将 EBS 卷挂载到 /var/log 或存储日志的任何位置。
    • @spangenberg,我真的希望它很快就会出现,因为它也最终允许连接通用或 PIOPS SSD 根设备!
    猜你喜欢
    • 2017-02-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-11-19
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多