可用磁盘空间不足时,如何自动评估和解决 Amazon EC2 实例的卷持续增加这一问题?
我想看看附加到我的 Amazon Elastic Compute Cloud (Amazon EC2) 实例的卷是否需要扩展。此外,在操作系统 (OS) 层面扩展分区和文件系统是一项耗时的操作。如何才能实现整个过程的自动化?
简短描述
您可以使用一组 AWS Systems Manager 自动化文档来评估和扩展 Amazon Elastic Block Store (Amazon EBS) 的卷。通过自动化文档协同工作,您可以调查并有选择地纠正 Amazon EC2 实例上磁盘使用率偏低这一问题。
AWSPremiumSupport-TroubleshootEC2DiskUsage 自动化文档根据操作系统类型,对其他 Systems Manager 文档的运行进行协调。
第一组文档执行基本诊断,并评估是否可以通过扩展卷进行迁移:
- AWSPremiumSupport-DiagnoseDiskUsageOnWindows
- AWSPremiumSupport-DiagnoseDiskUsageOnLinux
第二组文档获取第一个文档的输出,并运行 Python 代码来执行批量修改。然后,自动化访问实例并扩展卷的分区和文件系统:
- AWSPremiumSupport-ExtendVolumesOnWindows
- AWSPremiumSupport-ExtendVolumesOnLinux
使用以下步骤设置所需的权限并运行自动化文档。
解决方法
授予权限
您必须授予以下权限才能使用自动化文档。
如果尚未授予权限,请为 Systems Manager 创建 AWS 身份和访问管理 (IAM) 实例配置文件。然后,将其附加到目标实例。
要设置 AssumeRole(在自动化文档配置过程中,必须指定 **AutomationAssumeRole ** 参数),请执行以下步骤:
- 使用以下 JSON 策略文档在 JSON 选项卡上创建策略:
{ "Version": "2012-10-17", "Statement": [ { "Action": [ "ec2:DescribeVolumes", "ec2:DescribeVolumesModifications", "ec2:ModifyVolume", "ec2:DescribeInstances", "ec2:CreateImage", "ec2:DescribeImages", "ec2:DescribeTags", "ec2:CreateTags", "ec2:DeleteTags" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "iam:PassRole" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ssm:StartAutomationExecution", "ssm:GetAutomationExecution", "ssm:DescribeAutomationStepExecutions", "ssm:DescribeAutomationExecutions" ], "Resource": "*", "Effect": "Allow" }, { "Action": [ "ssm:SendCommand", "ssm:DescribeInstanceInformation", "ssm:ListCommands", "ssm:ListCommandInvocations" ], "Resource": "*", "Effect": "Allow" } ] }
-
创建代入角色并附加在上一步中创建的策略。
-
修改此语句并将 “资源”:”* “替换为您的代入角色的 ARN。
{ "Action": [ "iam:PassRole" ], "Resource": "*", "Effect": "Allow" },
运行自动化文档
要使用这组 Systems Manager 自动化文档,您只需运行最初的 AwsPremiumSupport-TroubleshootEC2DiskUsage 文档。请按照以下步骤操作:
-
打开 Systems Manager 控制台,然后在导航窗格中选择自动化。
-
选择执行自动化。
-
选择 AWSPremiumSupport-TroubleshootEC2DiskUsage 的单选按钮,然后选择下一步。
-
对于执行自动化文档,选择简单执行。
-
在输入参数下:
对于InstanceId,请输入您的 Amazon EC2 实例 ID。
对于 AutomationAssumeRole,输入允许自动化代表您执行操作的角色 ARN。这是您在授予权限时创建的代入角色。
- (可选)在输入参数下,如果您的要求与默认值不同,请指定以下输入:
VolumeExpansionEnabled: 控制文档是否会扩展受影响的卷和分区(默认: True)
VolumeExpansionUsageTrigger: 触发扩展所需已用分区空间的最小百分比(默认: 85)
VolumeExpansionCapSize: EBS 卷将增加到的最大空间(单位: GiB)(默认: 2048)
VolumeExpansionGibIncrease: 增加卷,单位:GiB(默认: 20)
VolumeExpansionPercentageIncrease: 卷增加百分比(默认: 20)
- 选择执行。
控制台显示自动化状态。
示例
您当前的卷为 30 GB,有 4 GB 的可用空间,这意味着您有 26 GB 的已用空间。您可以指定以下输入参数:
- VolumeExpansionUsageTrigger: 85
- VolumeExpansionGibIncrease: 10
- VolumeExpansionPercentageIncrease: 15
- VolumeExpansionCapSize: 2048
结果:
触发增加,是因为26 GB的已用空间超过了为 VolumeExpansionUsageTrigger 指定的85%阈值。
卷增加了 10 GB。这是因为您指定卷应增加 10 GB 或当前 4.5 GB 卷的 15%。自动化文档使用了介于 VolumeExpansionGibIncrease 和 VolumeExpansionPercentageIncrease 的最大净增长值。
新卷大小为 40 GB,在指定的 2048 VolumeExpansionCapSize 之内。
相关信息

相关内容
- AWS 官方已更新 6 个月前
- AWS 官方已更新 6 个月前