在 cloudformation 中为 ec2 实例指定根卷大小

yiv*_*ivi 2 amazon-web-services amazon-cloudformation

继承了亚马逊托管的基础设施,包括一个负载均衡器、一个数据库服务器和一个自动缩放组内的几个网络服务器;由 CloudFormation 协调部署。

问题是,旋转的网络服务器有一个微不足道的根卷 (8gb),有时在网络服务器生命周期内,磁盘被日志和临时文件填满,一些服务停止工作。

我找到了声明机器定义的部分(我认为):

...
"Properties": {
            "ImageId": {
                "Fn::FindInMap": [
                    "AWSRegionArch2AMI",
                    {
                        "Ref": "AWS::Region"
                    },
                    {
                        "Fn::FindInMap": [
                            "AWSInstanceType2Arch",
                            {
                                "Ref": "InstanceType"
                            },
                            "Arch"
                        ]
                    }
                ]
            },
            "InstanceType": {
                "Ref": "InstanceType"
            },
            "SecurityGroups": [
                {
                    "Ref": "WebServerSecurityGroup"
                }
            ],
            "KeyName": {
                "Ref": "KeyName"
            },
            "UserData": {
                "Fn::Base64": {
                    "Fn::Join": [
...
Run Code Online (Sandbox Code Playgroud)

实例类型最终在其他地方定义:

"InstanceType": {
  "Description": "WebServer EC2 instance type",
  "Type": "String",
  "Default": "c4.xlarge",
  "AllowedValues": [
    "t1.micro",
    "t2.nano",
     # ... more allowed values
    "cg1.4xlarge"
  ],
  "ConstraintDescription": "must be a valid EC2 instance type."
},
Run Code Online (Sandbox Code Playgroud)

但我不知道如何声明根卷大小,如果可能的话,我也不知道;我在任何地方都看不到 ebs 卷被声明。

这是一台linux机器,根设备是/dev/xvda1

[ec2-user@ip- /]$ df -h
Filesystem      Size  Used Avail Use% Mounted on
/dev/xvda1      7.8G  1.6G  6.2G  21% /
devtmpfs        3.7G   60K  3.7G   1% /dev
tmpfs           3.7G     0  3.7G   0% /dev/shm
Run Code Online (Sandbox Code Playgroud)

尝试了@Jason 建议的解决方案(虽然替换sda1xvda1),但这样做后CloudFormation不会启动任何新机器。

我可以看到,在我上传具有以下更改的新模板后,机器的启动配置会相应更新: 屏幕截图显示了 AWS 控制台中 20gb 的磁盘大小

但是新机器不会再自动启动了。:(

小智 8

我已经被困了好几天使用 Cloudformation 更改根磁盘大小,这就是它对我的工作方式..

如果使用/dev/xvda1实例会失败,正确的方法是使用/dev/xvda.

使用 YAML 格式:

BlockDeviceMappings:
- DeviceName: "/dev/xvda"
   Ebs:
      VolumeSize: 15
Run Code Online (Sandbox Code Playgroud)