我想要為 AWS Fargate 上的 Amazon Elastic Container Service (Amazon ECS) 任務使用靜態 IP 位址或彈性 IP。
解決方法
您無法將靜態 IP 位址或彈性 IP 位址指派給 Fargate 任務。若要將靜態 IP 位址與 Fargate 任務搭配使用,請建立具有 Network Load Balancer 的 Fargate 服務,並將彈性 IP 位址附加至負載平衡器。
請根據您的流量需求,選擇以下其中一個選項:
- 若為傳出流量,請在 Fargate 任務所在的私有子網路上建立 NAT 閘道。NAT 閘道的靜態 IP 位址可用於 IP 允許清單。如需更多資訊,請參閱將 Amazon ECS 應用程式連線到網際網路。
- 若為傳入流量,請建立具有彈性 IP 位址的 Network Load Balancer,並將其設定為把流量路由到您的 Fargate 任務。請完成以下章節中的步驟。
建立具有目標群組的 Network Load Balancer
- 開啟 Amazon Elastic Compute Cloud (Amazon EC2) console (Amazon Elastic Compute Cloud (Amazon EC2) 主控台)。
- 在導覽窗格中,於 Load Balancing (負載平衡) 底下,選擇 Load Balancers (負載平衡器)。
- 選擇 Create Load Balancer (建立負載平衡器)。
- 在 Compare and select load balancer type (比較並選取負載平衡器類型) 中,於 Network Load Balancer 選擇 Create (建立)。
- 在 Load balancer name (負載平衡器名稱) 中,輸入您的負載平衡器名稱。
- 在 Scheme (配置) 中,選取 Internet-facing (面向網際網路) 或 Internal (內部)。
- 在 IP address type (IP 位址類型) 中,選取 IPv4。
- 在 Network mapping (網路對應) 區段中,於 VPC,選取您的 Fargate 任務所使用的 Amazon Virtual Private Cloud (Amazon VPC)。
- 在 Availability Zones and subnets (可用區域和子網路) 中,為每個可用區域至少選取一個可用區域和一個子網路。
**注意:**開啟多個可用區域可提高您應用程式的容錯能力。若為面向網際網路的負載平衡器,請為每個可用區域選取一個彈性 IP 位址,為您的負載平衡器提供靜態 IP 位址。若為內部負載平衡器,請從每個子網路的 IPv4 範圍指派一個私有 IP 位址,或讓 AWS 為您指派。
- 在 Listeners and routing (接聽程式和路由) 中,保留預設接聽程式,或新增另一個接聽程式。
**注意:**預設接聽程式會在連接埠 80 接受 TCP 流量。您可以保留預設接聽程式設定、修改接聽程式的通訊協定或連接埠,或選擇 Add listener (新增接聽程式) 來新增另一個接聽程式。
- 在 Protocol (通訊協定) 中,選取您的通訊協定。
- 在 Port (連接埠) 中,選取您的連接埠。
- 在 Forward to target group (轉送到目標群組) 底下,選擇 Create target group (建立目標群組)。
**注意:**目標群組由 Network Load Balancer 接聽程式規則使用,用來將請求轉送到目標群組。
- 在 Target type (目標類型) 中,選取 IP addresses (IP 位址)。
注意:Fargate 不支援目標類型執行個體。
- 在 Target group name (目標群組名稱) 中,輸入您的目標群組名稱。
- 在 Health checks (運作狀態檢查) 底下,保留預設設定。
- 選擇 Next (下一步)。
**注意:**負載平衡器會在目標群組內的目標之間分配流量。當目標群組與 Amazon ECS 服務建立關聯時,Amazon ECS 會自動向目標群組註冊及取消註冊任務。因為 Amazon ECS 會處理目標註冊,所以您不需要將目標新增至目標群組。
- 選擇 Create target group (建立目標群組)。
- 返回 Create Network Load Balancer (建立 Network Load Balancer) 索引標籤。
- 在 Listeners and routing (接聽程式和路由) 底下,於 Target group (目標群組),選取您建立的目標群組。
**注意:**建立新的目標群組後,您必須選取重新整理目標群組按鈕,才能看到該目標群組。
- 選擇 Create load balancer (建立負載平衡器)。
使用 Network Load Balancer 建立 Amazon ECS 服務
建立 Amazon ECS 服務,並在服務定義中指定目標群組。當服務的每個任務啟動時,Amazon ECS 會將服務定義中指定的容器和連接埠組合註冊到您的目標群組。接著,負載平衡器會將流量路由到該容器。
相關資訊
使用負載平衡來分配 Amazon ECS 服務流量
為 Amazon ECS 使用 Network Load Balancer
Fargate 的 Amazon ECS 任務網路選項
建立 Network Load Balancer
將 Amazon ECS 應用程式連線到網際網路