什麼是 Amazon Elastic Container Service? - Amazon Elastic Container Service

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

什麼是 Amazon Elastic Container Service?

Amazon Elastic Container Service (Amazon ECS) 為全受管容器協同運作服務,可讓您輕鬆部署、管理和擴展容器化應用程式。Amazon ECS 是全受管服務,內建 AWS 組態和操作最佳實務。它與 AWS 和第三方工具集成,例如 Amazon 彈性容器註冊表和 Docker。這種整合可讓團隊能夠更輕鬆地專注於建置應用程式,而無需為環境分心。您可以在雲端和內部部署 AWS 區域 中執行和擴展容器工作負載,而不必擔心管理控制平面的複雜性。

Amazon ECS 術語和元件

Amazon ECS 有三層:

  • 容量 - 您的容器執行所在的基礎設施

  • 控制器 - 部署和管理在容器上執行的應用程式

  • 佈建 - 可用於與排程器連接以部署和管理應用程式和容器的工具

下圖顯示 Amazon ECS 層。

顯示容量、控制器和佈建層的圖表。

Amazon ECS 容量

Amazon ECS 容量是您的容器執行所在的基礎設施。以下是容量選項概觀:

  • AWS 雲端中的 Amazon EC2 執行個體

    您可以選擇執行個體類型、執行個體數量,以及管理容量。

  • 雲端中的 AWS 無伺服器 (AWS Fargate (Fargate))

    Fargate 是無伺服器的 pay-as-you-go 運算引擎。搭配使用 Fargate,您無需管理伺服器、處理容量規劃,或出於安全性而隔離容器工作負載。

  • 內部部署虛擬機器或伺服器

    Amazon ECS Anywhere 支援將外部執行個體 (例如內部部署伺服器或虛擬機器 (VM)) 註冊到 Amazon ECS 叢集。

容量可以位於下列任一資 AWS 源中:

  • 可用區域

  • 本機區域

  • Wavelength 區域

  • AWS 區域

  • AWS Outposts

Amazon ECS 控制器

Amazon ECS 排程器是管理您應用程式的軟體。

Amazon ECS 佈建

有多種佈建 Amazon ECS 的選項:

  • AWS Management Console - 提供 Web 介面,您可使用此介面來存取 Amazon ECS 資源。

  • AWS Command Line Interface (AWS CLI) — 為包括 Amazon ECS 在內的各種 AWS 服務提供命令。Windows、Mac 和 Linux 均支援此介面。如需詳細資訊,請參閱 AWS Command Line Interface

  • AWS SDK — 提供特定於語言的 API,並處理許多連接詳細信息。包括計算簽章、處理請求重試和錯誤處理。如需詳細資訊,請參閱 AWS 開發套件

  • Copilot - 提供開放原始碼工具,供開發人員在 Amazon ECS 上建置、發佈和操作可立即生產的容器化應用程式。如需詳細資訊,請參閱網站上的 GitHubCopilot

  • AWS CDK - 提供開放原始碼軟體開發架構,您可以使用該架構來建模,並使用熟悉的程式設計語言來佈建您的雲端應用程式資源。 AWS CDK 會透過 AWS CloudFormation以安全、可重複的方式佈建您的資源。

應用程式生命週期

下圖顯示應用程式生命週期及其如何與 Amazon ECS 元件搭配使用。

顯示容量、控制器和佈建層的圖表。

您必須架構應用程式,才能在容器上執行。容器是軟體開發的標準化單元,可容納軟體應用程式執行所需的所有一切。這包括相關代碼、執行時間、系統工具和系統庫。容器依據稱為映像的唯讀範本而建立。映像通常由 Dockerfile 建立。一個碼頭文件是一個明文文件,其中包含用於構建一個容器的說明。建置後,這些映像會存放在登錄檔(如 Amazon ECR) 中,可供下載。

建立並儲存映像後,您可以建立 Amazon ECS 任務定義。任務定義是您應用程式的藍圖。其是一種 JSON 格式的文字檔案,描述了構成應用程式的參數和一個或多個容器。例如,您可以使用其來指定作業系統的映像和參數、要使用的容器、要為您的應用程式開啟的連接埠,以及任務中的容器要使用的資料磁碟區。任務定義可用的特定參數取決於您特定應用程式的需求。

定義任務定義之後,您可以將其部署為叢集上的服務或任務。叢集是在註冊至叢集的容量基礎結構上執行的任務或服務的邏輯群組。

任務是在叢集內將任務定義執行個體化。您可以執行獨立任務,也可以將任務作為服務的一部分執行。您可以使用 Amazon ECS 服務在 Amazon ECS 叢集中同時執行和維護您所需的任務數量。其運作方式為,如果有任何任務因任何原因而出現故障或停止,Amazon ECS 服務排程器就會根據您的任務定義啟動另一個執行個體。這樣就可以取代該任務,從而在服務中保持所需的任務數量。

容器代理程式在 Amazon ECS 叢集內的每個容器執行個體上執行。代理程式會將目前正在執行的任務和您容器的資源使用率的相關資訊傳送至 Amazon ECS。只要接收到 Amazon ECS 的請求即開始和停止任務。

部署任務或服務後,您可以使用下列任何工具來監控部署和應用程式:

  • CloudWatch

  • 執行期監控