EC2Rescue と Systems Manager を使用して問題のある Windows インスタンスのトラブルシューティングを行う - Amazon Elastic Compute Cloud

EC2Rescue と Systems Manager を使用して問題のある Windows インスタンスのトラブルシューティングを行う

AWS Support では、Systems Manager Run Command のドキュメントを用意しています。これにより、ご使用の Systems Manager 対応インスタンスとのインターフェイスを使用して、EC2Rescue for Windows Server を実行できます。この Run Command のドキュメントは、AWSSupport-RunEC2RescueForWindowsTool と呼ばれます。

この Systems Manager Run Command のドキュメントでは、次のタスクを実行します。

  • EC2Rescue for Windows Server のダウンロードと検証。

  • PowerShell モジュールをインポートしてツールとの対話を簡素化。

  • 提供されたコマンドとパラメーターで EC2RescueCmd を実行。

Systems Manager Run Command のドキュメントでは、次の 3 つのパラメーターを指定できます。

  • [コマンド] — EC2Rescue for Windows Server アクション。現在許可された値は次のとおりです。

    • [ResetAccess] — ローカル管理者のパスワードをリセットします。現在のインスタンスのローカル管理者パスワードはリセットされ、ランダムに生成されたパスワードが /EC2Rescue/Password/<INSTANCE_ID> としてパラメータストアに安全に保存されます。このアクションを選択したがパラメータを指定しない場合、パスワードはデフォルトの KMS キー で自動的に暗号化されます。必要に応じて、パラメータに KMS キー ID を指定して、独自のキーでパスワードを暗号化できます。

    • [CollectLogs] — /collect:all アクションを指定して、EC2Rescue for Windows Server を実行します。このアクションを選択する場合は、Parameters に必ずログのアップロード先となる Amazon S3 バケット名を含むようにしてください。

    • [FixAll] — /rescue:all アクションを指定して、EC2Rescue for Windows Server を実行します。このアクションを選択する場合は、Parameters に、レスキューするブロックデバイス名が含まれている必要があります。

  • [パラメーター] — 指定したコマンドに渡す PowerShell パラメーターを指定します。

注記

[ResetAccess] アクションを使用するには、Amazon EC2 インスタンスに次のポリシーをアタッチし、暗号化パスワードをパラメータストアに書き込む必要があります。このポリシーを該当する IAM ロールにアタッチしてから、インスタンスのパスワードがリセットされるまで数分かかります。

デフォルト KMS キー の使用:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": [ "arn:aws:ssm:region:account_id:parameter/EC2Rescue/Passwords/<instanceid>" ] } ] }

カスタム KMS キー の使用:

{ "Version": "2012-10-17", "Statement": [ { "Effect": "Allow", "Action": [ "ssm:PutParameter" ], "Resource": [ "arn:aws:ssm:region:account_id:parameter/EC2Rescue/Passwords/<instanceid>" ] }, { "Effect": "Allow", "Action": [ "kms:Encrypt" ], "Resource": [ "arn:aws:kms:region:account_id:key/<kmskeyid>" ] } ] }

次の手順では、Amazon EC2 コンソールで、このドキュメントの JSON を表示する方法について説明します。

Systems Manager Run Command のドキュメントの JSON を表示するには
  1. AWS Systems Manager コンソール (https://console.aws.amazon.com/systems-manager/) を開きます。

  2. ナビゲーションペインで、[ Shared Services] を展開し、[Documents] を選択します。

  3. 検索バーで [Owner] を [Owned by Me or Amazon] に、[Document name prefix] を [AWSSupport-RunEC2RescueForWindowsTool] に設定します。

  4. AWSSupport-RunEC2RescueForWindowsTool ドキュメントを選択し、[Contents] を選択して、JSON を表示します。

以下に、Systems Manager Run Command のドキュメントを使用して、AWS CLI で EC2Rescue for Windows Server を実行する方法をいくつかの例を挙げて説明します。AWS CLI でコマンドを送信する方法の詳細については、AWS CLI コマンドリファレンスを参照してください。

オフラインルートボリュームで特定されたすべての問題の修正を試みる

Amazon EC2 Windows インスタンスにアタッチされたオフラインルートボリュームに関するすべての特定された問題の修正を試みます。

aws ssm send-command --instance-ids "i-0cb2b964d3e14fd9f" --document-name "AWSSupport-RunEC2RescueForWindowsTool" --comment "EC2Rescue offline volume xvdf" --parameters "Command=FixAll, Parameters='xvdf'" --output text

現在の Amazon EC2 Windows インスタンスからログを収集する

現在のオンライン Amazon EC2 Windows インスタンスからすべてのログを収集し、Amazon S3 バケットにアップロードします。

aws ssm send-command --instance-ids "i-0cb2b964d3e14fd9f" --document-name "AWSSupport-RunEC2RescueForWindowsTool" --comment "EC2Rescue online log collection to S3" --parameters "Command=CollectLogs, Parameters='amzn-s3-demo-bucket'" --output text

オフライン Amazon EC2 Windows インスタンスボリュームからログを収集する

Amazon EC2 Windows インスタンスにアタッチされたオフラインボリュームからすべてのログを収集し、署名付き URL を使用して Amazon S3 にアップロードします。

aws ssm send-command --instance-ids "i-0cb2b964d3e14fd9f" --document-name "AWSSupport-RunEC2RescueForWindowsTool" --comment "EC2Rescue offline log collection to S3" --parameters "Command=CollectLogs, Parameters=\"-Offline -BlockDeviceName xvdf -S3PreSignedUrl 'YOURS3PRESIGNEDURL'\"" --output text

ローカル管理者のパスワードをリセットする

次の例では、ローカル管理者パスワードをリセットするために使用するメソッドを示しています。パラメータストアへのリンクが表示され、ランダムに生成された安全なパスワードが発行されます。この RDP はローカル管理者として Amazon EC2 Windows インスタンスで使用します。

デフォルトの AWS KMS key/エイリアス/aws/ssm を使用してオンラインインスタンスのローカル管理者パスワードをリセットする場合:

aws ssm send-command --instance-ids "i-0cb2b964d3e14fd9f" --document-name "AWSSupport-RunEC2RescueForWindowsTool" --comment "EC2Rescue online password reset" --parameters "Command=ResetAccess" --output text

KMS キー を使用してオンラインインスタンスのローカル管理者パスワードをリセットする場合:

aws ssm send-command --instance-ids "i-0cb2b964d3e14fd9f" --document-name "AWSSupport-RunEC2RescueForWindowsTool" --comment "EC2Rescue online password reset" --parameters "Command=ResetAccess, Parameters=a133dc3c-a2g4-4fc6-a873-6c0720104bf0" --output text
注記

この例では、KMS キー は a133dc3c-a2g4-4fc6-a873-6c0720104bf0 です。