

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

# Amazon ECS 受管執行個體的 Amazon ECS 任務聯網
<a name="managed-instance-networking"></a>

在 Amazon ECS 受管執行個體上執行之 Amazon ECS 任務的聯網行為，由任務定義中指定的*網路模式*決定。您必須在任務定義中指定網路模式。若使用未指定網路模式的任務定義，將無法在 Amazon ECS 受管執行個體上執行任務。Amazon ECS 受管執行個體支援以下聯網模式，可確保從 Fargate 或 Amazon EC2 上的 Amazon ECS 遷移工作負載時具備向後相容性：


| 網路模式 | Description | 
| --- | --- | 
|  `awsvpc`  |  每項任務皆會取得專屬的彈性網路介面 (ENI) 與私有 IPv4 位址。這能提供與 Amazon EC2 執行個體相同的聯網屬性，且與傳統 Fargate 任務相容。此模式透過 ENI 主幹功能實現高任務密度。  | 
|  `host`  |  任務會直接共用主機的網路命名空間。容器聯網與底層主機執行個體緊密綁定。  | 

## 在純 IPv6 模式下使用 VPC
<a name="managed-instances-networking-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)。
+ 若要讓純 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)」。
+ 在純 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 ECS 受管執行個體上的任務配置網路介面
<a name="managed-instances-awsvpc-mode"></a>

 使用 Amazon ECS 受管執行個體中的 `awsvpc` 網路模式可簡化容器聯網設定，因為您有更高的控制權來控管應用程式彼此之間以及應用程式與 VPC 內其他服務之間的通訊方式。`awsvpc` 網路模式也讓可以您在任務中更精細地使用安全群組與網路監控工具，為您的容器提供更高的安全性。

依預設，若執行個體類型支援主幹功能，每個 Amazon ECS 受管執行個體在啟動時皆會連接一個主幹彈性網路介面 (ENI)，並將其作為主要 ENI。如需有關支援 ENI 主幹功能之執行個體類型的詳細資訊，請參閱[適用於更多 Amazon ECS 容器網路介面的支援執行個體](https://docs.aws.amazon.com/AmazonECS/latest/developerguide/eni-trunking-supported-instance-types.html)。

**注意**  
若選擇的執行個體類型不支援中繼 ENI，該執行個體將會搭配一般 ENI 啟動。

在執行個體上執行的每項任務，皆會取得連接至中繼 ENI 的專屬 ENI，並配有一個主要私有 IP 位址。如果 VPC 已設定為雙堆疊模式，且使用的子網路帶有 IPv6 CIDR 區塊，則該 ENI 還會取得一個 IPv6 位址。使用公有子網路時，您可透過為子網路啟用 IPv4 公有定址功能，選擇是否將公有 IP 位址指派給 Amazon ECS 受管執行個體的主要 ENI。如需詳細資訊，請參閱 *Amazon VPC User Guide* 中的 [Modify the IP addressing attributes of your subnet](https://docs.aws.amazon.com//vpc/latest/userguide/subnet-public-ip.html)。任務在指定時間內只能有一個相關聯的 ENI。

 屬於同一個任務的容器也可透過 `localhost` 介面進行通訊。如需有關 VPC 與子網路的詳細資訊，請參閱 *Amazon VPC User Guide* 中的 [How Amazon VPC works](https://docs.aws.amazon.com/vpc/latest/userguide/how-it-works.html)

下列操作使用連接至執行個體的主要 ENI：
+ **映像下載** – 透過主要 ENI 從 Amazon ECR 下載容器映像。
+ **秘密擷取** – 透過主要 ENI 擷取 Secrets Manager 秘密與其他憑證。
+ **日誌上傳** – 日誌透過主要 ENI 上傳至 CloudWatch。
+ **環境檔案下載** – 環境檔案透過主要 ENI 下載。

應用程式流量會流經任務 ENI。

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

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

`awsvpc` 網路模式也可讓您在使用未連接中繼 ENIs 的執行個體類型時，利用 Amazon VPC 流量鏡射進行安全性和網路流量監控。如需詳細資訊，請參閱 *Amazon VPC Traffic Mirroring Guide* 中的 [What is Traffic Mirroring?](https://docs.aws.amazon.com/vpc/latest/mirroring/what-is-traffic-mirroring.html)。

## `awsvpc` 模式考量
<a name="managed-instances-awsvpc-considerations"></a>
+ 任務需要 Amazon ECS 服務連結角色，才能進行 ENI 管理。此角色會在您建立叢集或服務時自動建立。
+ 任務 ENI 由 Amazon ECS 管理，無法手動卸離或修改。
+ 不支援在執行獨立任務 (`RunTask`) 或建立/更新服務 (`CreateService`/`UpdateService`) 時，使用 `assignPublicIp` 將公有 IP 位址指派給任務 ENI。
+ 在任務層級設定 `awsvpc` 聯網時，必須使用在 Amazon ECS 受管執行個體容量提供者啟動範本中指定的相同 VPC。您可以使用與啟動範本中指定之子網路和安全群組不同的子網路與安全群組。
+ 對於 `awsvpc` 網路模式任務，請在設定負載平衡器目標群組時使用 `ip` 目標類型。Amazon ECS 會針對支援的聯網模式，自動管理目標群組註冊。

## 在雙堆疊模式下使用 VPC
<a name="managed-instance-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)。

如果您為 VPC 設定網際網路閘道或傳出限定網際網路閘道，則可以在雙堆疊模式下使用 VPC。藉此，指派 IPv6 位址的工作就能透過網際網路閘道或僅限出口的網際網路閘道存取網際網路。NAT 閘道是選用。如需詳細資訊，請參閱 *《Amazon VPC 使用者指南》* 中的[網際網路閘道](https://docs.aws.amazon.com/vpc/latest/userguide/VPC_Internet_Gateway.html)和[輸出限定網際網路閘道](https://docs.aws.amazon.com/vpc/latest/userguide/egress-only-internet-gateway.html)。

如果符合下列條件，將會為 Amazon ECS 任務指派 IPv6 地址：
+ Amazon ECS 受管執行個體託管的任務正在使用版本 `1.45.0` 或更新版本的容器代理程式。如需如何檢查執行個體使用之代理程式版本以及視需要進行更新的相關資訊，請參閱 [更新 Amazon ECS 容器代理程式](ecs-agent-update.md)。
+ 此 `dualStackIPv6` 帳戶設定已啟用。如需詳細資訊，請參閱[透過帳戶設定使用 Amazon ECS 功能](ecs-account-settings.md)。
+ 您的任務是使用 `awsvpc` 網路模式。
+ 您的 VPC 與子網路已針對 IPv6 進行設定。組態包含在指定子網路中建立的網路介面。如需如何將 VPC 設定為雙堆疊模式的詳細資訊，請參閱《Amazon VPC 使用者指南》中的[遷移至 IPv6](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-migrate-ipv6.html) 和[修改您子網路的公有 IPv6 定址屬性](https://docs.aws.amazon.com/vpc/latest/userguide/vpc-ip-addressing.html#subnet-ipv6)。

# 主機網路模式
<a name="managed-instances-host-modes"></a>

在 `host` 模式下，任務會直接共用主機的網路命名空間。容器的聯網組態會與底層的 Amazon ECS 受管執行個體主機執行個體綁定，而該主機執行個體是您建立 Amazon ECS 受管執行個體容量提供者時透過 `networkConfiguration` 參數所指定。``

使用此網路模式存在重大的缺點。您不能在每台主機上執行多個任務的執行個體化。這是因為只有第一個任務可以繫結至 Amazon EC2 執行個體上所需的連接埠。使用 `host` 網路模式時，也無法重新對應容器連接埠。例如，如果應用程式需要接聽特定的連接埠號碼，則無法直接重新對應連接埠號碼。相反地，您必須透過變更應用程式組態來管理任何連接埠衝突。

使用 `host` 網路模式時也存在安全隱患。此模式允許容器模擬主機，並允許容器連線至主機上的私有迴路網路服務。

僅在需要直接存取主機聯網，或遷移需具備主機層級網路存取權的應用程式時，才使用主機模式。