

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

# Amazon ECS Express Mode 服務的最佳實務
<a name="express-service-best-practices"></a>

了解在生產環境中有效使用快速模式服務的最佳實務和建議。

## 安全最佳實務
<a name="express-service-best-practices-security"></a>

### 秘密管理
<a name="express-service-secrets-management"></a>
+ **將 Secrets Manager 用於秘密** - 將敏感資料儲存在 Secrets Manager 中 （例如，私有儲存庫或資料庫登入資料）。

  如需 Secrets Manager 最佳實務的詳細資訊，請參閱《[Secrets Manager 使用者指南》中的 Secrets Manager 最佳實務](secretsmanager/latest/userguide/best-practices.html) **
+ **啟用靜態加密** - 確保秘密在存放在 AWS 服務中時加密。

  使用 Secrets Manager 等服務可讓您使用 AWS 受管金鑰或客戶提供的金鑰進行加密。
+ **實作秘密輪**換 - 對資料庫密碼和 API 金鑰使用自動輪換。

  使用 Secrets Manager 之類的服務可以管理 Amazon Aurora 和 Amazon RDS 等服務的秘密輪換

在快速模式服務中使用秘密的範例：

```
aws ecs update-express-gateway-service \
    --primary-container \
        ‘{“environment”=[{“name”=“DB_PASSWORD”,”value”=“arn:aws:secretsmanager:us-west-2:123456789012:secret:prod/db/password”}, \
        {“name”=“API_KEY”,”value”=“arn:aws:ssm:us-west-2:123456789012:parameter/prod/api-key”}]}’ \
```

### 網路安全
<a name="express-service-network-security"></a>
+ 針對**敏感應用程式使用私有子網路** - 在私有子網路中部署不需要直接網際網路存取的應用程式。

  如需建議架構的詳細資訊，請參閱[將 Amazon ECS 應用程式連線至網際網路。](AmazonECS/latest/developerguide/networking-outbound.html)
+ **將安全群組設定為最小寬鬆 **- 將傳入和傳出流量限制為僅必要的連接埠和來源。

  若要限制快速模式服務安全群組的傳出流量，您可以修改傳出規則，或使用下列命令，直接在 Amazon EC2 安全群組主控台中進行編輯：

  ```
                      
  aws ec2 authorize-security-group-egress
      --group-id sg-xxxxxxxx \
      --protocol tcp \ 
      --port 443 \ 
      --cidr 0.0.0.0/0
  
  aws ec2 revoke-security-group-egress
      --group-id sg-xxxxxxxx \
      --protocol tcp \
      --port 443 \ 
      --cidr 0.0.0.0/0
  ```
+ **啟用 Amazon VPC 流程日誌** - 監控網路流量以進行安全性分析和疑難排解。

  您可以在 VPC 子網路主控台中您的快速模式應用程式正在使用的每個子網路中啟用此功能，或使用 ` aws ec2 create-flow-logs --resource-ids subnet-xxx`
+ ** AWS WAF 用於 Web 應用程式** - 防止常見的 Web 入侵和攻擊。

  您可以透過建立 Web ACL 並將其與快速模式服務所使用的 Application Load Balancer 建立關聯來啟用此功能。在主控台中，在 WAF & Shield Service 中建立 Web ACL，並與您的 Application Load Balancer 建立關聯。或者，使用 `aws wafv2 create-web-acl`和 `aws wafv2 associate-web-acl --resource-arn <alb>`。

## 效能和運算最佳化
<a name="express-service-performance-best-practices"></a>

### 資源大小
<a name="express-service-resource-sizing"></a>
+ **適當大小的 CPU 和記憶體** - 監控應用程式效能，並根據實際使用模式調整 CPU 和記憶體配置。

  AWS Compute Optimizer 會針對 Amazon ECS 任務和容器大小產生建議。如需詳細資訊，請參閱《 AWS Compute Optimizer使用者指南**》中的[什麼是AWS Compute Optimizer ？](https://docs.aws.amazon.com/compute-optimizer/latest/ug/what-is-compute-optimizer.html)。
+ **效能測試您的應用程式** - 若要確保您的應用程式以指定的擴展閾值和資源配置大規模運作，請執行負載測試。

### 自動擴展組態
<a name="express-service-auto-scaling"></a>
+ **設定適當的擴展閾值** - 設定在效能降低之前觸發擴展的 CPU 或記憶體閾值。

  您可以在快速模式服務主控台中修改服務指標的目標值。

  請考慮新增預測擴展政策，特別是如果您的流量遵循以時間為基礎的模式時。如需詳細資訊，請參閱[預測性 Auto Scaling](AWSEC2ContainerServiceDocs/latest/shared/predictive-auto-scaling.html)。
+ **使用多個擴展指標** - 考慮同時使用 CPU 或記憶體和以請求為基礎的擴展，以實現更具回應性的擴展。

  您可以將多個政策新增至服務。根據預設，快速模式會新增一個政策，但您可以直接將附加政策連接到您的服務。
+ **設定任務的下限和上限** - 設定合理的界限來控制成本並確保可用性。

  對於生產工作負載，一旦初始測試完成，我們建議在三個可用區域中執行，以遵循可用性最佳實務。您可以在快速模式主控台中或使用 更新**最低任務數量**`update-express-gateway-service --scaling-target '{“minTaskCount”=3}'`。

### 運作狀態檢查
<a name="express-service-health-checks"></a>
+ **實作有意義的運作狀態檢查** - 建立運作狀態檢查端點，以驗證關鍵應用程式相依性。

  您可以在快速模式主控台中更新**運作狀態檢查路徑**。或使用 `update-express-gateway-service --health-check-path "/health"`。

  如需為應用程式建立運作狀態檢查的詳細資訊，請參閱[實作運作狀態檢查](https://d1.awsstatic.com/builderslibrary/pdfs/implementing-health-checks.pdf)
+ **保持輕量型運作狀態檢查** - 避免在運作狀態檢查端點中進行昂貴的操作。

  範例可能包括外部 API 呼叫、CPU 或記憶體密集型選項，或使用 增強功能長時間執行操作以逾時。
+ **使用適當的逾時 **- 設定允許正常回應時間的運作狀態檢查逾時，同時快速偵測失敗。

  您可以在 Application Load Balancer 目標群組上設定快速模式的運作狀態檢查逾時。在 Amazon EC2 主控台中，導覽至**目標群組**區段，然後選取您的快速模式目標群組。選取**運作狀態檢查**索引標籤，然後按一下**進階運作狀態檢查設定**下的**編輯**，即可調整逾時。或者，使用 `aws elbv2 modify-target-group --target-group-arn <targetgroup> --health-check-timeout`。
+ **傳回適當的 HTTP 狀態碼** - 使用 200 表示狀態良好，使用 4xx/5xx 表示狀態不良。

## 操作最佳實務
<a name="express-service-operational-best-practices"></a>

### 監控和記錄
<a name="express-service-monitoring"></a>
+ **啟用增強型容器洞見** - 使用 CloudWatch；增強型容器洞見來全面監控您的快速模式服務應用程式。

  如需詳細資訊，請參閱[在 Amazon ECS 上設定 Container Insights](AmazonCloudWatch/latest/monitoring/deploy-container-insights-ECS-cluster.html)。
+ **設定自訂指標** - 將應用程式特定的指標發佈至 CloudWatch； 以進行業務邏輯監控。

  如需詳細資訊，請參閱 *CloudWatch 使用者指南*中的[公有自訂指標](AmazonCloudWatch/latest/monitoring/publishingMetrics.html)。
+ **設定日誌保留** - 設定適當的日誌保留期間，以平衡成本和合規要求。

  快速模式建立的 CloudWatch Log Groups 設定為永不過期，並在刪除快速模式服務時保留。您可以在 CloudWatch Log Group 中調整此設定。
+ **建立儀表板和警示** - 設定 CloudWatch； 儀表板和警示以進行主動監控。

### 部署策略
<a name="express-service-deployment"></a>
+ **實作製作時間** - Express Mode 實作 Canary 製作時間，以確保部署有時間穩定，同時減少有問題部署的爆量半徑。如果您的應用程式需要更多時間來穩定，可以在快速模式服務的 Amazon ECS 服務定義中設定。如需詳細資訊[，請參閱建立 Amazon ECS Canary 部署](AmazonECS/latest/developerguide/deploy-canary-service.html)。
+ **實作轉返程序** - 計劃在發生問題時快速還原至先前的版本。

  有意義的運作狀態檢查和警示型復原都有助於復原。快速模式的 Canary 部署策略結合 4xx 和 5xx 流量上的警示型轉返，可在應用程式程式碼或組態故障時設定您的部署以進行快速轉返。