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

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

什麼是 Amazon Elastic Container Service?

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

Amazon ECS術語和元件

Amazon 有三個圖層ECS:

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

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

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

下圖顯示 Amazon ECS層。

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

Amazon ECS容量

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

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

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

  • AWS 雲端中的無伺服器 (AWS 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) — 為廣泛的 AWS 服務提供命令,包括 Amazon ECS。Windows、Mac 和 Linux 均支援此介面。如需詳細資訊,請參閱AWS Command Line Interface

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

  • Copilot — 為開發人員提供開放原始碼工具,以在 Amazon 上建置、發行和操作生產就緒的容器化應用程式ECS。如需詳細資訊,請參閱 GitHub網站上的 Copilot

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

應用程式生命週期

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

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

您必須建構您的應用程式,以便它們可以在容器上執行。容器是軟體開發的標準化單元,可容納軟體應用程式執行所需的所有一切。這包括相關代碼、執行時間、系統工具和系統庫。容器依據稱為映像的唯讀範本而建立。映像通常由 Dockerfile 建立。Dockerfile 是純文字檔案,其中包含建置容器的指示。建置這些映像之後,這些映像會存放在登錄檔中,例如可從ECR中下載的 Amazon。

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

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

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

容器代理程式會在 Amazon ECS叢集內的每個容器執行個體上執行。代理程式會將目前執行中的任務和資源使用率的相關資訊傳送至 Amazon ECS。它會在收到來自 Amazon 的請求時啟動和停止任務ECS。

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

  • CloudWatch

  • 執行期監控