從 VPC 內部將 Amazon ECS 連線至 AWS 服務的最佳實務 - Amazon Elastic Container Service

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

從 VPC 內部將 Amazon ECS 連線至 AWS 服務的最佳實務

為使 Amazon ECS 正常運作,執行於各主機上的 Amazon ECS 容器代理程式必須與 Amazon ECS 控制平面保持通訊。如果要將容器映像儲存於 Amazon ECR 中,Amazon EC2 主機必須與 Amazon ECR 服務端點以及儲存映像層的 Amazon S3 通訊。如果您將其他 AWS 服務用於容器化應用程式,例如保留存放在 DynamoDB 中的資料,請再次檢查這些服務是否也具有必要的聯網支援。

NAT 閘道

使用 NAT 閘道是確保您的 Amazon ECS 任務可以存取其他 AWS 服務最簡單的方式。如需有關此方法的詳細資訊,請參閱私有子網路和 NAT 閘道

此圖表顯示使用 NAT 閘道的網路架構。

採用此方法具有以下劣勢:

  • 您無法限制 NAT 閘道可與哪些目的地通訊。若不中斷 VPC 的所有傳出通訊,您也無法限制後端層可與哪些目的地通訊。

  • NAT 閘道會針對每 GB 的傳輸資料量收取費用。如果將 NAT 閘道用於下列任何操作,則需為每 GB 的頻寬付費:

    • 從 Amazon S3 下載大型檔案

    • 對 DynamoDB 執行高頻率資料庫查詢

    • 從 Amazon ECR 提取映像

    此外,NAT 閘道支援 5 Gbps 的頻寬,並可自動向上擴展至 45 Gbps。如果您透過單一 NAT 閘道進行路由,需要非常高頻寬連線的應用程式可能會遇到聯網限制。作為替代方案,您可以將工作負載分散至多個子網路,並為每個子網路設定專屬的 NAT 閘道。

AWS PrivateLink 可在 VPCs、 AWS 服務和內部部署網路之間提供私有連線,而不會將您的流量暴露到公有網際網路。

VPC 端點可讓您的 VPC 與受支援的 AWS 服務及 VPC 端點服務之間進行私有連線。VPC 與另一個服務之間的流量都會保持在 Amazon 網路的範圍內。VPC 端點不需要網際網路閘道、虛擬私有閘道、NAT 裝置、VPN 連線或 Direct Connect 連線。VPC 中的 Amazon EC2 執行個體不需要公有 IP 位址,即可與服務中的資源進行通訊。

下圖顯示當您使用 VPC 端點而非網際網路閘道時, AWS 服務通訊的運作方式。 會在子網路內 AWS PrivateLink 佈建彈性網路介面 (ENIs),而 VPC 路由規則則用來透過 ENI 將任何通訊直接傳送至目的地 AWS 服務。此類流量不再需要經過 NAT 閘道或網際網路閘道。

顯示使用 之網路架構的圖表 AWS PrivateLink

下列是與 Amazon ECS 服務搭配使用的部分常見 VPC 端點。

許多 AWS 其他服務都支援 VPC 端點。若頻繁使用某項 AWS 服務,您應查閱該服務的專屬文件,了解如何為其流量建立 VPC 端點。