本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
為 CodeDeploy Amazon ECS 部署設定負載平衡器、目標群組和接聽程式
在使用 Amazon ECS 運算平台執行部署之前,您必須建立 Application Load Balancer 或 Network Load Balancer、兩個目標群組以及一或兩個接聽程式。本主題說明如何建立應用程式負載平衡器。如需詳細資訊,請參閱 開始 Amazon ECS 部署之前。
其中一個目標群組會將流量導向 Amazon ECS 應用程式的原始任務集。另一個目標群組會將流量導向其替換任務集。在部署期間, CodeDeploy 會建立取代工作集,並將原始工作集的流量重新路由傳送至新工作集。 CodeDeploy 決定每個作業集使用哪個目標群組。
接聽程式供負載平衡器用來將流量導向到您的目標群組。一個生產接聽程式為必要項目。您可以指定選用的測試接聽程式,負責在您執行驗證測試時引導流量到您的替換任務。
負載平衡器必須使用 VPC 搭配不同可用區域中的兩個子網路。以下步驟說明如何確認預設 VPC、建立 Amazon EC2 Application Load Balancer,然後為負載平衡器建立兩個目標群組。如需詳細資訊,請參閱網路負載平衡器的目標群組。
驗證您的預設 VPC、公用子網路和安全性群組
本主題說明如何建立 Amazon EC2 Application Load Balancer、兩個目標群組以及兩個可在 Amazon ECS 卸載期間使用的連接埠。其中一個連接埠是選用的,且只有在部署期間將流量導向測試連接埠進行驗證測試時才需要。
登入 AWS Management Console 並開啟 Amazon VPC 主控台,網址為 https://console.aws.amazon.com/vpc/
。 -
驗證要使用的預設 VPC。在導覽窗格中,選擇 Your VPCs (您的 VPC)。請注意,哪個 VPC 在 Default VPC (預設 VPC) 欄中顯示 Yes (是)。這是您的預設 VPC。其中包含您使用的預設子網路。
-
選擇 Subnets (子網路)。記下在 Default subnet (預設子網路) 欄中顯示 Yes (是) 的兩個子網路的子網路 ID。當您建立負載平衡器時會使用這些 ID。
-
選擇每個子網路,然後選擇 Description (描述) 標籤。驗證您想要使用的子網路是否位於不同的可用區域中。
-
選擇子網路,然後選擇 Route Table (路由表) 標籤。若要驗證您想要使用的每個子網路是否為公有子網路,請確認路由表中有一列具有網際網路閘道的連結。
登入 AWS Management Console 並開啟 Amazon EC2 主控台,網址為 https://console.aws.amazon.com/ec2/
。 -
從導覽窗格中,選擇 Security Groups (安全群組)。
-
確認您想要使用的安全群組可用,並記下其群組 ID (例如,sg-abcd1234)。您在建立負載平衡器時會使用此項目。
建立 Amazon EC2 Application Load Balancer、兩個目標群組和接聽程式 (主控台)
若要使用 Amazon EC2 主控台建立 Amazon EC2 Application Load Balancer:
登入 AWS Management Console 並開啟 Amazon EC2 主控台,網址為 https://console.aws.amazon.com/ec2/
。 -
在導覽窗格中,選擇 Load Balancers (負載平衡器)。
-
選擇 Create Load Balancer (建立負載平衡器)。
-
選擇 Application Load Balancer (應用程式負載平衡器),然後選擇 Create (建立)。
-
在 Name (名稱) 中,輸入負載平衡器的名稱。
-
在 Scheme (結構描述) 中,選擇 internet-facing (面向網際網路)。
-
在 IP address type (IP 地址) 中,選擇 ipv4。
-
(選用) 為您的負載平衡器設定第二個接聽程式連接埠。您可以使用轉發至此連接埠的測試流量來執行部署驗證測試。
-
在 Load Balancer Protocol (負載平衡器通訊協定) 下,選擇 Add listener (新增接聽程式)。
-
在第二個接聽程式的 Load Balancer Protocol (負載平衡器通訊協定) 下,選擇 HTTP。
-
在 Load Balancer Port (負載平衡器連接埠) 下,輸入
8080
。
-
-
在 Availability Zones (可用區域) 下的 VPC 中,選擇預設 VPC,然後選取您要使用的兩個預設子網路。
-
選擇 Next: Configure Security Settings (下一步:設定安全設定)。
-
選擇 Next: Configure Security Groups (下一步:設定安全群組)。
-
選擇 Select an existing security group (選取現有的安全群組),選擇預設安全群組,然後記下其 ID。
-
選擇 Next: Configure Routing (下一步:設定路由)。
-
在 Target group (目標群組) 中,選擇 New target group (新增目標群組),然後設定您的第一個目標群組:
-
在 Name (名稱) 中,輸入目標群組名稱 (例如,
target-group-1
)。 -
在 Target type (目標類型) 中,選擇 IP。
-
在 Protocol (通訊協定) 中,選擇 HTTP。在 Port (連接埠) 中,輸入
80
。 -
選擇 Next: Register Targets (下一步:註冊目標)。
-
-
選擇 Next: Review (下一步:檢視),然後選擇 Create (建立)。
為您的負載平衡器建立第二個目標群組
-
佈建負載平衡器後,開啟 Amazon EC2 主控台。在導覽窗格中,選擇 Target Groups (目標群組)。
-
選擇 Create target group (建立目標群組)。
-
在 Name (名稱) 中,輸入目標群組名稱 (例如,
target-group-2
)。 -
在 Target type (目標類型) 中,選擇 IP。
-
在 Protocol (通訊協定) 中,選擇 HTTP。在 Port (連接埠) 中,輸入
80
。 -
在 VPC 中,選擇預設 VPC。
-
選擇建立。
注意
您必須為負載平衡器建立兩個目標群組,才能執行 Amazon ECS 部署。建立 Amazon ECS 服務時,您可以使用其中一個目標群組的 ARN。如需詳細資訊,請參閱 Amazon ECS 使用者指南中的步驟 4:建立 Amazon ECS 服務。
建立 Amazon EC2 Application Load Balancer、兩個目標群組和接聽程式 (CLI)
若要使用建立應用程式負載平衡器 AWS CLI:
-
使用命create-load-balancer令建立應用程式負載平衡器。指定兩個不在相同可用區域中的子網路和一個安全群組。
aws elbv2 create-load-balancer --name
bluegreen-alb
\ --subnetssubnet-abcd1234
subnet-abcd5678
--security-groupssg-abcd1234
--regionus-east-1
輸出包含負載平衡器的 Amazon Resource Name (ARN),格式如下:
arn:aws:elasticloadbalancing:
region
:aws_account_id
:loadbalancer/app/bluegreen-alb/e5ba62739c16e642
-
使用指create-target-group令建立第一個目標群組。 CodeDeploy 將此目標群組的流量路由至服務中設定的原始或取代工作。
aws elbv2 create-target-group --name
bluegreentarget1
--protocolHTTP
--port80
\ --target-type ip --vpc-idvpc-abcd1234
--regionus-east-1
輸出包含第一個目標群組的 ARN,格式如下:
arn:aws:elasticloadbalancing:
region
:aws_account_id
:targetgroup/bluegreentarget1/209a844cd01825a4 -
使用指create-target-group令建立第二個目標群組。 CodeDeploy 將目標群組的流量路由至第一個目標群組未提供服務的任務集。例如,如果您的第一個目標群組將流量路由到原始任務集,此目標群組會將流量路由到替換任務集。
aws elbv2 create-target-group --name
bluegreentarget2
--protocolHTTP
--port80
\ --target-type ip --vpc-idvpc-abcd1234
--regionus-east-1
輸出包含第二個目標群組的 ARN,格式如下:
arn:aws:elasticloadbalancing:
region
:aws_account_id
:targetgroup/bluegreentarget2/209a844cd01825a4 -
使用 create-listener 命令,以預設規則建立接聽程式,將生產流量轉送至 8080 埠。
aws elbv2 create-listener --load-balancer-arn arn:aws:elasticloadbalancing:
region
:aws_account_id
:loadbalancer/app/bluegreen-alb/e5ba62739c16e642
\ --protocol HTTP --port 80 \ --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region
:aws_account_id
:targetgroup/bluegreentarget1/209a844cd01825a4
--regionus-east-1
輸出包含接聽程式的 ARN,格式如下:
arn:aws:elasticloadbalancing:
region
:aws_account_id
:listener/app/bluegreen-alb/e5ba62739c16e642/665750bec1b03bd4 -
(選用) 使用 create-listener 命令,以預設規則建立第二個接聽程式,將測試流量轉送至 8080 埠。您可以使用轉發至此連接埠的測試流量來執行部署驗證測試。
aws elbv2 create-listener --load-balancer-arn arn:aws:elasticloadbalancing:
region
:aws_account_id
:loadbalancer/app/bluegreen-alb/e5ba62739c16e642
\ --protocol HTTP --port 8080 \ --default-actions Type=forward,TargetGroupArn=arn:aws:elasticloadbalancing:region
:aws_account_id
:targetgroup/bluegreentarget2/209a844cd01825a4
--regionus-east-1
輸出包含接聽程式的 ARN,格式如下:
arn:aws:elasticloadbalancing:
region
:aws_account_id
:listener/app/bluegreen-alb/e5ba62739c16e642/665750bec1b03bd4