Amazon ECS 功能

Amazon Elastic Container Service (Amazon ECS) 是全受管容器協同運作服務,協助組織輕鬆部署、管理和擴展容器化應用程式。Amazon ECS 控制平面無版本且強勢,可與 AWS 環境的其他部分深度整合,為雲端執行容器的工作負載提供安全且易於使用的解決方案。Amazon ECS 可以使用 Amazon Elastic Compute Cloud (Amazon EC2)、AWS Fargate,甚至可以使用 Amazon ECS Anywhere 的內部部署基礎設施執行。

主要特色

AWS Fargate 內建至 Amazon ECS,這意味著您無需再擔心管理伺服器、處理容量規劃,或弄清楚如何隔離容器工作負載以確保安全。只要定義應用程式的需求,在主控台或命令列介面 (CLI) 中選取 AWS Fargate 作為啟動類型,AWS Fargate 就會處理跨彈性運算選項執行容器所需的所有擴展和基礎設施管理,並自動整合應用程式所需的其他支援 AWS 服務。

憑藉 Amazon ECS Anywhere,您可以使用熟悉的同一個 Amazon ECS 主控台和操作人員工具來管理內部部署容器工作負載,以便跨容器應用程式實現一致的體驗。您也可以在 AWS Outposts 上使用 Amazon ECS,來執行需要對內部部署系統實現特別低延遲的容器化應用程式。

Amazon ECS 原生與您已信任的「安全、身分、管理和管控」工具整合,可協助您快速、成功地投入生產。您可以為每個容器指派精密許可,從而在建置應用程式時提供高度隔離。以您期望從 AWS 取得的安全性和合規等級啟動您的容器。 此外,透過與 Amazon GuardDuty 整合,您可以在工作負載升級之前快速輕鬆地偵測外部威脅。

Amazon ECS 是一種全受管容器協調服務,內建 AWS 設定和操作最佳實務,且無需管理控制平面、節點或附加元件。其原生與 AWS 和第三方工具整合,可讓團隊更輕鬆地專注於建置應用程式,而不是環境。

開發

Amazon ECS 支援 Windows 容器的管理。Amazon ECS 優化的 Windows Amazon Machine Image (AMI) 提供了增強的執行個體和容器啟動時間效能,以及 CPU、記憶體使用率和保留指標的可見性。

AWS Copilot CLI 是一種工具,讓開發人員能夠在 Amazon ECS 和 AWS Fargate 上建置、發佈和操作可用於生產環境的容器化應用程式。Copilot 採用從基礎架構到持續交付的最佳實務,並透過便捷的命令列為客戶提供這些最佳實務。您還可以透過檢視服務的狀態或日誌,擴展或縮減生產服務,以及啟動新環境進行自動化測試來監控服務的運作狀態。 下載 AWS Copilot。

Amazon ECS 可與任何第三方託管的 Docker 映像檔儲存庫或可存取私有 Docker 登錄檔 (例如 Docker Hub) 和 Amazon Elastic Container Registry (ECR) 搭配使用。 您只需在任務定義中指定儲存庫,Amazon ECS 就會替應用程式擷取適合的影像。

管理

Amazon ECS 讓您能夠透過稱為「任務定義」的 JavaScript Object Notation (JSON) 範本來定義任務。您可以在任務定義中指定任務所需的一或多個容器,包括 Docker 儲存庫與影像、記憶體與 CPU 需求、共用的資料磁碟區以及容器互相連結的方式。您可以透過與該服務註冊的單一任務定義檔案啟動任意數量的任務。任務定義檔案也可讓您控制應用程式規格的版本。

Amazon ECS 提供一套簡易的 API 動作來整合和擴展服務。這些 API 可讓您建立和刪除叢集、註冊和取消註冊任務,以及啟動和終止 Docker 容器,還可以提供關於叢集及其執行個體狀態的詳細資訊。您也可以使用 AWS CloudFormation 佈建 Amazon ECS 叢集、註冊任務定義以及排定容器。

Amazon ECS 讓您能夠輕鬆將容器更新至新版本。您可以上傳應用程式任務定義的新版本,Amazon ECS 排程器會使用更新的影像自動啟動新容器,並停止執行舊版本的容器。Amazon ECS 會自動在關聯的 Application Load Balancer 註冊和取消註冊容器。

Amazon ECS 會自動復原運作狀態不佳的容器,以確保您擁有所需數量的容器來支援應用程式。

透過 Capacity Providers,您可以為容器化工作負載如何在不同類型的運算容量上執行定義靈活的規則,並管理容量的擴展。Capacity Providers 可以與 Amazon Elastic Compute Cloud (Amazon EC2) 和 AWS Fargate 一起使用。在執行任務和服務時,您可以將它們拆分到多個 Capacity Provider,從而啟用新功能,例如跨 Fargate 和 Fargate Spot 以預定義的拆分百分比執行服務。

Amazon Elastic Block Store (Amazon EBS) 是一項易於使用、可擴展、高效能的區塊儲存服務,可讓您為 Amazon ECS 和 AWS Fargate 部署佈建符合成本效益的儲存空間。您可以將所有 EBS 組態和功能與 Amazon ECS 上部署的容器工作負載搭配使用。

Amazon Elastic File System (Amazon EFS) 是一種簡單、可擴展、全受管的彈性檔案系統,可讓您透過您的 Amazon ECS 和 AWS Fargate 部署建置現代化應用程式,保留及共用資料與狀態。將 Amazon EFS 與容器搭配使用的所有方面 (包括連接) 都得到處理,無需執行任何管理。您只需專注於應用程式,而非基礎設施。 進一步了解持久性檔案儲存

排程與任務置放

Amazon ECS 包含多個排程策略,可根據您的資源需要 (例如,CPU 或 RAM) 與可用性需求,將容器置於各叢集。您可以透過可用的排程策略,排程批次任務、長期執行的應用程式和服務,以及協助程式程序。

Amazon ECS 任務排程可讓您執行進行工作的程序然後停止,像是批次處理任務。任務排程可自動從任務佇列開始任務,或根據您定義的時段開始任務。

進一步了解安排 Amazon ECS 任務 »

Amazon ECS 服務排程可讓您執行無狀態服務和應用程式。這種排程策略可確保持續執行指定的任務數,並在發生問題時重新開始任務。客戶可確保已在 Elastic Load Balancing 負載平衡器註冊任務,並且可以執行使用者為執行中任務定義的運作狀態檢查。

Amazon ECS 協助程式排程可在 ECS 叢集中選取的每個執行個體自動執行相同的任務。這樣可輕鬆執行為服務提供常用管理功能的任務,像是記錄、監控和備份。

Amazon ECS 可讓使用者根據執行個體類型、可用區域或使用者定義的自訂屬性等內建屬性,自訂任務在 Amazon EC2 執行個體叢集的置放方式。使用 environment = production 這類屬性標記資源、使用清單 API 動作尋找這些資源,以及使用 RunTask 和 CreateService API 動作排程這些資源的相關任務。

藉由 Amazon ECS,使用裝箱和分散等置放策略,進一步定義任務置放的位置。將政策鏈接在一起可執行更為精細的置放功能,無須編寫任何程式碼。

聯網

Amazon ECS Service Connect 簡化了 Amazon ECS 的服務探索、連線和流量觀察能力。它可讓您專注於應用程式程式碼,而不是網路基礎結構,能協助您更快地建構應用程式。您可以使用 ECS Service Connect 來定義服務端點的邏輯名稱,並在用戶端應用程式中使用它們來連線至相依性。ECS Service Connect 可協助您將流量傳送至運作狀態良好的端點,並在 ECS 主控台和 Amazon CloudWatch 中提供豐富的流量遙測。若是使用 ECS Service Connect,原生 ECS 部署將更加穩固,因其支援自動連接耗盡功能,可協助用戶端應用程式切換至新版本的服務端點,而不會遇到流量錯誤。

使用 ECS Service Connect,您可以:

• 只需一個步驟即可設定用戶端應用程式連線至其相依性的方式

• 使用邏輯命名編寫和操作彈性分散式應用程式

• 監控和分配 ECS 任務之間的流量,而無需部署和設定負載平衡器

• 更快地部署服務並提供包含應用程式的 ECS 微型服務的無縫整合

進一步了解如何將現有 Amazon ECS 服務從服務探索遷移至 ECS Service Connect »

Amazon ECS 已與 AWS Cloud Map 整合,以讓您的容器化服務易於彼此探索和連接。 AWS Cloud Map 是一種雲端資源探索服務,可讓您定義應用程式資源的自訂名稱。由於 Web 服務始終能發現這些動態變更資源的最新位置,因此這能提高您應用程式的可用性。

進一步了解如何將現有 Amazon ECS 服務從服務探索遷移至 ECS Service Connect »

Amazon ECS 支援 Docker 聯網且與 Amazon VPC 整合,可提供容器隔離。這可讓您控制容器與其他服務和外部流量連接的方式。Amazon ECS 提供四種可滿足不同使用案例需求的容器聯網模式讓您從中選擇:

任務聯網/awsvpc
此模式為每個執行中的 ECS 任務指派專用的彈性聯網界面,允許 VPC 中的容器完整聯網功能,就和 EC2 執行個體一樣。

橋接
此模式會建立 Linux 橋接以連接在本機虛擬網路主機上執行的所有容器,其可透過主機的預設網路連線存取。

主機
此模式直接將容器新增到主機的網路堆疊,在主機的網路上公開容器,沒有隔離。


此模式會停用容器的外部聯網

Amazon ECS 與 Elastic Load Balancing 整合,允許您使用 Application Load Balancer 或 Network Load Balancer 在容器之間分配流量。您可以指定要使用的任務定義和負載平衡器,Amazon ECS 會自動新增和移除負載平衡器的容器。在任務定義中指定動態連接埠,這麼做可為 EC2 執行個體上排程的容器提供一個未使用的連接埠。此外,使用以路徑為基礎的路由,與多個服務共享負載平衡器。

監控和記錄

Amazon ECS 可透過 Amazon CloudWatch 為您的容器和叢集提供監控功能。您可以根據任務定義、服務或叢集的分組,監控執行中任務的平均和彙總 CPU 與記憶體使用率。設定 CloudWatch 警示在需要擴展或縮小容器或叢集規模時提醒您。

Amazon ECS 能夠記錄所有的 Amazon ECS API 呼叫,並透過 AWS CloudTrail 將日誌檔案交付給您。所記錄的資訊包括 API 發起人的身分、API 呼叫的時間、API 發起人的來源 IP 地址、請求參數以及 Amazon ECS 傳回的回應元素。CloudTrail 可為您提供來自 AWS 管理主控台、AWS 開發套件和 AWS CLI 的 API 呼叫歷史記錄,以進行安全分析、資源變更追蹤以及合規稽核等工作。

AWS Config 與 Amazon ECS 整合,可讓您檢視 AWS 帳戶中 AWS 資源的組態。AWS Config 可讓使用者監控和追蹤資源的設定方式、它們如何相互相關,以及組態和關係如何隨時間變化。AWS Config 可讓您簡化合規和安全性、操作疑難排解以及資源管理。

混合部署

您可以在 AWS Outposts 上使用 Amazon ECS,來執行需要對內部部署系統實現特別低延遲的容器化應用程式。Outposts 是一項完全託管的服務,可將 AWS 基礎設施、AWS 服務、API 和工具擴展至幾乎任何連網網站。借助 Outposts 上的 Amazon ECS,您可以像在雲端中管理容器一樣輕鬆地管理內部部署容器。

憑藉 Amazon ECS Anywhere,您可以使用熟悉的同一個 Amazon ECS 主控台和操作人員工具來管理內部部署容器工作負載,以便跨容器應用程式實現一致的體驗。AWS Systems Manager (SSM) 自動整合,並安全地在內部部署硬體和 AWS 控制平面之間建立信任。

進一步了解 Amazon ECS Anywhere »