

本文為英文版的機器翻譯版本，如內容有任何歧義或不一致之處，概以英文版為準。

# 故障診斷和診斷
<a name="dotnet-migrating-applications-troubleshooting"></a>

**試用 Amazon Q Developer CLI 進行 AI 輔助故障診斷**  
 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>

您可以使用 Amazon EC2 金鑰對安全地登入為 Elastic Beanstalk 應用程式佈建的 Amazon EC2) 執行個體。如需建立金鑰對的指示，請參閱《[Amazon EC2 使用者指南》中的使用 Amazon EC2 建立金鑰對](https://docs.aws.amazon.com/AWSEC2/latest/UserGuide/ec2-key-pairs.html#having-ec2-create-your-key-pair)。 *Amazon EC2 *

將金鑰名稱指定為 **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 提供的**eb logs**設施可讓您從 Elastic Beanstalk 環境擷取日誌，而無需登入其 EC2 執行個體。執行 之後**eb migrate**，您可以發出 **eb logs --zip**命令，將日誌下載並儲存至 `.elasticbeanstalk\logs`目錄。

或者，您可以透過 AWS Elastic Beanstalk 主控台檢視日誌。如需詳細資訊，請參閱[在 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 需求
+ 網路效能需求
+ 成本最佳化目標

## 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 環境中的暫時性和 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 部署安裝*

如果找不到與 Web Deploy 相關的錯誤，請從 [Microsoft Web Platform Installer 安裝 Web](https://www.iis.net/downloads/microsoft/web-deploy) 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.
```

**事件：***應用程式集區身分問題*

如果您的應用程式因為應用程式集區身分問題而無法啟動，請建立自訂指令碼來設定應用程式集區身分，如 所示[自訂應用程式集區設定](dotnet-migrating-applications-advanced-scenarios.md#dotnet-migrating-applications-advanced-scenarios-apppool)。

**事件：***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)。