本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Fargate 啟動類型的 Amazon ECS 任務聯網選項
依預設,Fargate 上的每個 Amazon ECS 任務都會提供彈性網路介面 (ENI),具有主要私有 IP 地址。使用公有子網路時,您可以選擇性地將公有 IP 位址指派給任務的 ENI。如果您的 VPC 設定為雙堆疊模式,且您使用具有 IPv6 CIDR 區塊的子網路,則任務的 ENI 也會接收 IPv6 地址。任務在指定時間內只能有一個相關聯的 ENI。屬於同一個任務的容器也可透過 localhost
介面進行通訊。如需 VPCs 和子網路的詳細資訊,請參閱《Amazon VPC 使用者指南》中的 Amazon VPC 運作方式。
若要讓 Fargate 上的任務提取容器映像,任務必須有通往網際網路的路由。以下說明如何確認您的任務具有通往網際網路的路由。
-
使用公有子網路時,您可將公有 IP 地址指派給任務 ENI。
-
使用私人子網路時,子網路可以連結 NAT 閘道。
-
使用 Amazon ECR 中託管的容器映像時,您可以將 Amazon ECR 設定為使用介面 VPC 端點,並且透過任務的私有 IPv4 位址進行映像提取 。如需詳細資訊,請參閱 《Amazon Elastic Container Registry 使用者指南》中的 Amazon ECR 介面 VPC 端點 (AWS PrivateLink)。
因為每項任務都會取得自己的 ENI,所以您可以利用聯網功能,例如 VPC 流程日誌,以便您監控任務的進出流量。如需詳細資訊,請參閱「Amazon VPC 使用者指南」中的 VPC 流程日誌。
您也可以利用 AWS PrivateLink。您可以設定 VPC 介面端點,以便透過私有 IP 地址存取 Amazon ECS APIs。 AWS PrivateLink 會限制 VPC 和 Amazon ECS 之間的所有網路流量到 Amazon 網路。您不需要網際網路閘道、NAT 裝置或虛擬私有閘道。如需詳細資訊,請參閱 Amazon ECS 介面 VPC 端點 (AWS PrivateLink)。
如需如何使用 NetworkConfiguration
資源的範例 AWS CloudFormation,請參閱 使用獨立堆疊建立 Amazon ECS 資源。
建立的 ENI 由 AWS Fargate全受管。此外,還有用來將許可授予 Fargate 的相關 IAM 政策。對於使用 Fargate 平台版本 1.4.0
或更新版本的任務,該任務會收到單一 ENI (也稱為任務 ENI),所有網路流量會流經 VPC 中的 ENI。此流量記錄在您的 VPC 流程日誌中。對於使用 Fargate 平台版本 1.3.0
和舊版的任務,除了任務 ENI 以外,該任務也會收到個別 Fargate 擁有的 ENI,其用於某些網路流量,這些流量不會顯示在 VPC 流程日誌中。以下資料表描述網路流量行為,以及每個平台版本所需的 IAM 政策。
動作 | 使用 Linux 平台版本 1.3.0 和更早版本時的流量流程 |
使用 Linux 平台版本 1.4.0 時的流量流程 |
使用 Windows 平台版本 1.0.0 時的流量流程 |
IAM 許可 |
---|---|---|---|---|
擷取 Amazon ECR 登入憑證 | Fargate 擁有的 ENI | 任務 ENI | 任務 ENI | 任務執行 IAM 角色 |
映像提取 | 任務 ENI | 任務 ENI | 任務 ENI | 任務執行 IAM 角色 |
透過日誌驅動程式傳送日誌 | 任務 ENI | 任務 ENI | 任務 ENI | 任務執行 IAM 角色 |
透過 FireLens for Amazon ECS 傳送日誌 | 任務 ENI | 任務 ENI | 任務 ENI | 任務 IAM 角色 |
從 Secrets Manager 或 Systems Manager 中擷取秘密 | Fargate 擁有的 ENI | 任務 ENI | 任務 ENI | 任務執行 IAM 角色 |
Amazon EFS 檔案系統流量 | 無 | 任務 ENI | 任務 ENI | 任務 IAM 角色 |
應用程式流量 | 任務 ENI | 任務 ENI | 任務 ENI | 任務 IAM 角色 |
考量事項
使用任務聯網時,請考量下列事項。
-
Amazon ECS 服務連結角色需要為 Amazon ECS 提供代表您呼叫其他 AWS 服務的許可。這個角色會在您建立叢集,或在 AWS Management Console中建立或更新服務時建立。如需詳細資訊,請參閱使用 Amazon ECS 的服務連結角色。您也可以使用下列 AWS CLI 命令建立服務連結角色。
aws iam create-service-linked-role --aws-service-name ecs.amazonaws.com
-
在 VPC 上同時啟用
enableDnsHostnames
和enableDnsSupport
選項時,Amazon ECS 會使用 Amazon 提供的 DNS 主機名稱填入任務的主機名稱。如果未啟用這些選項,任務的 DNS 主機名稱會設定為隨機的主機名稱。如需 VPC DNS 設定的詳細資訊,請參閱《Amazon VPC 使用者指南》中的搭配使用 DNS 與 VPC。 -
您為
awsVpcConfiguration
最多只能指定 16 個子網和 5 個安全群組。如需詳細資訊,請參閱 Amazon Elastic Container Service API 參考 中的 AwsVpcConfiguration。 -
您的帳戶無法手動分離或修改由 Fargate 建立並連接的 ENI。這是為了防止意外刪除與正在執行之任務相關聯的 ENI。若要釋出任務的 ENI,請停止該任務。
-
如果 VPC 子網已更新以變更其使用的 DHCP 選項集,您也無法將這些變更套用到使用 VPC 的現有任務。啟動新任務,其將在測試新變更接著停止舊任務的同時,接收新的設定以順利遷移 (如果不需要轉返)。
-
在具有 IPv6 CIDR 區塊的子網中啟動的任務只會在使用 Fargate 平台 Linux
1.4.0
版或更新版或 Windows1.0.0
版時接收 IPv6 位址。 -
對於使用平台 Linux
1.4.0
版或更新版或者 Windows1.0.0
版的任務,任務 ENI 支援巨型訊框。網路界面皆以最大傳輸單位 (MTU) 來設定,這是適合單一框架的最大酬載大小。MTU 越大,單一框架能容納的應用程式酬載越多,可降低每個框架的額外負荷並提高效率。當任務和目的地之間的網路路徑支援巨型訊框時,支援巨型訊框會降低額外負荷。 -
使用 Fargate 啟動類型的服務與任務僅支援 Application Load Balancer 和 Network Load Balancer。不支援 Classic Load Balancer。當您建立任何目標群組時,必須選擇
ip
做為目標類型,而不是選擇instance
。如需詳細資訊,請參閱使用負載平衡來分發 Amazon ECS 服務流量。
在雙堆疊模式下使用 VPC
在雙堆疊模式中使用 VPC 時,您的任務可透過 IPv4 或 IPv6 或兩者進行通訊。IPv4 和 IPv6 地址彼此互相獨立。您必須在您的 VPC 中分別為 IPv4 和 IPv6 設定路由和安全。如需將 VPC 設定為雙堆疊模式的詳細資訊,請參閱 《Amazon VPC 使用者指南》 中的遷移至 IPv6。
如果符合下列條件,則會將 IPv6 位址指派給 Fargate 上的 Amazon ECS 任務:
-
您的 Amazon ECS
dualStackIPv6
帳戶設定已開啟 (enabled
),供 IAM 主體在您要啟動任務的區域中啟動任務。此設定只能使用 API 或 進行修改 AWS CLI。您可以選擇透過設定您的帳戶預設設定,為 帳戶或整個帳戶的特定 IAM 主體開啟此設定。如需詳細資訊,請參閱使用帳戶設定存取 Amazon ECS功能。 -
已對 IPv6 啟用 VPC 和子網路。如需如何將 VPC 設定為雙堆疊模式的詳細資訊,請參閱《Amazon VPC 使用者指南》中的遷移至 IPv6。
-
您的子網路已啟用自動指派 IPv6 地址。如需詳細資訊,請參閱《Amazon VPC 使用者指南》中的修改子網路的 IPv6 地址屬性。
-
任務或服務使用適用於 Linux 的 Fargate 平台版本
1.4.0
或更高版本。
如果您將 VPC 設定網際網路閘道或傳出限定網際網路閘道,在 Fargate 上指派 IPv6 位址的 Amazon ECS 任務就可存取網際網路。不需要 NAT 閘道。如需詳細資訊,請參閱 《Amazon VPC 使用者指南》 中的網際網路閘道和輸出限定網際網路閘道。