

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

# Fargate 的 Amazon ECS 任務聯網選項
<a name="fargate-task-networking"></a>

依預設，Fargate 上的每個 Amazon ECS 任務都會提供彈性網路介面 (ENI)，具有主要私有 IP 地址。使用公有子網路時，您可以選擇性地將公有 IP 位址指派給任務的 ENI。如果 VPC 已設定為雙堆疊模式，且使用的子網路帶有 IPv6 CIDR 區塊，則該任務的 ENI 還會取得 IPv6 位址。任務在指定時間內只能有一個相關聯的 ENI。屬於同一個任務的容器也可透過 `localhost` 介面進行通訊。如需有關 VPC 與子網路的詳細資訊，請參閱 *Amazon VPC User Guide* 中的 [How Amazon VPC works](https://docs.aws.amazon.com/vpc/latest/userguide/how-it-works.html)。

若要讓 Fargate 上的任務提取容器映像，任務必須有通往網際網路的路由。以下說明如何確認您的任務具有通往網際網路的路由。
+ 使用公有子網路時，您可將公有 IP 地址指派給任務 ENI。
+ 使用私人子網路時，子網路可以連結 NAT 閘道。
+ 使用 Amazon ECR 中託管的容器映像時，您可以將 Amazon ECR 設定為使用介面 VPC 端點，並且透過任務的私有 IPv4 位址進行映像提取 。如需詳細資訊，請參閱 *Amazon Elastic Container Registry User Guide* 中的 [Amazon ECR interface VPC endpoints (AWS PrivateLink)](https://docs.aws.amazon.com/AmazonECR/latest/userguide/vpc-endpoints.html)。

因為每項任務都會取得自己的 ENI，所以您可以利用聯網功能，例如 VPC 流程日誌，以便您監控任務的進出流量。如需詳細資訊，請參閱「Amazon VPC 使用者指南」**中的 [VPC 流程日誌](https://docs.aws.amazon.com/vpc/latest/userguide/flow-logs.html)。

您也可以利用 AWS PrivateLink。您可以設定 VPC 介面端點，以便透過私有 IP 地址存取 Amazon ECS APIs。 AWS PrivateLink 會限制 VPC 和 Amazon ECS 之間的所有網路流量到 Amazon 網路。您不需要網際網路閘道、NAT 裝置或虛擬私有閘道。如需詳細資訊，請參閱 [Amazon ECS 介面 VPC 端點 (AWS PrivateLink)](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/vpc-endpoints.html)。

如需如何使用 `NetworkConfiguration` 資源的範例 CloudFormation，請參閱 [CloudFormation Amazon ECS 的範例範本](working-with-templates.md)。

建立的 ENI 由 AWS Fargate全受管。此外，還有用來將許可授予 Fargate 的相關 IAM 政策。對於使用 Fargate 平台版本 `1.4.0` 或更新版本的任務，該任務會收到單一 ENI (也稱為任務 ENI)，所有網路流量會流經 VPC 中的 ENI。此流量記錄在您的 VPC 流程日誌中。對於使用 Fargate 平台版本 `1.3.0` 和舊版的任務，除了任務 ENI 以外，該任務也會收到個別 Fargate 擁有的 ENI，其用於某些網路流量，這些流量不會顯示在 VPC 流程日誌中。以下資料表描述網路流量行為，以及每個平台版本所需的 IAM 政策。


|  Action  |  使用 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 角色  | 

## 考量事項
<a name="fargate-task-networking-considerations"></a>

使用任務聯網時，請考量下列事項。
+ 需要 Amazon ECS 服務連結角色，才能為 Amazon ECS 提供代表您呼叫其他 AWS 服務的許可。這個角色會在您建立叢集，或在 AWS 管理主控台中建立或更新服務時建立。如需詳細資訊，請參閱[使用 Amazon ECS 的服務連結角色](using-service-linked-roles.md)。您也可以使用下列 AWS CLI 命令建立服務連結角色。

  ```
  aws iam [create-service-linked-role](https://docs.aws.amazon.com/cli/latest/reference/iam/create-service-linked-role.html) --aws-service-name ecs.amazonaws.com
  ```
+ 在 VPC 上同時啟用 `enableDnsHostnames` 和 `enableDnsSupport` 選項時，Amazon ECS 會使用 Amazon 提供的 DNS 主機名稱填入任務的主機名稱。如果未啟用這些選項，任務的 DNS 主機名稱會設定為隨機的主機名稱。如需 VPC DNS 設定的詳細資訊，請參閱《Amazon VPC 使用者指南》中的[搭配使用 DNS 與 VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-dns.html)。
+ 您為 `awsVpcConfiguration` 最多只能指定 16 個子網和 5 個安全群組。如需詳細資訊，請參閱 *Amazon Elastic Container Service API 參考* 中的 [AwsVpcConfiguration](https://docs.aws.amazon.com/AmazonECS/latest/APIReference/API_AwsVpcConfiguration.html)。
+ 您的帳戶無法手動分離或修改由 Fargate 建立並連接的 ENI。這是為了防止意外刪除與正在執行之任務相關聯的 ENI。若要釋出任務的 ENI，請停止該任務。
+ 如果 VPC 子網路已更新以變更其使用的 DHCP 選項集，您也無法將這些變更套用到使用 VPC 的現有任務。啟動新任務，其將在測試新變更接著停止舊任務的同時，接收新的設定以順利遷移 (如果不需要轉返)。
+ 下列規則適用於在特定 Fargate 平台版本上執行的任務：Linux 系統對應 `1.4.0` 或更新版本，Windows 系統對應 `1.0.0`。在雙堆疊子網路中啟動的任務會取得 IPv4 位址與 IPv6 位址。在純 IPv6 子網路中啟動的任務只會取得 IPv6 位址。
+ 對於使用平台 Linux `1.4.0` 版或更新版或者 Windows `1.0.0` 版的任務，任務 ENI 支援巨型訊框。網路界面皆以最大傳輸單位 (MTU) 來設定，這是適合單一框架的最大酬載大小。MTU 越大，單一框架能容納的應用程式酬載越多，可降低每個框架的額外負荷並提高效率。當任務和目的地之間的網路路徑支援巨型訊框時，支援巨型訊框會降低額外負荷。
+ 使用 Fargate 之任務的服務僅支援 Application Load Balancer 與 Network Load Balancer。不支援 Classic Load Balancer。當您建立任何目標群組時，必須選擇 `ip` 做為目標類型，而不是選擇 `instance`。如需詳細資訊，請參閱[使用負載平衡分佈 Amazon ECS 服務流量](service-load-balancing.md)。

## 在雙堆疊模式下使用 VPC
<a name="fargate-task-networking-vpc-dual-stack"></a>

在雙堆疊模式中使用 VPC 時，您的任務可透過 IPv4 或 IPv6 或兩者進行通訊。IPv4 和 IPv6 地址彼此互相獨立。您必須在您的 VPC 中分別為 IPv4 和 IPv6 設定路由和安全。如需將 VPC 設定為雙堆疊模式的詳細資訊，請參閱 *《Amazon VPC 使用者指南》* 中的[遷移至 IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html)。

如果符合下列條件，則會將 IPv6 位址指派給 Fargate 上的 Amazon ECS 任務：
+ 在您啟動任務的區域中，執行任務啟動操作之 IAM 主體的 Amazon ECS `dualStackIPv6` 帳戶設定必須處於開啟 (`enabled`) 狀態。此設定只能使用 API 或 進行修改 AWS CLI。您可選擇為帳戶中特定的 IAM 主體開啟此設定，或透過設定帳戶預設值為整個帳戶開啟此設定。如需詳細資訊，請參閱[透過帳戶設定使用 Amazon ECS 功能](ecs-account-settings.md)。
+ 已對 IPv6 啟用 VPC 和子網路。如需如何將 VPC 設定為雙堆疊模式的詳細資訊，請參閱《Amazon VPC 使用者指南》中的[遷移至 IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html)。
+ 您的子網路已啟用自動指派 IPv6 位址。如需詳細資訊，請參閱《Amazon VPC 使用者指南》**中的[修改子網路的 IPv6 地址屬性](https://docs.aws.amazon.com/vpc/latest/userguide/modify-subnets.html)。
+ 任務或服務使用適用於 Linux 的 Fargate 平台版本 `1.4.0` 或更高版本。

對於在雙堆疊模式下在 VPC 中執行的 Fargate 上的 Amazon ECS 任務，為了與任務啟動程序中使用的相依性服務通訊，例如 ECR、SSM 和 SecretManager，公有子網路的路由表需要 IPv4 (0.0.0.0/0) 路由到網際網路閘道，而私有子網路的路由表需要 IPv4 (0.0.0.0/0) 路由到 NAT 閘道。如需詳細資訊，請參閱《*Amazon VPC 使用者指南*》中的[網際網路閘道](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html)和 [NAT 閘道](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-nat-gateway.html)。

如需如何設定雙堆疊 VPC 的範例，請參閱[雙堆疊 VPC 組態範例](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6-example.html)。

## 在純 IPv6 模式下使用 VPC
<a name="fargate-task-networking-vpc-ipv6-only"></a>

在純 IPv6 組態中，Amazon ECS 任務只會透過 IPv6 進行通訊。若要為純 IPv6 組態設定 VPC 與子網路，您必須將 IPv6 CIDR 區塊新增至 VPC，並建立僅包含 IPv6 CIDR 區塊的子網路。如需詳細資訊，請參閱 *Amazon VPC User Guide* 中的 [Add IPv6 support for your VPC](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6-add.html) 與 [Create a subnet](https://docs.aws.amazon.com/vpc/latest/userguide/create-subnets.html)。您還必須更新路由表，加入 IPv6 目標，並在安全群組中設定 IPv6 規則。如需詳細資訊，請參閱 *Amazon VPC User Guide* 中的 [Configure route tables](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Route_Tables.html) 與 [Configure security group rules](https://docs.aws.amazon.com/vpc/latest/userguide/working-with-security-group-rules.html)。

適用下列注意事項：
+ 您可透過以下兩種方式，將純 IPv4 或雙堆疊的 Amazon ECS 服務升級為純 IPv6 組態：一是直接將服務更新為使用純 IPv6 子網路；二是建立平行的純 IPv6 服務，再透過 Amazon ECS 藍綠部署將流量遷移至新服務。如需有關 Amazon ECS 藍/綠部署的詳細資訊，請參閱 [Amazon ECS 藍/綠部署](deployment-type-blue-green.md)。
+ 純 IPv6 的 Amazon ECS 服務必須使用具 IPv6 目標群組的雙堆疊負載平衡器。若要遷移的現有 Amazon ECS 服務後端掛載了 Application Load Balancer 或 Network Load Balancer，可建立新的雙堆疊負載平衡器並將流量從舊負載平衡器遷移過去，或直接更新現有負載平衡器的 IP 位址類型。

   如需有關 Network Load Balancer 的詳細資訊，請參閱 *User Guide for Network Load Balancers* 中的 [Create a Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/create-network-load-balancer.html) 與 [Update the IP address types for your Network Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/network/load-balancer-ip-address-type.html)。如需有關 Application Load Balancer 的詳細資訊，請參閱 *User Guide for Application Load Balancers* 中的 [Create an Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/create-application-load-balancer.html) 與 [Update the IP address types for your Application Load Balancer](https://docs.aws.amazon.com/elasticloadbalancing/latest/application/load-balancer-ip-address-type.html)。
+ Windows 不支援純 IPv6 組態。
+ 若要讓純 IPv6 組態中的 Amazon ECS 任務與純 IPv4 端點通訊，您可以設定 DNS64 與 NAT64，實現從 IPv6 到 IPv4 的網路位址轉換。如需更多詳細資訊，請參閱《*Amazon VPC 使用者指南*》中的「[DNS64 和 NAT64](https://docs.aws.amazon.com/vpc/latest/userguide/nat-gateway-nat64-dns64.html)」。
+ Fargate 平台版本 `1.4.0` 或更新版本支援純 IPv6 組態。
+ 在純 IPv6 組態中，Amazon ECS 工作負載從 Amazon ECR 拉取映像時，必須使用 Amazon ECR 雙堆疊映像 URI 端點。如需詳細資訊，請參閱 *Amazon Elastic Container Registry User Guide* 中的 [Getting started with making requests over IPv6](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ecr-requests.html#ipv6-access-getting-started)。
**注意**  
Amazon ECR 不支援可供純 IPv6 組態中任務使用的雙堆疊介面 VPC 端點。如需詳細資訊，請參閱 *Amazon Elastic Container Registry User Guide* 中的 [Getting started with making requests over IPv6](https://docs.aws.amazon.com/AmazonECR/latest/userguide/ecr-requests.html#ipv6-access-getting-started)。
+ 純 IPv6 組態不支援 Amazon ECS Exec。
+ Amazon CloudWatch 不支援雙堆疊 FIPS 端點，因此無法監控採用純 IPv6 組態且需符合 FIPS-140 規範的 Amazon ECS 任務。如需有關 FIPS-140 的詳細資訊，請參閱 [AWS Fargate 聯邦資訊處理標準 (FIPS-140)](ecs-fips-compliance.md)。

### AWS 區域 支援 IPv6-only 模式
<a name="fargate-task-networking-ipv6-only-regions"></a>

您可以在下列 Amazon ECS 可用的 中 AWS 區域 ，以IPv6-only 的組態執行任務：
+ 美國東部 (俄亥俄)
+ 美國東部 (維吉尼亞北部)
+ 美國西部 (加利佛尼亞北部)
+ 美國西部 (奧勒岡)
+ 非洲 (開普敦)
+ 亞太地區 (香港)
+ 亞太區域 (海德拉巴)
+ 亞太地區 (雅加達)
+ 亞太地區 (墨爾本)
+ 亞太地區 (孟買)
+ 亞太區域 (大阪)
+ 亞太區域 (首爾)
+ 亞太區域 (新加坡)
+ 亞太地區 (雪梨)
+ 亞太區域 (東京)
+ 加拿大 (中部)
+ 加拿大西部 (卡加利)
+ 中國 (北京)
+ 中國 (寧夏)
+ 歐洲 (法蘭克福)
+ 歐洲 (倫敦)
+ 歐洲 (米蘭)
+ Europe (Paris)
+ 歐洲 (西班牙)
+ 以色列 (特拉維夫)
+ Middle East (Bahrain)
+ 中東 (阿拉伯聯合大公國)
+ 南美洲 (聖保羅)
+ AWS GovCloud （美國東部）
+ AWS GovCloud （美國西部）