從 CodeDeploy 藍/綠部署遷移至 Amazon ECS 藍/綠服務部署 - Amazon Elastic Container Service

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

從 CodeDeploy 藍/綠部署遷移至 Amazon ECS 藍/綠服務部署

透過使用 Amazon ECS 藍/綠部署,您可以進行服務變更並加以測試,然後在生產環境中實作這些變更。

必須為 Amazon ECS 藍/綠部署建立新的 lifecycle hook。

先決條件

開始藍/綠部署之前,請執行下列動作。

  1. 將 Amazon ECS CodeDeploy IAM 角色取代為下列許可。

  2. 關閉 CodeDeploy 自動化。如需詳細資訊,請參閱 CodeDeploy User Guide 中的 Working with deployment groups in CodeDeploy

  3. 確定擁有 CodeDeploy 藍/綠部署中的下列資訊。您可以重複使用這些資訊進行 Amazon ECS 藍/綠部署:

    • 生產目標群組

    • 生產接聽程式

    • 生產規則

    • 測試目標群組

      這是綠色服務修訂版的目標群組,

  4. 確保 Application Load Balancer 目標群組與接聽程式規則正確建立關聯:

    • 如果您未使用測試接聽程式,則兩個目標群組 (生產與測試) 都必須與生產接聽程式規則建立關聯。

    • 如果您使用的是測試接聽程式,一個目標群組必須連結至生產接聽程式規則,另一個目標群組則必須連結至測試接聽程式規則。

    如果不符合此需求,服務部署將會失敗,並出現下列錯誤:Service deployment rolled back because of invalid networking configuration. Both targetGroup and alternateTargetGroup must be associated with the productionListenerRule or testListenerRule.

  5. 確認服務沒有正在進行的服務部署。如需詳細資訊,請參閱使用 Amazon ECS 服務部署檢視服務歷史記錄

  6. Amazon ECS 藍/綠部署要求服務使用下列其中一項功能:設定相應的資源。

  7. 決定是否要為 Amazon ECS 藍/綠部署中的生命週期階段執行 Lambda 函式。

    • 向上擴展前

    • 向上擴展後

    • 測試流量轉移

    • 測試流量轉移後

    • 生產流量轉移

    • 生產流量轉移後

    為每個生命週期階段建立 Lambda 函式。如需詳細資訊,請參閱 AWS Lambda Developer Guide 中的 Create a Lambda function with the console

如需有關更新服務部署控制器的詳細資訊,請參閱更新 Amazon ECS 服務參數

程序

  1. 開啟主控台,網址為 https://console.aws.amazon.com/ecs/v2

  2. 叢集頁面上,選擇叢集。

    「叢集詳細資訊」頁面隨即顯示。

  3. 服務索引標籤中選擇服務。

    服務詳細資訊頁面隨即顯示。

  4. 在橫幅中,選擇更新部署控制器類型

    遷移部署控制器類型頁面隨即顯示。

  5. 展開新增區段,然後指定下列參數。

    1. 部署控制器類型欄位中選擇 ECS

    2. 部署策略欄位中選擇藍/綠部署

    3. 封裝時間欄位中,輸入藍色與綠色服務修訂版同時執行的時間。

    4. 若要為生命週期階段執行 Lambda 函式,請在部署 lifecycle hook 下為每個唯一的 Lambda 函式執行下列動作:

      1. 選擇新增

        針對每個要執行的唯一函式重複此步驟。

      2. Lambda 函式欄位中輸入函式名稱。

      3. 角色欄位中,選擇您在先決條件中建立的具有藍/綠部署許可的角色。

        如需詳細資訊,請參閱Amazon ECS 藍/綠部署中 Lambda 函式所需的許可

      4. 生命週期階段欄位中選取 Lambda 函式執行的階段。

      5. (選用) 在勾點詳細資訊欄位中,輸入提供勾點相關資訊的鍵值對。

  6. 展開負載平衡區段,並設定下列項目:

    1. 角色欄位中,選擇您在先決條件中建立的具有藍/綠部署許可的角色。

      如需詳細資訊,請參閱Amazon ECS 藍/綠部署中 Lambda 函式所需的許可

    2. 接聽程式欄位中,從 CodeDeploy 藍/綠部署中選擇生產接聽程式。

    3. 生產規則欄位中,從 CodeDeploy 藍/綠部署中選擇生產規則。

    4. 測試規則欄位中,從 CodeDeploy 藍/綠部署中選擇測試規則。

    5. 目標群組欄位中,從 CodeDeploy 藍/綠部署中選擇生產目標群組。

    6. 替代目標群組欄位中,從 CodeDeploy 藍/綠部署中選擇測試目標群組。

  7. 選擇更新

後續步驟

  • 更新服務以開始部署。如需詳細資訊,請參閱更新 Amazon ECS 服務

  • 監控部署程序,確保其遵循藍/綠模式:

    • 綠色服務修訂版已建立並向上擴展

    • 測試流量會路由至綠色修訂版 (若已設定)

    • 生產流量會轉移至綠色修訂版

    • 封裝時間過期後,藍色修訂版會終止