【问题标题】:Increase the root device size in cloudformation autoscaling group增加 cloudformation 自动缩放组中的根设备大小
【发布时间】:2013-10-09 09:19:50
【问题描述】:

我正在尝试从我的 cloudformation AutoScaling::LaunchConfiguration 增加支持 ebs 的 ec2 实例上的硬盘空间。最初,根设备以 8GB 开头。我想将其增加到 40GB。我的印象是我可以根据这个documentation 做到这一点。不幸的是,下面的配置似乎不起作用。

"LaunchConfig" : {
    "Type": "AWS::AutoScaling::LaunchConfiguration",
    "Properties": {
        "BlockDeviceMappings": [{
            "DeviceName": "/dev/sda1",
            "Ebs" : {"VolumeSize": "40"}
        }]
    }
}

我正在使用基于 ami-05355a6c 的自定义 ami。

【问题讨论】:

    标签: amazon-web-services amazon-ec2 amazon-cloudformation


    【解决方案1】:

    您的 LaunchConfiguration 设置 EBS 卷块设备的大小。但是,文件系统仍然认为它应该只使用 8 GB。

    您可以运行如下命令来告诉文件系统它应该用完整个块设备:

    sudo resize2fs /dev/sda1
    

    您可以在自定义 AMI 启动命令中自动执行此操作,或者您可以在 LaunchConfiguration 中传入用户数据脚本以达到以下效果:

    #!/bin/bash
    resize2fs /dev/sda1
    

    用户数据脚本在首次启动时以 root 身份运行,因此不需要 sudo。这是我介绍用户数据脚本概念的文章:http://alestic.com/2009/06/ec2-user-data-scripts

    在 CloudFormation 模板中,这可能类似于:

        "UserData" : { "Fn::Base64" : { "Fn::Join" : ["", [
          "#!/bin/bash -ex\n",
          "exec > >(tee /var/log/user-data.log|logger -t user-data -s 2>/dev/console) 2>&1\n",
          "resize2fs /dev/sda1\n",
          ""
        ]]}}
    

    这是一篇文章,我解释了“exec”行对调试用户数据脚本的用处:http://alestic.com/2010/12/ec2-user-data-output

    【讨论】:

    • +1 获取有关“exec”行的提示。这为我节省了大量时间。如果我今年在 reinvent 看到你,我欠你一杯啤酒 :)
    猜你喜欢
    • 1970-01-01
    • 2015-08-05
    • 1970-01-01
    • 2014-09-04
    • 1970-01-01
    • 2016-05-14
    • 1970-01-01
    • 2020-10-26
    • 1970-01-01
    相关资源
    最近更新 更多