

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

# 監控部署以進行自動復原
<a name="monitoring-deployments"></a>

在部署期間，您可以使用 AWS AppConfig [部署策略](https://docs.aws.amazon.com/appconfig/latest/userguide/appconfig-creating-deployment-strategy.html)和基於 Amazon CloudWatch 警示的自動轉返的組合，來緩解組態資料格式不正確或不正確導致應用程式中發生錯誤的情況。設定完成後，如果一或多個 CloudWatch 警示在部署期間進入 `ALARM`或 `INSUFFICIENT_DATA`狀態， AWS AppConfig 會自動將組態資料復原至先前的版本，進而防止應用程式中斷或錯誤。

**注意**  
如果在關聯的 CloudWatch 警示中已停用動作，則部署不會自動復原。  
您可以透過使用 [DisableAlarmActions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_DisableAlarmActions.html) 和 [EnableAlarmActions](https://docs.aws.amazon.com/AmazonCloudWatch/latest/APIReference/API_EnableAlarmActions.html) API 動作，或是 AWS CLI中的 [disable-alarm-actions](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/disable-alarm-actions.html) 和 [enable-alarm-actions](https://docs.aws.amazon.com/cli/latest/reference/cloudwatch/enable-alarm-actions.html) 命令，停用和啟用警示。

您也可以在部署仍在進行時呼叫 [StopDeployment](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_StopDeployment.html) API 操作來復原組態。

**重要**  
對於成功完成的部署， AWS AppConfig 也支援使用 `AllowRevert` 參數搭配 [StopDeployment](https://docs.aws.amazon.com/appconfig/2019-10-09/APIReference/API_StopDeployment.html) API 操作，將組態資料還原至先前的版本。對於某些客戶而言，在成功部署後還原到先前的組態可確保資料與部署之前相同。還原也會忽略警示監視器，這可能會防止在應用程式緊急情況下向前滾動。如需詳細資訊，請參閱[還原組態](appconfig-deploying-reverting.md)。

若要設定自動轉返，請在建立 （或編輯） AWS AppConfig 環境時，在 CloudWatch **警示欄位中指定一或多個 CloudWatch ** 指標的 Amazon Resource Name (ARN)。如需詳細資訊，請參閱[在 中為您的應用程式建立環境 AWS AppConfig](appconfig-creating-environment.md)。

**注意**  
如果您使用第三方監控解決方案 （例如 Datadog)，您可以建立在`AT_DEPLOYMENT_TICK`動作點檢查警示的 AWS AppConfig 延伸，並在觸發警示時復原部署，做為安全防護機制。如需 AWS AppConfig 延伸模組的詳細資訊，請參閱 [使用延伸模組擴展 AWS AppConfig 工作流程](working-with-appconfig-extensions.md)。如需自訂擴充功能的詳細資訊，請參閱 [逐步解說：建立自訂 AWS AppConfig 擴充功能](working-with-appconfig-extensions-creating-custom.md)。若要檢視使用 `AT_DEPLOYMENT_TICK`動作點與 Datadog 整合的 AWS AppConfig 延伸模組程式碼範例，請參閱 GitHub 上的 [aws-samples / aws-appconfig-tick-extn-for-datadog](https://github.com/aws-samples/aws-appconfig-tick-extn-for-datadog)。

## 監控自動復原的建議指標
<a name="monitoring-deployments-metrics"></a>

您選擇監控的指標將取決於應用程式使用的硬體和軟體。 AWS AppConfig 客戶通常會監控下列指標。如需依 分組的建議指標完整清單 AWS 服務，請參閱《*Amazon CloudWatch 使用者指南*》中的[建議警示](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html)。

在您決定要監控的指標之後，請使用 CloudWatch 來設定警示。如需詳細資訊，請參閱[使用 Amazon CloudWatch 警示](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/AlarmThatSendsEmail.html)。


****  

| 服務 | 指標 | 詳細資訊 | 
| --- | --- | --- | 
|  [Amazon API Gateway](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ApiGateway)  |  4XXError  |  此警示會偵測高速率的用戶端錯誤。這可能表示授權或用戶端請求參數中存在問題。這也可能意味著資源已移除，或用戶端正在請求不存在的資源。請考慮啟用 Amazon CloudWatch Logs 並檢查可能導致 4XX 錯誤的任何錯誤。此外，請考慮啟用詳細的 CloudWatch 指標，以檢視每個資源和方法的此指標，並縮小錯誤來源範圍。錯誤也可能是由於超過設定的限流限制所引起。  | 
|  [Amazon API Gateway](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ApiGateway)  |  5XXError  |  此警示有助於偵測高速率的伺服器端錯誤。這可能表示 API 後端、網路或 API 閘道與後端 API 之間的整合存在問題。  | 
|  [Amazon API Gateway](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ApiGateway)  |  延遲  |  此警示會偵測階段中的高延遲。尋找 `IntegrationLatency` 指標值以檢查 API 後端延遲。如果兩個指標大多情況下是一致的，則 API 後端是較高延遲的來源，您應在此調查是否存在問題。另請考慮啟用 CloudWatch Logs，並檢查是否存在可能導致高延遲的錯誤。  | 
|  [Amazon EC2 Auto Scaling](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#AutoScaling)  |  GroupInServiceCapacity  |  此警示有助於偵測 群組中的容量何時低於工作負載所需的容量。若要進行故障診斷，請檢查擴展活動是否存在啟動失敗，並確認所需的容量組態正確無誤。  | 
|  [Amazon EC2](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EC2)  |  CPUUtilization  |  此警示有助於監控 EC2 執行個體的 CPU 使用率。視乎應用程式而定，持續的高使用率層級可能是正常的。但是，如果效能降級，且應用程式不受磁碟 I/O、記憶體或網路資源的限制，則 CPU 上限可能表示資源瓶頸或應用程式效能問題。  | 
|  [Amazon ECS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ECS)  |  CPUReservation  |  此警示可協助您偵測 ECS 叢集的高 CPU 保留。高 CPU 保留可能表示叢集已用盡為任務註冊的 CPU。  | 
|  [Amazon ECS](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#ECS)  |  HTTPCode\$1Target\$15XX\$1Count  |  此警示可協助您偵測 ECS 服務的高伺服器端錯誤計數。這可能表示存在導致服務無法發出請求的錯誤。  | 
|  [Amazon EKS 與容器洞察](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EKS-ContainerInsights)  |  node\$1cpu\$1utilization  |  此警示有助於偵測 Amazon EKS 叢集工作者節點中的高 CPU 使用率。如果使用率持續較高，則可能表示需要將工作節點取代為具有更大 CPU 或需要水平擴展系統的執行個體。  | 
|  [Amazon EKS 與容器洞察](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EKS-ContainerInsights)  |  node\$1memory\$1utilization  |  此警示有助於偵測 Amazon EKS 叢集工作者節點中的高記憶體使用率。如果使用率持續較高，可能表示需要擴展 Pod 複本的數目或優化您的應用程式。  | 
|  [Amazon EKS 與容器洞察](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EKS-ContainerInsights)  |  pod\$1cpu\$1utilization\$1over\$1pod\$1limit  |  此警示有助於偵測 Amazon EKS 叢集 Pod 中的高 CPU 使用率。如果使用率持續較高，可能表示需要增加受影響 Pod 的 CPU 限制。  | 
|  [Amazon EKS 搭配容器洞察](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#EKS-ContainerInsights)  |  pod\$1memory\$1utilization\$1over\$1pod\$1limit  |  此警示有助於偵測 Amazon EKS 叢集 Pod 中的高 CPU 使用率。如果使用率持續較高，可能表示需要增加受影響 Pod 的 CPU 限制。  | 
|  [AWS Lambda](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#Lambda)  |  錯誤  |  此警示會偵測高錯誤計數。錯誤包括程式碼擲回的例外狀況，以及 Lambda 執行期擲回的例外狀況。  | 
|  [AWS Lambda](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#Lambda)  |  限流  |  此警示會偵測大量限流叫用請求。若沒有可用於縱向擴展的並行，就會發生限流。  | 
|  [Lambda Insights](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#LambdaInsights)  |  memory\$1utilization  |  此警示用於偵測 Lambda 函數的記憶體使用率是否接近設定的限制。  | 
|  [Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#S3)  |  4xxErrors  |  此警示有助於我們報告為回應用戶端請求而產生的 4xx 錯誤狀態代碼總數。例如，403 錯誤代碼可能表示不正確的 IAM 政策，而 404 錯誤代碼可能表示用戶端應用程式的行為錯誤。  | 
|  [Amazon S3](https://docs.aws.amazon.com/AmazonCloudWatch/latest/monitoring/Best_Practice_Recommended_Alarms_AWS_Services.html#S3)  |  5xxErrors  |  此警示可協助您偵測大量伺服器端錯誤。這些錯誤表示用戶端發出伺服器無法完成的請求。這可協助您關聯應用程式因 S3 而將面臨的問題。  | 