

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

# Amazon ECS 藍/綠部署
<a name="deployment-type-blue-green"></a>

藍/綠部署是一種發行方法，可透過執行兩個稱為藍和綠的相同生產環境來減少停機時間和風險。藉助 Amazon ECS 藍/綠部署，您可以先驗證新的服務修訂版，再將生產流量導向這些修訂版。這種方法提供了一種更安全的變更部署方式，並且能在需要時快速復原。

## 優勢
<a name="blue-green-deployment-benefits"></a>

使用藍/綠部署具有以下優勢：
+ 在切換生產之前，透過使用生產流量進行測試來降低風險。您可以在將生產流量導向新部署之前，使用測試流量對部署進行驗證。
+ 零停機時間部署。在整個部署程序中，生產環境仍然可用，以確保持續的服務可用性。
+ 如果偵測到問題，可輕鬆復原。如果綠色部署發生問題，您可以快速還原至藍色部署，而不會造成長時間的服務中斷。
+ 受控的測試環境。綠色環境提供隔離的空間，可在完全部署之前使用實際流量模式測試新功能。
+ 可預測的部署程序。具有定義的生命週期階段的結構化方法，可讓部署更加一致且可靠。
+ 透過 lifecycle hook 實現自動化驗證。您可以在部署的各個階段實作自動化測試，以驗證功能。

## 術語
<a name="blue-green-deployment-terms"></a>

下列是 Amazon ECS 藍/綠部署術語：
+ 封裝時間 – 在生產流量轉移後，藍色與綠色服務修訂版同時執行的持續時間。
+ 藍色部署 – 要取代的目前生產服務修訂版。
+ 綠色部署 – 要部署的新服務修訂版。
+ 生命週期階段 – 部署操作中的一系列事件，例如「生產流量轉移後」。
+ Lifecycle hook – 在特定生命週期階段驗證部署的 Lambda 函式。
+ 接聽程式 – 一種 Elastic Load Balancing 資源，用於透過已設定的通訊協定與連接埠檢查連線請求。您為接聽程式定義的規則決定了 Amazon ECS 如何將請求路由至已註冊的目標。
+ 規則 – 與接聽程式相關聯的 Elastic Load Balancing 資源。規則定義了請求的路由方式，包含動作、條件與優先順序。
+ 目標群組 – 一種 Elastic Load Balancing 資源，用於將請求路由至一個或多個已註冊的目標 (例如 EC2 執行個體)。當您建立接聽程式時，可以為其預設動作指定一個目標群組。流量會轉送至接聽程式規則中指定的目標群組。
+ 流量轉移 – Amazon ECS 用於將流量從藍色部署轉移到綠色部署的程序。對於 Amazon ECS 藍/綠部署，所有流量都會一次從藍色服務轉移到綠色服務。

## 考量事項
<a name="blue-green-deployment-considerations"></a>

選擇部署類型時，請考量下列事項：
+ 資源用量 – 藍/綠部署會暫時同時執行藍色與綠色服務修訂版，這可能會在部署期間使資源用量加倍。
+ 部署監控 – 藍/綠部署會提供更詳細的部署狀態資訊，便於您監控部署程序的每個階段。
+ 復原 – 藍/綠部署會在偵測到問題時更輕鬆地復原至先前的版本，因為藍色修訂版會持續執行，直到封裝時間過期為止。
+ Network Load Balancer 生命週期掛鉤：如果您使用 Network Load Balancer 進行藍/綠部署，則 TEST\$1TRAFFIC\$1SHIFT 和 PRODUCTION\$1TRAFFIC\$1SHIFT 生命週期階段會有額外的 10 分鐘。這是因為 Amazon ECS 可確保轉移流量是安全的。