如何在可用磁碟空間不足時自動評估和修復 Amazon EC2 執行個體上增加的磁碟區?
我想知道我的 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體所連接的磁碟區是否需要擴充。此外,在作業系統 (OS) 層級擴充分割區和檔案系統是一項耗時的作業。我怎樣才能自動化整個過程?
簡短說明
您可以使用一批 AWS Systems Manager Automation 文件來評估和擴充 Amazon Elastic Block Store (Amazon EBS) 磁碟區。Automation 文件會統一運作,讓您能夠調查並選擇修復 Amazon EC2 執行個體上的磁碟使用量不足。
自動化文件 AWSPremiumSupport-TroubleshootEC2DiskUsage 會根據作業系統類型來協調其他系統管理員文件的執行。
第一批文件會執行基本診斷,並評估是否可以藉由擴充磁碟區大小來移轉:
- AWSPremiumSupport-DiagnoseDiskUsageOnWindows
- AWSPremiumSupport-DiagnoseDiskUsageOnLinux
第二批文件會接收第一批文件的輸出內容,並執行 Python 代碼來修改磁碟區。然後,自動化會存取執行個體,並擴充磁碟區的分割區和檔案系統:
- AWSPremiumSupport-ExtendVolumesOnWindows
- AWSPremiumSupport-ExtendVolumesOnLinux
使用下列步驟來設定必要權限並執行自動化文件。
解決方案
授予權限
您必須授予下列權限以使用自動化文件。
如果您尚未這麼做,請為系統管理員建立 AWS Identity and Access Management (IAM) 執行個體設定檔。然後,將其附加到目標執行個體。
若要設定 AssumeRole,即在自動化文件組態設定程序中指定 AutomationAssumeRole 參數的必要設定,請遵循下列步驟:
1. 使用下列 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" } ] }
2. 建立假設角色並附加到上一個步驟建立的政策。
3. 修改此陳述式並使用假設角色的 ARN 取代 "Resource": "*"。
{ "Action": [ "iam:PassRole" ], "Resource": "*", "Effect": "Allow" },
執行自動化文件
若要使用這批 Systems Manager Automation 文件,您僅需要執行最初的 AWSPremiumSupport-TroubleshootEC2DiskUsage 文件。請遵循下列步驟:
1. 開啟 系統管理員主控台,然後從導覽窗格中選擇自動化。
2. 選擇執行自動化。
3. 選取 AWSPremiumSupport-TroubleshootEC2DiskUsage 的選項按鈕,然後選擇下一步。
4. 對於執行自動化文件,選取簡單執行。
5. 在輸入參數下:
對於 InstanceId 欄位,輸入您的 Amazon EC2 執行個體 ID。
對於 AutomationAssumeRole 欄位,輸入允許自動化代表您執行動作之角色的 ARN。這是您授予權限時建立的假設角色。
6. (選用) 如果您的需求與預設值不同,請在輸入參數下,指定下列輸入:
VolumeExpansionEnabled: 控制文件是否擴充受影響的磁碟區和分割區 (預設值: True)
VolumeExpansionUsageTrigger: 觸發擴充所需的分割區已使用空間百分比下限 (預設值: 85)
VolumeExpansionCapSize: EBS 磁碟區最大可增加至此大小 (以 GiB 為單位) (預設值: 2048)
VolumeExpansionGibIncrease: 以 GiB 為單位的磁碟區增加量 (預設值: 20)
VolumeExpansionPercentageIncrease: 磁碟區增加量百分比 (預設值: 20)
7. 選擇執行。
主控台會顯示自動化狀態。
範例
您目前的磁碟區為 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內。
相關資訊
相關內容
- 已提問 1 年前lg...
- 已提問 10 個月前lg...
- 已提問 9 個月前lg...
- 已提問 5 個月前lg...
- 已提問 5 個月前lg...
- AWS 官方已更新 1 年前
- AWS 官方已更新 1 年前
- AWS 官方已更新 3 年前