Amazon Elastic Container Service (Amazon ECS) 可讓您輕鬆地執行、擴展和保護 AWS 上的 Docker 容器應用程式。在本地封裝為容器的應用程式將以與 Amazon ECS 所管理的容器相同的方式部署和運行。使用 Amazon ECS 不需要安裝、操作和擴展自己的容器協調和叢集管理基礎設施,並且可以讓您專注於容器化應用程式的資源需要和可用性需求。

Amazon ECS 可讓您從單一容器擴展成跨數百個執行個體的數千個容器,卻不會讓執行應用程式的方式變得更複雜。您可以執行任何項目:無論是應用程式、批次任務或微型服務。Amazon ECS 能讓複雜的基礎設施變得簡單,因此您可以專注在設計、建構與執行容器化的應用程式。

有了 Amazon ECS 之後,您可以利用 AWS Fargate 全面管理基礎設施,並只專注於部署容器。或者,您可以選擇建立和終止 Docker 容器以檢視詳細的叢集狀態資訊,以便完全掌握和控制基礎伺服器叢集。您可以整合並使用自己的容器排程器,或將 Amazon ECS 連接至現有的軟體交付程序 (例如,持續整合與交付系統)。

AWS Fargate 支援

Amazon ECS 提供 AWS Fargate 技術。使用 AWS Fargate 之後,您不再需要選擇 Amazon EC2 執行個體類型、佈建以及擴展叢集,或者修補和更新每個伺服器。您無須擔心裝箱或主機分散等任務置放策略,而且會自動在可用區域之間平衡任務。Fargate 可代您管理容器的可用性。您只需定義應用程式的需求,在主控台或 CLI 選擇 Fargate 做為啟動類型,Fargate 便會負責處理執行容器時所有必要的擴展和基礎設施管理。

開發人員如需對基礎設施進行更精細的伺服器層級控制,Amazon ECS EC2 啟動類型可以讓您管理伺服器叢集並排定在伺服器上置放容器的時間。

開發

Docker 支援

Amazon ECS 支援 Docker,讓您可以執行和管理 Docker 容器。您在本機封裝成容器的應用程式,會在 Amazon ECS 上部署和執行,無須進行任何組態變更。

Windows 容器相容性

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

本機開發

Amazon ECS CLI 能夠讓您簡化本機開發體驗,以及在 Amazon ECS 上輕鬆設定和執行您的容器。Amazon ECS CLI 支援 Docker Compose,這是一種可用來定義和執行多容器應用程式的開放原始碼工具。您可以在開發電腦和生產環境套用同一個用來定義多容器應用程式的 Compose 定義。Amazon ECS CLI 是開放原始碼。下載 Amazon ECS CLI

儲存庫支援

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

管理

任務定義

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

以程式設計方式控制

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

容器部署

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

容器自動復原

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

排程

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

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

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

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

任務置放

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

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

任務置放政策不適用於 AWS Fargate 啟動類型。

聯網和安全

任務聯網

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

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

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

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

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

負載平衡

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

服務探索

Amazon ECS 包含服務探索,可讓您的容器化服務輕鬆探索並互相連接。

Amazon ECS 使用 Route53 自動命名 API 建立和管理服務名稱登錄,讓您能夠在程式碼以名稱參考服務,以及撰寫 DNS 查詢以便在執行時間將服務名稱解析為服務端點。

您可以在服務任務定義中指定運作狀態檢查條件,Amazon ECS 將確保服務查詢只會傳回運作狀態良好的服務端點。

安全性

Amazon ECS 可讓您為每個 ECS 任務指定 IAM 角色。這讓 Amazon ECS 容器執行個體基於「最低權限」存取政策擁有最少的角色,並讓您可以分別管理執行個體角色與任務角色。您還可以使用 Amazon CloudWatch Logs 查看指派給任務的 IAM 角色。

監控和記錄

監控

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 呼叫歷史記錄,以進行安全分析、資源變更追蹤以及合規稽核等工作。

了解 Amazon ECS 定價

瀏覽定價頁面
準備好開始使用了嗎?
註冊
還有其他問題嗎?
聯絡我們