我想看看附加到我的 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 之内。
相关信息
调整卷大小后扩展 Linux 文件系统
调整卷大小后扩展 Windows 文件系统
使用 IAM 为自动化配置角色