AWS ECS簡單瞭解

ECS的介紹:

elastic container service (ECS):是一個高度可擴展的快速容器管理服務,能夠快速的運行,中止和管理docker集羣上的容器。nginx

ECS能夠在fargate上和EC2S上面啓動容器。web

利用ECS,能夠經過簡單的調用API的方式來啓動中止基於容器的應用程序,能夠從集中式服務獲取集羣狀態,而且能夠訪問許多熟悉的EC2功能。docker

能夠根據資源要求、隔離性策略和可用性要求使用ECS計劃容器在集羣中的放置。有了ECS,無需操做本身的集羣管理和配置管理系統,無需擔憂擴展管理基礎設施。網絡

ECS能夠用來建立一致的部署和構建體驗、管理和擴展批處理和提取-轉換-加載(ETL)工做負載以及在微服務模型上構建先進的應用架構。架構

ECS的功能:

ECS是一項區域服務,能夠在區域內的多個可用區中以高度可用的方式簡化正在運行的應用程序容器。能夠在新的或現有的VPC中建立ECS集羣,在集羣啓動而且運行後,能夠定義用於docker容器運行的指定鏡像的任務定義和服務。微服務

如下是使用fargate類型啓動的ECS環境的架構:ui

容器和映像

要在ECS中部署應用程序,必須構建應用程序組件以在容器中運行。spa

任務定義

任務定義是一種JSON格式的文本文件,它描述了構成應用程序的一個或多個容器(最多10個)。能夠稱之爲應用程序的藍圖。代理

任務定義爲應用程序指定了參數:server

要使用哪一種容器、哪一種啓動類型、應用程序打開的端口、與任務中容器使用哪些數據卷。

任務定義的特定參數取決於啓動類型。

如下是nginx web容器的啓動的任務定義實例(使用的是fargate啓動類型)

{ "family": "webserver", "containerDefinitions": [ { "name": "web", "image": "nginx", "memory": "100", "cpu": "99" }, ], "requiresCompatibilities": [ "FARGATE" ], "networkMode": "awsvpc", "memory": "512", "cpu": "256", }

任務和計劃

任務是集羣中任務定義的實例化。在ECS上建立任務定義後能夠指定集羣上運行的任務數量。

使用fargate啓動類型的任務,都具備本身的隔離邊界,不與其餘任務共享底層內核,CPU,內存或彈性網絡接口。

任務計劃程序負責將任務放到集羣中。

集羣

ECS運行任務時,須要將任務放到集羣上,這是對資源的邏輯分組。

當集羣中的任務使用fargate啓動類型時,集羣是ECS將管理集羣資源。當使用EC2啓動類型時,集羣是ECS管理的是一組容器實例。

ECS容器實例是運行了ECS容器代理的EC2實例。ECS在指定的註冊表中下載映像,而且在集羣中啓動映像。

容器代理

容器代理在ECS集羣上的每個基礎設施上運行。向ECS發送資源運行的任務定義和資源使用率的信息,而且在接受來自ECS請求時運行,中止容器。

相關文章
相關標籤/搜索