Amazon Elastic Compute Cloud (Amazon EC2) インスタンスにアタッチされているボリュームを拡張する必要があるかどうかを確認したいです。また、オペレーティングシステム (OS) レベルでのパーティションとファイルシステムの拡張は時間のかかる作業なので、プロセス全体を自動化したいのですが、どうすれば良いですか?
簡単な説明
Amazon Elastic Block Store (Amazon EBS) ボリュームを評価および拡張するために、AWS Systems Manager Automation ドキュメント セットを使用できます。Automation ドキュメントは一体となって機能し、Amazon EC2 インスタンスのディスク使用量の低下を調査し、必要に応じて修正することができます。
AWSPremiumSupport-TroubleshootEC2DiskUsage Automation ドキュメントは、OS の種類に基づいて他の Systems Manager ドキュメントの実行をオーケストレートします。
最初のドキュメントセットは、ボリュームサイズを拡張して移行できるかどうかの基本的な診断と評価を行います:
- AWSPremiumSupport-DiagnoseDiskUsageOnWindows
- AWSPremiumSupport-DiagnoseDiskUsageOnLinux
2 番目のドキュメントセットは、最初のドキュメントの出力を取得し、Python コードを実行してボリューム変更を行います。次に、Automation がインスタンスにアクセスし、ボリュームのパーティションとファイルシステムを拡張します:
- AWSPremiumSupport-ExtendVolumesOnWindows
- AWSPremiumSupport-ExtendVolumesOnLinux
必要な権限をセットアップして Automation ドキュメントを実行するには、次の手順を使用します。
解決方法
権限を付与する
Automation ドキュメントを使用するために、次の権限を付与する必要があります。
まだ行っていない場合は、Systems Manager 用の AWS IdentityとAccess Management (IAM) インスタンスプロファイルを作成します。次に、それをターゲットインスタンスにアタッチします。
Automation ドキュメントのセットアッププロセス中に AutomationAssumeRole パラメータを指定する必要がある AssumeRole をセットアップするには、以下の手順に従います:
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. assume ロールを作成して、前のステップで作成されたポリシーをアタッチします。
3. このステートメントを変更して、"Resource": "*" を、assume ロールの ARN に置き換えます。
{
"Action": [
"iam:PassRole"
],
"Resource": "*",
"Effect": "Allow"
},
Automation ドキュメントを実行する
Systems Manager Automation ドキュメントセットを使用するには、最初の AWSPremiumSupport-TroubleshootEC2DiskUsage ドキュメントのみを実行する必要があります。以下の手順に従います:
1. Systems Manager コンソールを開き、ナビゲーションペインから [Automation] を選択します。
2. [Automation の実行] を選択します。
3. AWSPremiumSupport-TroubleshootEC2DiskUsage のラジオボタンを選択し、[次へ] を選択します。
4. [Automation ドキュメントの実行] について、[簡易実行] を選択します。
5. [入力パラメータ] で次のように入力します:
InstanceId には、Amazon EC2 インスタンス ID を入力します。
AutomationAssumeRole には、Automation が代わりにアクションを実行できるようにするロールの ARN を入力します。これは、権限を付与するときに作成した assume ロールです。
6. (オプション) 要件の値がデフォルト値と異なる場合は、[入力パラメータ] で次の入力値を指定します:
VolumeExpansionEnabled: 影響を受けるボリュームとパーティションをドキュメントが拡張するかどうかを制御します (デフォルト: True)
VolumeExpansionUsageTrigger: 拡張をトリガーする要件となる使用済みパーティション容量の最小パーセンテージ (デフォルト: 85)
VolumeExpansionCapSize: EBS ボリュームが増加する場合の最大サイズ (GiB 単位) (デフォルト: 2048)
VolumeExpansionGibIncrease: GiB 単位のボリューム増加 (デフォルト: 20)
VolumeExpansionPercentageIncrease: ボリュームの増加パーセンテージ (デフォルト: 20)
7. [実行] を選択します。
コンソールに Automation のステータスが表示されます。
例
現在のボリュームは 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 で、これは 2048 と指定した VolumeExpansionCapSize の範囲内です。
関連情報
ボリュームサイズ変更後の Linux ファイルシステムの拡張
ボリュームサイズ変更後の Windows ファイルシステムの拡張
IAM を使用して、オートメーションのロールを設定する