使用中的部署組態 CodeDeploy - AWS CodeDeploy

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

使用中的部署組態 CodeDeploy

部署組態是一組規則,以及部署 CodeDeploy 期間使用的成功和失敗條件。這些規則和條件會有所不同,具體取決於您是部署到 EC2/現場部署運算平台、 AWS Lambda 運算平台還是 Amazon ECS 運算平台。

EC2/內部部署計算平台上的部署組態

當您部署到 EC2 /內部部署計算平台時,部署組態會透過使用「運作狀態最小的主機」值和選用的「每區域運作狀態最低主機」值,指定部署期間必須隨時保持可用的執行個體數目或百分比。

您可以使用由提供的三種預先定義的部署規劃之一, AWS 或建立自訂部署規劃。如需建立自訂部署規劃的詳細資訊,請參閱〈〉Create a Deployment Configuration。如果您未指定部署規劃,請 CodeDeploy 使用 CodeDeployDefault. OneAtA 時間部署配置。

如需部署期間如何 CodeDeploy 監視和評估執行個體健康狀態的詳細資訊,請參閱Instance Health。若要檢視已註冊至您 AWS 帳戶的部署設定清單,請參閱View Deployment Configuration Details

EC2/內部部署計算平台的預定義部署組態

下表列出預先定義部署組態。

注意

沒有支援此功能的預先定義部署組態 (此zonal configuration功能可讓您指定每個可用區域的運作狀況良好的主機數目)。如果要使用此功能,則必須建立自己的部署規劃

部署組態 描述
CodeDeployDefault.AllAtOnce

就地部署

嘗試部署應用程式修訂版,一次盡可能部署任意數量的執行個體。如果應用程式版本被部署到一個或多個執行個體,整體的部署狀態會顯示為成功。如果應用程式修訂版沒有部署到任何一個執行個體,整體的部署狀態會顯示為失敗。使用九個例證的範例 CodeDeployDefault。 AllAtOnce 嘗試一次部署到所有九個執行個體。即使只有單一執行個體部署成功,整體部署也算成功。只有在部署到全部九個執行個體都失敗時,才算失敗。

藍/綠部署

  • 部署至替代環境:遵循與相同的部署規則 CodeDeployDefault。 AllAtOnce 用於就地部署。

  • 流量重新路由:立即路由流量到所有替換環境中的執行個體。如果流量成功重新路由到至少一個執行個體,便代表成功。重新路由到所有執行個體失敗之後,便是失敗。

CodeDeployDefault。 HalfAtaTime

就地部署

一次部署到最多執行個體的一半 (分數無條件捨去)。如果應用程式修訂版部署到至少一半的執行個體,整體部署即為成功 (分數無條件計入)。否則,部署失敗。在九個執行個體的範例中,它將同時部署到最多四個執行個體。如果成功部署至五個或以上的執行個體,整體部署即為成功。否則,部署失敗。

注意

如果您要部署到多個 Auto Scaling 群組中的執行個體, CodeDeploy 則無論執行個體所在的 Auto Scaling 群組為何,一次最多可部署一半的執行個體。例如,假設您有兩個 Auto Scaling 群組,ASG1而且ASG2每個群組都有 10 個執行個體。在這個案例中, CodeDeploy 可能只部署到 10 個執行個體,ASG1並認為這是成功的,因為它已部署至少一半的執行個體。

藍/綠部署

  • 部署至替代環境:遵循與相同的部署規則 CodeDeployDefault。 HalfAt適用於就地部署的 ATime。

  • 流量重新路由:在替換環境中,流量最多一次路由到一半的執行個體。如果成功地重新路由到至少一半的執行個體,便是成功。否則, 便會失敗。

CodeDeployDefault。 OneAtaTime

就地部署

將應用程式修訂版一次部署到一個執行個體。

對於包含多個執行個體的部署群組:

  • 如果應用程式修訂版部署到所有執行個體,整體部署便算成功。此規則的例外是,若部署到最後一個執行個失敗,則整體部署仍然成功。這是因為一次只 CodeDeploy 允許一個執行個體離線 CodeDeployDefault。 OneAtA 時間配置。

  • 一旦應用程式修訂版無法部署到最後一個執行個體以外的任何執行個,整體部署便告失敗。

  • 在使用九個執行個體的範例中,它將一次部署到一個執行個體。如果部署到前八個執行個體成功,則整體部署成功。如果部署到前八個執行個體的任何一個失敗,則整體部署失敗。

對於僅包含一個執行個體的部署群組,如果部署到單一執行個體成功,整體部署便算成功。

藍/綠部署

  • 部署至替代環境:遵循與相同的部署規則 CodeDeployDefault。 OneAt適用於就地部署的 ATime。

  • 流量重新路由:在替換環境中,將一個執行個體的流量一次路由到一個執行個體。如果流量成功重新路由到所有的替代環境,便是成功。第一個路由失敗後,代表失敗。此規則的例外是,若最後一個執行個體無法註冊,則整體部署仍然成功。

在 Amazon ECS 運算平台上的部署組態

當您部署到 Amazon ECS 運算平台時,部署組態會指定流量如何轉移到更新的 Amazon ECS 任務集。您可以使用初期測試線性all-at-once部署組態來轉移流量。如需詳細資訊,請參閱 部署組態

您也可以建立您自己的自訂 Canary 或線性部署組態。如需詳細資訊,請參閱 Create a Deployment Configuration

適用於 Amazon ECS 運算平台的預先定義部署組態

下表列出可用於 Amazon ECS 部署的預先定義組態。

注意

如果您使用的是 Network Load Balancer,則僅支援CodeDeployDefault.ECSAllAtOnce預先定義的部署設定。

部署組態 描述

CodeDeployDefault. 線性 PercentEvery 10 1 分鐘

每分鐘移動 10% 的流量,直到所有流量移動完畢。

CodeDeployDefault. 線上 10 3 分鐘 PercentEvery

每三分鐘移動 10% 的流量,直到所有流量移動完畢。

CodeDeployDefault. 百分比 10 分鐘

在第一個遞增中移動 10% 的流量。剩餘的 90% 會在五分鐘之後部署。

CodeDeployDefault. 百分之十 15 分鐘

在第一個遞增中移動 10% 的流量。剩餘的 90% 會在 15 分鐘之後部署。

CodeDeployDefault. ECS AllAtOnce

一次將所有流量轉移到更新後的 Amazon ECS 容器。

AWS CloudFormation 藍/綠部署的部署組態 (Amazon ECS)

當您透過 AWS CloudFormation 藍/綠部署部署到 Amazon ECS 運算平台時,部署組態會指定流量轉移到更新後的 Amazon ECS 容器的方式。您可以使用初期測試線性all-at-once部署組態來轉移流量。如需詳細資訊,請參閱 部署組態

使用 AWS CloudFormation 藍/綠部署時,您無法建立自己的自訂初期測試或線性部署規劃。如需使用 AWS CloudFormation 管理 Amazon ECS 藍/綠部署的相關 step-by-step 說明,請參閱使用者指南 AWS CloudFormation中的 CodeDeploy 使用自動化 ECS 藍/綠部署。AWS CloudFormation

注意

歐洲 (米蘭)、非洲 (開普敦) 和亞太區域 (大阪) 區域不提供 Amazon ECS 藍/綠部署的管理。 AWS CloudFormation

AWS Lambda 運算平台上的部署組態

當您部署至 AWS Lambda 運算平台時,部署組態會指定流量轉移至應用程式中新 Lambda 函數版本的方式。您可以使用初期測試線性all-at-once部署組態來轉移流量。如需詳細資訊,請參閱 部署組態

您也可以建立您自己的自訂 Canary 或線性部署組態。如需詳細資訊,請參閱 Create a Deployment Configuration

AWS Lambda 運算平台的預先定義部署組態

下表列出 AWS Lambda 部署可用的預先定義組態。

部署組態 描述

CodeDeployDefault。 LambdaCanary10 百分比 5 分鐘

在第一個遞增中移動 10% 的流量。剩餘的 90% 會在五分鐘之後部署。

CodeDeployDefault。 LambdaCanary百分比 10 分鐘

在第一個遞增中移動 10% 的流量。剩餘的 90% 會在 10 分鐘之後部署。

CodeDeployDefault。 LambdaCanary百分之十 15 分鐘

在第一個遞增中移動 10% 的流量。剩餘的 90% 會在 15 分鐘之後部署。

CodeDeployDefault。 LambdaCanary百分之十 30 分鐘

在第一個遞增中移動 10% 的流量。剩餘的 90% 會在 30 分鐘之後部署。

CodeDeployDefault。 LambdaLinear十一PercentEvery分鐘

每分鐘移動 10% 的流量,直到所有流量移動完畢。

CodeDeployDefault。 LambdaLinear十PercentEvery二分鐘

每兩分鐘移動 10% 的流量,直到所有流量移動完畢。

CodeDeployDefault。 LambdaLinear十PercentEvery三分鐘

每三分鐘移動 10% 的流量,直到所有流量移動完畢。

CodeDeployDefault。 LambdaLinearPercentEvery十分鐘 每 10 分鐘移動 10% 的流量,直到所有流量移動完畢。
CodeDeployDefault.LambdaAllAtOnce

一次將所有流量轉移到更新的 Lambda 函數。

主題