Amazon Elastic Compute Cloud (Amazon EC2) インスタンスにアタッチされているボリュームをいつ拡張すればよいか知りたいです。また、オペレーティングシステム(OS)レベルでパーティションとファイルシステムの拡張を自動化したいと考えています。
簡単な説明
Amazon Elastic Block Store (Amazon EBS) ボリュームを評価および拡張するために、AWS Systems Manager Automation ドキュメントのセットを使用できます。Automation ドキュメントによって、Amazon EC2 インスタンスのディスク使用量の低下を調査し、必要に応じて修正することができます。
OS の種類に基づいて、AWSPremiumSupport-TroubleshootEC2DiskUsage Automation ドキュメントは他の Systems Manager ドキュメントの実行を誘導します。
次のドキュメントでは、基本的な診断を行い、ボリュームサイズを拡張してボリュームを移行できるかどうかを評価します。
- AWSPremiumSupport-DiagnoseDiskUsageOnWindows
- AWSPremiumSupport-DiagnoseDiskUsageOnLinux
次のドキュメントでは、前述のドキュメントの出力を取得し、Python コードを実行してボリューム変更を実行します。
- AWSPremiumSupport-ExtendVolumesOnWindows
- AWSPremiumSupport-ExtendVolumesOnLinux
次に、Automation がインスタンスにアクセスし、ボリュームのパーティションとファイルシステムを拡張します。
解決策
権限を付与する
Automation ドキュメントを使用するために、次の権限を付与する必要があります。まず、ターゲットインスタンスにアタッチされている Systems Manager 用の AWS Identity and Access Management (IAM) インスタンスプロファイルがあることを確認します。
権限を付与するには、以下の手順を実行して ** AssumeRole ** を設定して、Automation ドキュメント設定プロセスの AutomationAssumeRole パラメータを指定します。
-
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"
}
]
}
-
引き受けロールを作成し、ポリシーをアタッチします。
-
次のステートメントを変更します。"Resource": "*" を、ロールを引き継ぐための ARN に置き換えます。
{
"Action": [
"iam:PassRole"
],
"Resource": "*",
"Effect": "Allow"
},
Automation ドキュメントを実行する
Systems Manager Automation ドキュメントのセットを使用するには、AWSPremiumSupport-TroubleshootEC2DiskUsage ドキュメントのみを実行します。
AWSPremiumSupport-TroubleshootEC2DiskUsage ドキュメントを実行するには、次の手順を実行します。
- Systems Manager コンソールを開き、ナビゲーションペインで [自動化] を選択します。
- [オートメーションの実行] を選択します。
- [AWSPremiumSupport-TroubleshootEC2DiskUsage] を選択し、[次へ] を選択します。
- [自動化ドキュメントの実行] で、**[シンプルな実行]**を選択します。
- [入力パラメータ] に、次の情報を入力します。
InstanceId には、Amazon EC2 インスタンス ID を入力します。
AutomationAssumeRole には、Automation が代わりにアクションを実行できるようにする引受ロールの 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% 分を増やすように指定したためです。Automation ドキュメントでは、VolumeExpansionGibIncrease と VolumeExpansionPercentageIncrease のうち、最大の純増加を使用します。新しいボリュームサイズは 40 GB です。40 GB は、指定された 2048 VolumeExpansionCapSize 内です。
関連情報
ボリュームサイズ変更後の Linux ファイルシステムの拡張
ボリュームサイズ変更後の Windows ファイルシステムの拡張
IAM を使用して、オートメーションのロールを設定する