2016-11-13 104 views
20

我剛剛開始使用AWS EC2,我明白EC2就像是一臺遠程計算機,我可以做幾乎所有我想做的事情。然後我發現ECS,我知道它使用碼頭工人,但被這兩者之間的關係所困惑。Amazon ECS和Amazon EC2有什麼區別?

ECS只是一個碼頭安裝在EC2? 如果我已經有EC2,那麼我開始一個ECS,這是否意味着我有兩個實例?

回答

12

EC2允許你啓動你可以用於任何你喜歡的個人實例。 ECS是一個容器服務,這意味着它將啓動準備啓動容器應用程序的實例。 這兩種服務之間的主要區別在於,通過EC2,您必須以您選擇的任何方法(手動,使用CM工具或任何其他方式)分別管理每個實例 - 部署應用程序並自行維護服務器之間的連接。 ECS允許您啓動一組機器作爲您的容器應用程序的部署基礎,從而允許您將集羣中的所有實例視爲可用於您的容器工作負載的一個大實例。

並回答你的問題 - 你可以啓動一個沒有實例的ECS集羣,但它不能運行任何東西。在ECS羣集內註冊EC2實例後,容器就可以在其中運行。因此,底線是 - 您只能將ECS和EC2同時用於一個實例,但這不是這些服務的實際使用情況。

36

你的問題

是ECS只是一個碼頭工人在EC2安裝?如果我已經有一個EC2,那麼我 啓動一個ECS,這是否意味着我有兩個實例?

AWS ECSEC2實例只是邏輯分組(簇)和ECS行爲的一切EC2實例一部分Docker主機即ECS可以發送命令到它們(EC2)推出的容器。 如果您已經擁有EC2,然後啓動ECS,您仍然只有一個實例。如果您通過安裝AWS ECS Container Agent將EC2添加/註冊到ECS,它將成爲羣集的一部分,但仍是EC2的單個實例。

未註冊任何EC2(添加到羣集中)的Amazon ECS毫無用處。


TL; DR

概述

  • EC2 - 是一個簡單的遠程(虛擬)機。
  • ECS代表EC2 Cluster Service - 爲每computer clusterECS基本定義基本上是 EC2機/實例的邏輯分組。從技術上講ECS僅僅是一種 配置爲您EC2 實例(S)資源,即存儲,內存,CPU的高效利用和管理等

爲了進一步簡化它,如果你已經推出一個Amazon ECS沒有EC2實例添加到它,這是沒有好處,即你不能做任何事情。 ECS只有在向其中添加一個(或多個)EC2實例時纔有意義。

這裏的下一個令人困惑的事情是容器項 - 這是不是完全虛擬化機實例,並多克爾是一個技術,我們可以用它來創建容器實例。 Docker是一個可以在我們的機器上安裝的實用程序,它使它成爲一個Docker主機,在此主機上,您可以創建容器(與虛擬機相同 - 但重量更輕)。綜上所述,ECS正要EC2實例的集羣,並使用Docker實例對這些(EC2)集裝箱/實例/虛擬機的主機

您只需要啓動一個ECS,並根據需要向其註冊/添加儘可能多的EC2實例。您可以添加/註冊EC​​2實例,只需要您的EC2實例/計算機上運行的Amazon ECS Container Agent,可以手動或直接使用特殊的AMI(Amazon Machine Image)即Amazon ECS優化的AMI,它已經具有亞馬遜ECS容器代理。在啓動新的EC2實例期間,代理自動將其註冊到默認的ECS羣集。

容器劑一個Amazon ECS簇內的每個實例(EC2實例)的運行將關於實例的當前正在運行的任務和資源利用率亞馬遜ECS,並開始信息並停止每當收到從Amazon的請求的任務ECS。有關更多信息,請參閱Amazon ECS Container Agent。一旦設置,每個創建的容器實例(無論EC2機器/節點)將成爲Amazon ECS的羣中的實例。


欲瞭解更多信息 - 從這個文檔閱讀第10步:Launching an Amazon ECS Container Instance

選擇一個AMI你容器實例。您可以選擇Amazon ECS優化的AMI或其他操作系統,如CoreOS或 Ubuntu。如果您不選擇Amazon ECS優化的AMI,則需要按照Installing the Amazon ECS Container Agent中的步驟 。

默認情況下,您的容器實例啓動到您的默認 集羣。如果要啓動到自己的集羣,而不是 默認情況下,選擇高級詳細列表及以下 腳本粘貼到用戶數據領域,隨着集羣的 名稱替換your_cluster_name。

#!/bin/bash 
echo ECS_CLUSTER=your_cluster_name >> /etc/ecs/ecs.config 

或者,如果你有一個ecs。配置文件並已啓用 Amazon S3只讀訪問您的容器實例角色,選擇 高級詳細信息列表並將以下腳本粘貼到用戶 數據字段中,將your_bucket_name替換爲您的存儲桶的名稱以 安裝AWS CLI並在啓動時寫入您的配置文件。 注意有關此配置的更多信息,請參閱在Amazon S3中存儲 容器實例配置。

#!/bin/bash 
yum install -y aws-cli 
aws s3 cp s3://your_bucket_name/ecs.config /etc/ecs/ecs.config 

只是爲了進一步澄清這一點 - 你可以不ECS創建你的單身EC2實例的容器。安裝任何容器化技術,即Docker並運行create container命令,將EC2設置爲Docker主機,並根據需要設置儘可能多的容器(或儘可能多地容納EC2的資源)。

+7

ECS不代表彈性容器服務嗎? – lfk