

翻訳は機械翻訳により提供されています。提供された翻訳内容と英語版の間で齟齬、不一致または矛盾がある場合、英語版が優先します。

# トラブルシューティングと診断
<a name="dotnet-migrating-applications-troubleshooting"></a>

**AI アシストによるトラブルシューティングのために Amazon Q Developer CLI を試す**  
 Amazon Q Developer CLI は、環境の問題を迅速にトラブルシューティングするのに役立ちます。Q CLI は、環境ステータスのチェック、イベントの確認、ログの分析、および明確化のための質問を行うことでソリューションを提供します。詳細と詳細なチュートリアルについては、 AWS ブログの[「Amazon Q Developer CLI を使用した Elastic Beanstalk 環境のトラブルシューティング](https://aws.amazon.com/blogs/devops/troubleshooting-elastic-beanstalk-environments-with-amazon-q-developer-cli/)」を参照してください。

このセクションでは、IIS アプリケーションの Elastic Beanstalk への移行中に発生する可能性がある一般的な問題のトラブルシューティングに関するガイダンスを提供します。

## EC2 キーペアを環境に関連付ける
<a name="dotnet-migrating-applications-troubleshooting-keypair"></a>

Elastic Beanstalk アプリケーション用にプロビジョンされた Amazon Elastic Compute Cloud (Amazon EC2) インスタンスには、Amazon EC2 キーペアを使用して安全にログインできます。キーペアを作成する手順については、「*Amazon EC2 ユーザーガイド*」の「[Amazon EC2 を使用したキーペアの作成](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#having-ec2-create-your-key-pair)」を参照してください。

キー名を **eb migrate** に指定すると、Elastic Beanstalk 環境をキーペアに関連付ける効果があります。セキュリティ上の理由により、EC2 インスタンスのセキュリティグループでポート 3389 は開かれません。最初の移行後に、**eb config** を介してポート 3389 のトラフィックを許可する追加の EC2 セキュリティグループを関連付けることができます。

```
PS C:\migrations_workspace> eb migrate  `
    --keyname "my-keypair"  `
    --verbose
```

キーペアを作成すると、Amazon EC2 はパブリックキーのコピーを保存します。環境インスタンスに接続するためにこれを使用する必要がなくなった場合は、Amazon EC2 から削除できます。詳細については、「*Amazon EC2 ユーザーガイド*」の「[キーペアの削除](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#delete-key-pair)」を参照してください。

Windows Amazon EC2 インスタンスに接続する方法については、「[Windows インスタンスに接続する](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/connecting_to_windows_instance.html)」を参照してください。

## ログへのアクセス
<a name="dotnet-migrating-applications-troubleshooting-logs"></a>

EB CLI には、EC2 インスタンスにログインせずに Elastic Beanstalk 環境からログを取得するために使用できる **eb logs** 機能が用意されています。**eb migrate** の実行後、 **eb logs --zip** コマンドを発行して、ログをダウンロードして `.elasticbeanstalk\logs` ディレクトリに保存できます。

または、Elastic Beanstalk AWS コンソールからログを表示することもできます。詳細については、「[Elastic Beanstalk 環境の Amazon EC2 インスタンスからのログの表示](using-features.logging.md)」を参照してください。

## クライアント側のアーティファクトにアクセスする
<a name="dotnet-migrating-applications-troubleshooting-artifacts"></a>

**eb migrate** コマンドは、**msdeploy** によって生成されたアプリケーションログとエラーログを移行アーティファクトディレクトリ内に保存します。

```
./migrations/
├── latest -> migration_20240308_123456/
└── migration_20240308_123456/
    ├── application.log
    ├── error.log
    └── upload_target\
```

## 環境の正常性をモニタリングする
<a name="dotnet-migrating-applications-troubleshooting-health"></a>

Elastic Beanstalk は、拡張正常性モニタリング機能を使用して正常性をモニタリングするのに役立ちます。これは、CPU 使用率、レイテンシー、リクエスト数、レスポンスコードなどの組み込みメトリクスを活用して、アプリケーションインスタンスの運用ステータスを継続的に追跡する自動正常性モニタリングシステムです。

正常性モニタリングシステムは、エージェントベースのアプローチを利用してインスタンスレベルのデータを収集し、リアルタイムのログ記録とアラートと統合します。Elastic Load Balancing (ELB) と Auto Scaling は、正常性ステータスの変化に動的に対応し、高可用性と耐障害性を確保します。強化されたヘルスレポートなどの高度なモニタリングモードは、アプリケーションの動作をきめ細かく可視化し、プロアクティブなトラブルシューティングと自動復旧メカニズムを可能にします。

EB CLI **eb health** コマンドを実行して、環境の正常性を表示します。以下の情報が表示されます。
+ インスタンスのヘルスステータス
+ アプリケーションレスポンスメトリクス
+ システムのリソース使用率
+ 最近のデプロイイベント

## EC2 パフォーマンスの最適化
<a name="dotnet-migrating-applications-troubleshooting-performance"></a>

デフォルトでは、**eb migrate** は [c5.2xlarge](https://aws.amazon.com/ec2/instance-types/c5/) インスタンスタイプを選択して、Elastic Beanstalk を初めて使用するときに最適なエクスペリエンスを提供します。この動作は **--instance-type** 引数で上書きできます。

```
PS C:\migrations_workspace> eb migrate `
    --instance-type "t3.large"
```

本番環境では、インスタンスタイプを選択するときに次の要素を考慮してください。
+ アプリケーションのメモリ要件
+ ワークロードを処理するための CPU 要件
+ ネットワークパフォーマンスのニーズ
+ Cost Optimization の目標

## EBS ボリュームの設定
<a name="dotnet-migrating-applications-troubleshooting-ebs"></a>

デフォルトでは、Elastic Beanstalk は環境のルートブロックデバイスボリューム (`C:\`) のみを作成します。**--ebs-snapshots** オプションを使用して、追加の Amazon Elastic Block Store スナップショットボリュームを渡すことができます。

```
PS C:\migrations_workspace> eb migrate `
    --ebs-snapshots "snap-123456789abc"
```

Elastic Beanstalk でブロックデバイスマッピングを設定する方法の例については、ブログ記事「[Elastic Beanstalk 環境で Ephemeral および EBS ボリュームをカスタマイズする](https://aws.amazon.com/blogs/devops/customize-ephemeral-and-ebs-volumes-in-elastic-beanstalk-environments/)」を参照してください。

高いストレージ要件のアプリケーションの場合は、次のオプションを検討してください。
+ 永続データ用に EBS ボリュームを使用する
+ 静的コンテンツ用に Amazon S3 を実装する
+ 共有ファイルシステムで Amazon FSx for Windows File Server を使用する

## 一般的な の問題と解決策
<a name="dotnet-migrating-applications-troubleshooting-common"></a>

**イベント:** *Web Deploy のインストールがない*

Web Deploy が見つからないことに関連するエラーが発生した場合は、[Microsoft Web Platform Installer](https://www.iis.net/downloads/microsoft/web-deploy) から Web Deploy 3.6 以降をインストールします。次の例では、考えられるエラーメッセージを表示します。

```
Couldn't find msdeploy.exe. Follow instructions here: https://learn.microsoft.com/en-us/iis/install/installing-publishing-technologies/installing-and-configuring-web-deploy
```

**イベント:** *移行中のアクセス許可の問題*

アクセス許可関連のエラーが発生した場合は、EB CLI を管理権限で実行していることを確認してください。次の例では、考えられるエラーメッセージを表示します。

```
[ERROR] Access to the path 'C:\inetpub\wwwroot\web.config' is denied.
```

**イベント:** *アプリケーションプール ID の問題*

アプリケーションプール ID の問題が原因でアプリケーションが起動しない場合は、「[カスタムアプリケーションプール設定](dotnet-migrating-applications-advanced-scenarios.md#dotnet-migrating-applications-advanced-scenarios-apppool)」に示すように、アプリケーションプール ID を設定するカスタムスクリプトを作成します。

**イベント:** *SSL 証明書設定エラー*

HTTPS バインディングが機能しない場合は、**eb mibrate** オプション `--ssl-certificates` パラメータを使用して有効な ACM 証明書 ARN を指定していることを確認してください。

**イベント:** *環境作成タイムアウト*

環境の作成がタイムアウトした場合は、 AWS マネジメントコンソールの CloudFormation イベントで特定のリソース作成の失敗を確認します。一般的な原因には、VPC 設定の問題やサービスの制限などがあります。

## サポート情報
<a name="dotnet-migrating-applications-troubleshooting-support"></a>

解決できない問題が発生した場合は、 に連絡する前に以下の情報を収集 AWS サポート してください。
+ 環境 ID (`eb status`)
+ アプリケーションログ (`eb logs --zip`)
+ からの移行アーティファクト (`.\migrations\latest\`)
+ ソース IIS 設定 (`eb migrate explore --verbose` の出力)
+ 詳細なエラーメッセージ

Elastic Beanstalk のトラブルシューティングの詳細については、「[Elastic Beanstalk 環境のトラブルシューティング](troubleshooting.md)」を参照してください。