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

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

什麼是 Amazon Elastic Container Service?

Amazon 彈性容器服務 (AmazonECS) 是全受管的容器協調服務,可協助您輕鬆部署、管理和擴展容器化應用程式。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— 提供可用於訪問 Amazon ECS 資源的 Web 界面。

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

  • AWS SDKs-提供特定語言,APIs並處理許多連接詳細信息。包括計算簽章、處理請求重試和錯誤處理。如需詳細資訊,請參閱AWS SDKs

  • 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

  • 執行期監控