本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
Fargate 啟動類型的 Amazon ECS任務聯網選項
根據預設,Fargate 上的每個 Amazon ECS任務都會提供一個具有主要私有 IP 地址的彈性網路介面 (ENI)。使用公有子網路時,您可以選擇將公有 IP 地址指派給任務的 ENI。如果您的 VPC 設定為雙堆疊模式,且您使用具有 IPv6 CIDR 區塊的子網路,則任務 ENI也會接收IPv6地址。任務一次只能有一個與其ENI相關聯的任務。屬於同一個任務的容器也可透過 localhost
介面進行通訊。如需 VPCs和 子網路的詳細資訊,請參閱 Amazon VPC使用者指南 中的 VPCs和 子網路。
若要讓 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介面端點,以便ECSAPIs透過私有 IP 地址存取 Amazon。 AWS PrivateLink 會限制 VPC和 Amazon 之間的所有網路流量ECS,以連線至 Amazon 網路。您不需要網際網路閘道、NAT裝置或虛擬私有閘道。如需詳細資訊,請參閱 Amazon 最佳實務指南 AWS PrivateLink 中的 。 ECS
如需如何搭配 使用 NetworkConfiguration
資源的範例 AWS CloudFormation,請參閱 使用個別堆疊建立 Amazon ECS 資源。
建立ENIs的 完全由 管理 AWS Fargate。此外,也有相關聯的IAM政策用來授予 Fargate 的許可。對於使用 Fargate 平台版本 1.4.0
或更新版本的任務,該任務會收到單一 ENI(稱為任務 ENI),且所有網路流量都會流經您 ENI中的該版本VPC。此流量會記錄在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 角色 |
透過 Amazon FireLens 傳送日誌 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服務連結角色需要ECS為 Amazon 提供 AWS 代表您呼叫其他服務的許可。這個角色會在您建立叢集,或在 AWS Management Console中建立或更新服務時建立。如需詳細資訊,請參閱使用 Amazon 的服務連結角色 ECS。您也可以使用下列 AWS CLI 命令建立服務連結角色。
aws iam create-service-linked-role --aws-service-name ecs.amazonaws.com
-
當您的 ECS
enableDnsHostnames
和enableDnsSupport
選項都啟用時,Amazon 會以 Amazon 提供的主機名稱填入任務DNS的主機名稱VPC。如果未啟用這些選項,任務的DNS主機名稱會設定為隨機主機名稱。如需 DNS設定的詳細資訊VPC,請參閱 Amazon 使用者指南 中的使用 DNS搭配 VPC 。 VPC -
您為
awsVpcConfiguration
最多只能指定 16 個子網和 5 個安全群組。如需詳細資訊,請參閱 Amazon Elastic Container Service 參考 AwsVpcConfiguration 中的 。 API -
您無法手動分離或修改 Fargate ENIs 建立和連接的 。這是為了防止意外刪除與執行中的任務相關聯的 ENI 。若要釋出任務ENIs的 ,請停止任務。
-
如果VPC子網路已更新以變更其使用DHCP的選項集,您也無法將這些變更套用至使用 的現有任務VPC。啟動新任務,其將在測試新變更接著停止舊任務的同時,接收新的設定以順利遷移 (如果不需要轉返)。
-
在具有IPv6CIDR區塊的子網路中啟動的任務,只有在 Linux
1.4.0
或1.0.0
Windows 使用 Fargate 平台版本 或更新版本時,才會收到IPv6地址。 -
對於在 Linux
1.4.0
或1.0.0
Windows 中使用平台版本 或更新版本的任務,該任務ENIs支援巨型訊框。網路介面設定為最大傳輸單位 (MTU),這是單一影格中最大承載的大小。越大 MTU,應用程式承載就越適合單一影格,可減少每個影格的額外負荷並提高效率。當任務和目的地之間的網路路徑支援巨型訊框時,支援巨型訊框會降低額外負荷。 -
使用 Fargate 啟動類型的服務與任務僅支援 Application Load Balancer 和 Network Load Balancer。不支援 Classic Load Balancer。當您建立任何目標群組時,必須選擇
ip
做為目標類型,而不是選擇instance
。如需詳細資訊,請參閱使用負載平衡來分發 Amazon ECS服務流量。
在VPC雙堆疊模式下使用
在VPC雙堆疊模式下使用 時,您的任務可以透過 IPv4 或 IPv6或兩者進行通訊。IPv4 和 IPv6 地址彼此獨立,您必須在 和 IPv4 的 中VPC分別設定路由和安全性IPv6。如需VPC將 設定為雙堆疊模式的詳細資訊,請參閱 Amazon 使用者指南 中的遷移至 IPv6 。 VPC
如果符合下列條件,則 Fargate 上的 Amazon ECS任務會指派IPv6地址:
-
您的 Amazon ECS
dualStackIPv6
帳戶設定已開啟 (enabled
),用於在您要啟動任務的區域中啟動任務的IAM委託人。此設定只能使用 API或 進行修改 AWS CLI。您可以選擇透過設定您的帳戶預設設定,為帳戶的特定IAM主體或整個帳戶開啟此設定。如需詳細資訊,請參閱使用帳戶設定存取 Amazon ECS功能。 -
您的 VPC和 子網路已針對 啟用IPv6。如需如何VPC將 設定為雙堆疊模式的詳細資訊,請參閱 Amazon 使用者指南 中的遷移至 IPv6 。 VPC
-
您的子網路已啟用自動指派IPv6地址。如需如何設定子網路的詳細資訊,請參閱 Amazon VPC使用者指南 中的修改子網路的IPv6定址屬性。
-
任務或服務使用適用於 Linux 的 Fargate 平台版本
1.4.0
或更高版本。
如果您VPC使用網際網路閘道或僅限傳出網際網路閘道設定 ,則被指派IPv6地址的 Fargate 上的 Amazon ECS任務可以存取網際網路。NAT 不需要閘道。如需詳細資訊,請參閱 Amazon VPC使用者指南 中的網際網路閘道和輸出限定網際網路閘道。