Windows VSS ベースの EBS スナップショットのトラブルシューティング - Amazon Elastic Compute Cloud

Windows VSS ベースの EBS スナップショットのトラブルシューティング

他のトラブルシューティングのステップを試す前に、次の詳細を確認することをお勧めします。

  • すべての前提条件を満たしていることを確認してください。

  • 使用しているオペレーティングシステムに対応した、AwsVssComponents パッケージの最新の Windows OS バージョンのサポートを使用していることを確認してください。見つかった問題は、新しいバージョンで対処されている可能性があります。

ログファイルのチェック

VSS 対応の EBS スナップショットの作成時に問題が発生したり、エラーメッセージが表示されたりした場合は、Systems Manager コンソールでコマンドの出力を表示できます。

VSS スナップショットを作成する Systems Manager ドキュメントの場合、実行時に CollectDiagnosticLogs パラメータを「True」に設定します。CollectDiagnosticLogs パラメータが「True」に設定されると、VSS はデバッグに役立つ追加のログを収集します。詳細については、「追加の診断ログを収集する」を参照してください。

診断ログを収集する場合、Systems Manager ドキュメントはそれらをインスタンスの次の場所に保存します: C:\ProgramData\Amazon\AwsVss\Logs\timestamp.zipCollectDiagnosticLogs パラメータのデフォルト値は "False" です。

注記

デバッグに関する追加のヘルプが必要な場合は、.zip ファイルを AWS Support に送付してください。

診断ログを収集するかどうかにかかわらず、次の追加ログを使用できます。

  • %ProgramData%\Amazon\SSM\InstanceData\InstanceID\document\orchestration\SSMCommandID\awsrunPowerShellScript\runPowerShellScript\stdout

  • %ProgramData%\Amazon\SSM\InstanceData\InstanceID\document\orchestration\SSMCommandID\awsrunPowerShellScript\runPowerShellScript\stderr

イベントビューアー Windows アプリケーションを開き、[Windows Logs]、[Application] の順に選択して、追加のログを表示することもできます。EC2 Windows VSS プロバイダーおよび Volume Shadow Copy Service からのイベントを具体的に表示するには、Ec2VssSoftwareProvider および VSS の条件で [Source] (送信元) でフィルタリングします。

VPC エンドポイントで Systems Manager を使用していて、Systems Manager の SendCommand API アクション (コンソールの Run Command) が失敗した場合は、以下のエンドポイントが正しく設定されていることを確認してください: com.amazonaws.region.ec2

Amazon EC2 エンドポイントが定義されていない場合、アタッチした EBS ボリュームを列挙する呼び出しは失敗し、Systems Manager コマンドが失敗します。Systems Manager による VPC エンドポイントの設定の詳細については、AWS Systems Manager ユーザーガイドVirtual Private Cloud のエンドポイントを作成するを参照してください。

追加の診断ログを収集する

Systems Manager send コマンドを使用して VSS スナップショットドキュメントを実行するときに追加の診断ログを収集するには、実行時に入力パラメータ CollectDiagnosticLogs を「True」に設定します。トラブルシューティング時に、このパラメータは「True」に設定することを推奨します。

コマンドラインの例を確認するには、次のいずれかのタブを選択します。

AWS CLI

次の例では、AWS CLI で AWSEC2-CreateVssSnapshot Systems Manager ドキュメントを実行します。

aws ssm send-command \ --document-name "AWSEC2-CreateVssSnapshot" \ --instance-ids "i-1234567890abcdef0" \ --parameters '{"description":["Example - create diagnostic logs at runtime."],"tags":["Key=tag_name,Value=tag_value"],"CollectDiagnosticLogs":["True"]}'
PowerShell

次の例では、PowerShell で AWSEC2-CreateVssSnapshot Systems Manager ドキュメントを実行します。

Send-SSMCommand -DocumentName AWSEC2-CreateVssSnapshot -InstanceId "i-1234567890abcdef0" -Parameter @{'description'='Example - create diagnostic logs at runtime.';'tags'='Key=tag_name,Value=tag_value';'CollectDiagnosticLogs'='True'}

プロキシが設定されたインスタンスでの VSS の使用

プロキシを使用して EC2 エンドポイントにアクセスするインスタンスで VSS 対応 EBS スナップショットを作成する際に問題が発生した場合は、次の点を確認してください。

  • プロキシを設定することで、インスタンスのリージョンおよび IMDS の EC2 サービスエンドポイントに、SYSTEM として実行している AWS Tools for Windows PowerShell がアクセス可能となります。

  • AwsVssComponents バージョン 2.0.1 以降がインストールされています。AwsVssComponents バージョン 2.0.1 以降、EC2 VSS プロバイダーはシステムに設定済みの WinHTTP プロキシの使用をサポートしています。WinHTTP プロキシ設定の詳細については、Microsoft ウェブサイトの「Netsh Commands for Windows Hypertext Transfer Protocol (WINHTTP)」を参照してください。

エラー: パイプ接続の解凍がタイムアウトしました、解凍時のエラー、VSS フリーズ待機のタイムアウト、またはその他のタイムアウトエラー

EC2 Windows VSS プロバイダーは、インスタンスでのアクティビティまたはサービスにより、VSS 対応のスナップショットが適切なタイミングで進行できないためにタイムアウトすることがあります。Windows VSSフレームワークでは、ファイルシステムとの通信が一時停止される、設定不可の 10 秒のウィンドウがもたらされます。この間、AWSEC2-CreateVssSnapshot はボリュームのスナップショットを作成します。

以下の問題により、スナップショットの作成中に EC2 Windows VSS Provider が時間制限に達する可能性があります。

  • ボリュームへの過剰な I/O

  • インスタンスでの EC2 API の応答が遅い

  • 断片化されたボリューム

  • 一部のウイルス対策ソフトウェアとの非互換性

  • VSSアプリケーションライターの問題

  • 多数の PowerShell モジュールに対してモジュールログ記録が有効になっている場合、PowerShell スクリプトの実行速度が遅くなる可能性があります

AWSEC2-CreateVssSnapshot コマンドドキュメントを実行するときに発生するタイムアウトの問題のほとんどは、バックアップ時にインスタンスのワークロードが高すぎることが原因です。次のアクションは、スナップショットを正常に作成するのに役立ちます。

  • AWSEC2-CreateVssSnapshot コマンドを再試行して、スナップショットの試行が成功するかどうかを確認します。一部で再試行が成功した場合、インスタンスの負荷を減らすことで、スナップショットがより成功する可能性があります。

  • インスタンスのワークロードが減少するまでしばらく待ってから、AWSEC2-CreateVssSnapshot コマンドを再試行します。または、インスタンスが低ストレスであることがわかっている場合に、スナップショットの作成を試みることもできます。

  • システムのウイルス対策ソフトウェアがオフになっているときに、VSS スナップショットの作成を試みます。これで問題が解決する場合は、ウイルス対策ソフトウェアの指示を参照し、VSS スナップショットの作成を許可するように設定します。

  • スナップショットを実行しているリージョンと同じリージョン内のアカウントで大量の Amazon EC2 API コールがある場合、API スロットリングによりスナップショットの操作が遅れる可能性があります。スロットリングの影響を軽減するには、最新の AwsVssComponents パッケージ (バージョン 2.1.0 以降、前提条件となるアクセス許可付き) を使用してください。このパッケージは EC2 CreateSnapshots API アクションを利用して、ボリュームごとのスナップショットの作成やタグ付けなど、変異アクションの数を減らします。

  • 複数の AWSEC2-CreateVssSnapshot コマンドスクリプトを同時に実行している場合は、次のステップを実行して同時実行の問題を減らすことができます。

    • API アクティビティが少ない時間帯にスナップショットをスケジュールすることを検討してください。

    • Systems Manager コンソールで Run Command を使用 (または API で SendCommand を使用) してコマンドスクリプトを実行する場合は、Systems Manager のレート制御を使用して同時実行を減らすことができます。

      Systems Manager のレート制御を使用すると、Systems Manager を使用してコマンドスクリプトを実行する AWS Backup のようなサービスの同時実行を減らすこともできます。

  • シェルで vssadmin list writers コマンドを実行し、システム上のいずれかのライターの [Last error] フィールドにエラーが報告されるかどうかを確認します。いずれかのライターがタイムアウトエラーを報告する場合は、インスタンスの負荷が少ないときにスナップショットの作成の再試行を検討してください。

  • t2 | t3 | t3a.nano や t2 | t3 | t3a.micro のような小さいインスタンスタイプを使用すると、メモリと CPU の制約によりタイムアウトが発生する可能性があります。タイムアウトの問題を減らすには、以下の対処が有効な場合があります。

    • スナップショットを撮る前に、メモリや CPU を大量に消費するアプリケーションを閉じる。

    • インスタンスのアクティビティが少ない時間帯にスナップショットを撮る。

エラー: メソッドを呼び出せません。メソッド呼び出しは、この言語モードのコアタイプでのみサポートされます。

このエラーは、PowerShell 言語モードが FullLanguage に設定されていない場合に発生します。AWSEC2-CreateVssSnapshot および AWSEC2-ManageVssIo SSM ドキュメントでは、PowerShell を FullLanguage モードに設定する必要があります。

言語モードを確認するには、PowerShell コンソールでインスタンスに次のコマンドを実行します。

$ExecutionContext.SessionState.LanguageMode

言語モードの詳細については、Microsoft ドキュメントの「Shell」を参照してください。