本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
從 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 閘道可以與哪些目的地通訊。您也無法限制後端層可以通訊的目的地,而不會中斷 VPC 的所有傳出通訊。
-
NAT 閘道會針對傳遞的每個 GB 資料收取費用。如果您將 NAT 閘道用於下列任何操作,則會向您收取每 GB 頻寬的費用:
-
從 Amazon S3 下載大型檔案
-
對 DynamoDB 執行大量資料庫查詢
-
從 Amazon ECR 提取映像
此外,NAT 閘道支援 5 Gbps 的頻寬,並自動擴展至 45 Gbps。如果您透過單一 NAT 閘道路由,需要非常高頻寬連線的應用程式可能會遇到網路限制。作為解決方法,您可以將工作負載分割到多個子網路,並將自己的 NAT 閘道提供給每個子網路。
-
AWS PrivateLink
AWS PrivateLink 可在 VPCs、 AWS 服務和內部部署網路之間提供私有連線,而不會將您的流量暴露到公有網際網路。
VPC 端點允許 VPC 與支援的 AWS 服務和 VPC 端點服務之間的私有連線。VPC 與另一個服務之間的流量都會保持在 Amazon 網路的範圍內。VPC 端點不需要網際網路閘道、虛擬私有閘道、NAT 裝置、VPN 連線或 AWS Direct Connect 連線。VPC 中的 Amazon EC2 執行個體不需要公有 IP 地址,即可與 服務中的資源通訊。
下圖顯示當您使用 VPC 端點而非網際網路閘道時, AWS 服務通訊的運作方式。 會在子網路內 AWS PrivateLink 佈建彈性網路介面 (ENIs),而 VPC 路由規則則用來透過 ENI 將任何通訊直接傳送至目的地 AWS 服務。此流量不再需要使用 NAT 閘道或網際網路閘道。

以下是與 Amazon ECS 服務搭配使用的一些常見 VPC 端點。
許多 AWS 其他服務都支援 VPC 端點。如果您大量使用任何 AWS 服務,您應該查詢該服務的特定文件,以及如何為該流量建立 VPC 端點。