Mik*_*keV 12 amazon-ec2 amazon-web-services aws-cloudformation
我试图从我的cloudformation AutoScaling :: LaunchConfiguration增加我的ebs支持的ec2实例上的硬盘空间.最初,根设备以8GB开头.我想把它增加到40GB.我的印象是我可以根据这个文档做到这一点.不幸的是,下面的配置似乎不起作用.
"LaunchConfig" : {
"Type": "AWS::AutoScaling::LaunchConfiguration",
"Properties": {
"BlockDeviceMappings": [{
"DeviceName": "/dev/sda1",
"Ebs" : {"VolumeSize": "40"}
}]
}
}
Run Code Online (Sandbox Code Playgroud)
我使用的是基于ami-05355a6c的自定义ami.
Eri*_*ond 18
您的LaunchConfiguration设置EBS卷块设备的大小.但是,文件系统仍然认为它应该只使用8 GB.
您可以运行如下命令来告诉文件系统它应该用完整个块设备:
sudo resize2fs /dev/sda1
Run Code Online (Sandbox Code Playgroud)
您可以在自定义AMI启动命令中自动执行此操作,也可以将LaunchConfiguration中的用户数据脚本传递到以下效果:
#!/bin/bash
resize2fs /dev/sda1
Run Code Online (Sandbox Code Playgroud)
用户数据脚本在首次启动时以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",
""
]]}}
Run Code Online (Sandbox Code Playgroud)
这篇文章中我解释了"exec"行用于调试用户数据脚本的用处:http://alestic.com/2010/12/ec2-user-data-output