如何在可用磁碟空間不足時自動評估和修復 Amazon EC2 執行個體上增加的磁碟區?

2 分的閱讀內容
0

我想知道我的 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%。自動化文件使用 VolumeExpansionGibIncreaseVolumeExpansionPercentageIncrease之間最大的淨增加量。

新的磁碟區大小為 40 GB,在指定的 2048 VolumeExpansionCapSize內。


相關資訊

調整磁碟區大小後擴充 Linux 檔案系統

調整磁碟區大小後擴充 Windows 檔案系統

使用 IAM 來設定角色以進行自動化

AWS 官方
AWS 官方已更新 2 年前