翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。
AWSSupport-TroubleshootWindowsPerformance
説明
ランブックは、Amazon Elastic Compute Cloud (Amazon EC2) Windows インスタンスで進行中のパフォーマンス問題のトラブルシューティングAWSSupport-TroubleshootWindowsPerformanceに役立ちます。ランブックは、ターゲットインスタンスからログをキャプチャし、CPU、メモリ、ディスク、およびネットワークパフォーマンスメトリクスを分析します。オプションで、オートメーションはプロセスダンプをキャプチャして、パフォーマンス低下の潜在的な原因を特定するのに役立ちます。このランブックにインストールを許可すると、オートメーションは最新のEC2Rescueツールを使用してイベントログとシステムログもキャプチャします。
動作の仕組み
ランブックは次のステップを実行します。
-
Amazon EC2 インスタンスで前提条件を確認します。
-
Amazon EC2 Windows インスタンスのルートディスクにパフォーマンスログを生成します
-
キャプチャされたログを フォルダに保存します。
C:\ProgramData\Amazon\SSM\TroubleshootWindowsPerformance -
Amazon Simple Storage Service (Amazon S3) バケットが提供され、オートメーションの引き受けロールに必要なアクセス許可がある場合、キャプチャされたログは Amazon S3 バケットにアップロードされます。
-
Amazon EC2 Windows インスタンスに最新の
EC2Rescueツールをインストールして、インストールを選択した場合はイベントとシステムログをキャプチャしますが、 によってキャプチャされたプロセスダンプとログは分析されませんEC2Rescue。
重要
-
このランブックを実行するには、Amazon EC2 Windows インスタンスを によって管理する必要があります AWS Systems Manager。詳細については、Amazon EC2 インスタンスがマネージドノードとして表示されない理由
」を参照してください。 -
このランブックを実行するには、Amazon EC2 Windows インスタンスが PowerShell 4.0 以降の Windows 8.1 / Windows Server 2012 R2 (6.3) 以降で実行されている必要があります。詳細については、「Windows オペレーティングシステムのバージョン
」を参照してください。 -
パフォーマンスログの生成には、ルートデバイスに少なくとも 10 GB の空き領域が必要です。ルートディスクが 100 GB より大きい場合、空き容量はディスクサイズの 10% を超える必要があります。実行中にプロセスをダンプする場合、空き領域は 10 GB より大きく、プロセスが 10 GB を超えるメモリを消費するときにプロセスが消費する合計メモリサイズを加算する必要があります。
-
ルートデバイスで生成されたログは自動的に削除されません。
-
ランブックは
EC2Rescueツールをアンインストールしません。詳細については、「Windows ServerEC2Rescueで を使用する」を参照してください。 -
パフォーマンスへの影響があるときに、この自動化を実行するのがベストプラクティスです。 AWS Systems Manager ステートマネージャーの関連付けを使用するか、 AWS Systems Manager メンテナンスウィンドウをスケジュールして定期的に実行することもできます。
ドキュメントタイプ
オートメーション
[所有者]
Amazon
[Platforms] (プラットフォーム)
Server
パラメータ
必要な IAM アクセス許可
AutomationAssumeRole パラメータでは、ランブックを正常に使用するために、次のアクションが必要です。
-
ec2:DescribeInstances -
ssm:DescribeAutomationExecutions -
ssm:DescribeInstanceInformation -
ssm:GetAutomationExecution -
ssm:ListCommands -
ssm:ListCommandInvocations -
ssm:SendCommand -
s3:ListBucket -
s3:GetEncryptionConfiguration -
s3:GetBucketPublicAccessBlock -
s3:GetBucketPolicyStatus -
s3:PutObject -
s3:GetBucketAcl -
s3:GetAccountPublicAccessBlock
(オプション) インスタンスプロファイルにアタッチされた IAM ロール、またはインスタンスに設定された IAM ユーザーには、パラメータ に指定された Amazon S3 バケットにログをアップロードするための以下のアクションが必要ですLogUploadBucketName。
-
s3:PutObject -
s3:GetObject -
s3:ListBucket
指示
次の手順に従って自動化を設定します。
-
ドキュメントの Systems Manager
AWSSupport-TroubleshootWindowsPerformanceで に移動します。 -
[Execute automation] (オートメーションを実行) を選択します。
-
入力パラメータには、次のように入力します。
-
AutomationAssumeRole(オプション):
Systems Manager Automation がユーザーに代わってアクションを実行できるようにする AWS AWS Identity and Access Management (IAM) ロールの Amazon リソースネーム (ARN)。ロールが指定されていない場合、Systems Manager Automation は、このランブックを開始するユーザーのアクセス許可を使用します。
-
InstanceId (必須):
オートメーションを実行するターゲット Amazon EC2 Windows インスタンスの ID。オートメーションを実行するには、インスタンスを Systems Manager によって管理する必要があります。
-
CaptureProcessDump (オプション):
キャプチャするプロセスダンプタイプ。自動化は、自動化の開始時にパフォーマンスに影響を与える可能性のあるプロセスの 1 つのプロセスダンプをキャプチャできます。インスタンスのルートボリュームには、少なくとも 10 GB の空き領域が必要です (ルートボリュームサイズが 100 GB を超える場合はディスクサイズの 10% を超え、プロセスが 10 GB を超えるメモリを消費する場合にプロセスで消費される合計メモリサイズを加えた値)。
-
LogCaptureDuration (オプション):
この自動化が問題の発生中にログをキャプチャ
15する1から までの分数。デフォルトは5です。 -
LogUploadBucketName (オプション):
ログをアップロードするアカウントの Amazon S3 バケット。バケットはサーバー側の暗号化 (SSE) で設定する必要があり、バケットポリシーは、キャプチャされたログへのアクセスを必要としない当事者に不要な読み取り/書き込みアクセス許可を付与してはいけません。Amazon EC2 Windows インスタンスはAmazon S3バケットにアクセスできる必要があります。
-
InstallEC2RescueTool (オプション):
Yesランブックが最新バージョンのEC2Rescueツールをインストールして Windows イベントとシステムログをキャプチャできるようにするには、 に設定します。デフォルトはNoです。 -
確認 (必須):
このオートメーションランブックによって実行されるアクションの完全な詳細を読み、同意する場合は「」と入力します
Yes, I understand and acknowledge。
-
-
[実行] を選択します。
-
自動化が開始されます。
-
ドキュメントは以下のステップを実行します。
-
CheckConcurrency:インスタンスをターゲットとするこのランブックの実行が 1 つだけであることを確認します。ランブックが同じインスタンスをターゲットとする別の実行を検出した場合、エラーが返されて終了します。
-
AssertInstanceIsWindows:Amazon EC2 インスタンスが Windows オペレーティングシステムで実行されていることをアサートします。それ以外の場合、自動化は終了します。
-
AssertInstanceIsManagedInstance:Amazon EC2 インスタンスが管理対象であることをアサートします AWS Systems Manager。それ以外の場合、オートメーションは終了します。
-
VerifyPrerequisites:インスタンス OS で PowerShell バージョンを検証し、インスタンスを Systems Manager 経由で接続して PowerShell コマンドを実行できることを確認します。このオートメーションは、Windows 8.1 / Server 2012 R2 (6.3) 以降で実行されている PowerShell 4.0 以降をサポートしています。バージョンが古い場合、自動化は失敗します。Amazon S3 バケットにログをアップロードすることを選択すると、このオートメーションは AWS Tools for PowerShell モジュールが利用可能であることを確認します。そうでない場合、オートメーションは終了します。
-
BranchOnProcessDump:パフォーマンスに影響を与えたプロセスのダンプをキャプチャするように設定した場合に基づいて分岐します。
-
CaptureProcessDump:インスタンスに、この自動化を実行するのに十分なスペースがあるかどうかを確認します (CPU/メモリの最大値を選択した場合)。
-
CapturePerformanceLogs:ディスク容量を再度チェックし、インスタンスで PowerShell スクリプトを実行して perfmon カウンターを作成し、Performance Monitor と Windows Performance Recorder のログ記録を開始します。スクリプト
LogCaptureDurationは、定義された が満たされると停止します。 -
SummarizePerformanceLogs:前のステップ で生成された XML レポートを要約し
CapturePerformanceLogs、オートメーションの出力として表示される WorkingSet64 (メモリ) と % プロセッサ時間 (CPU) を最も多く消費する責任あるプロセスを見つけます。LogicalDisk、Network Interface、Memory、TCPv4, IPv4UDPv4 の使用に関する同様の情報を生成し、出力フォルダanalysis_output.logに保存します。 -
BranchOnInstallEC2Rescue:Amazon EC2 インスタンスに最新の
EC2Rescueツールをインストールするように設定すると分岐します。 -
InstallEC2RescueTool:インスタンス OS に
EC2Rescueツールをインストールして、 を使用してEC2RescueログをキャプチャしますAWS-ConfigureAWSPackage。 -
RunEC2RescueTool:インスタンス OS で
EC2Rescueツールを実行して、必要なすべてのログをキャプチャします。 は、スペースを節約するために必要なログのみをEC2Rescueキャプチャします。 -
BranchOnIfS3BucketProvided:のユーザー入力に基づいて分岐
LogUploadBucketNameし、ログをアップロードできるバケット名があるかどうかを確認します。 -
GetS3BucketPublicStatus:Amazon S3 バケットが提供されているかどうかを判断し、提供されている場合は、Amazon S3 バケットがパブリックではなく、SSE で設定されていることを確認します。
-
UploadLogResult:提供された Amazon S3 バケットにログをアップロードします。PowerShell バージョンが 5.0 以上の場合、ログは ZIP アーカイブに圧縮され、アップロードされます。アップロードが完了すると、ZIP ファイルを削除します。PowerShell バージョンが 5.0 未満の場合、ファイルはフォルダに直接アップロードされます。
-
CleanUpLogsOnFailure:CapturePerformanceLogsステップが失敗したときに生成されたすべてのログをクリーンアップします。SSM エージェントが正しく動作しない場合、または Windows システムが応答しない場合、CleanUpLogsOnFailureステップが失敗またはタイムアウトすることがあります。
-
-
完了したら、出力セクションで実行の詳細な結果を確認します。
ターゲットインスタンスに必要なすべての前提条件がある実行。
ターゲットインスタンスが Linux プラットフォームにあり、実行が失敗した実行。ステップ ID を選択すると、失敗の詳細が表示されます。
ステップ の失敗の詳細
AssertInstanceIsWindows。
リファレンス
Systems Manager Automation