转载:https://www.coder.work/article/6475582
我刚刚开始使用AWS EC2。我知道EC2就像一台远程计算机,在其中我可以完成几乎所有我想做的事情。然后我了解了ECS。我知道它使用Docker,但是我对这两者之间的关系感到困惑。
ECS只是EC2中的Docker安装吗?
如果我已经有EC2并启动了ECS,这是否意味着我有两个实例?
最佳答案
你的问题
ECS只是EC2中的一个docker安装吗?如果我已经有EC2,那么我
启动ECS,是否意味着我有两个实例?
否。AWS ECS
只是EC2
实例的逻辑分组(集群),并且EC2
的所有ECS
实例部分都充当Docker
主机,即ECS可以发送命令以在其上启动容器(EC2
)。
如果您已经拥有EC2,然后启动ECS,则您仍将拥有一个实例。如果您将EC2添加/注册(通过安装AWS ECS容器代理)到ECS,它将成为集群的一部分,但仍是EC2的单个实例。
没有注册任何EC2(添加到集群)的Amazon ECS毫无用处。
TL; DR
概述EC2
-只是一个远程(虚拟)计算机。ECS
代表 Elastic Container Service
-根据computer cluster的基本定义, ECS
基本上是EC2
机器/实例。从技术上讲ECS
仅是
配置以有效使用和管理EC2
实例资源,即存储,内存,CPU等
为了进一步简化,如果您启动了一个Amazon ECS
且未添加EC2
实例,那么它毫无用处,即您无能为力。 ECS
仅在将一个(或多个)EC2
实例添加到其中后才有意义。
下一步令人困惑的是容器术语-这不是完全虚拟化的机器实例,而 Docker 是我们可以用来创建容器实例的一项技术。 Docker
是一个实用程序,您可以将其安装在我们的计算机上,使其成为Docker
主机,并且可以在该主机上创建容器(与虚拟机相同,但更轻巧)。综上所述, ECS
与EC2实例的群集有关,并使用Docker
实例化这些主机(EC2
)主机上的容器/实例/虚拟机。
您需要做的就是启动ECS
,并根据需要向其注册/添加尽可能多的EC2
实例。您可以添加/注册EC2实例,您所需要的只是在EC2实例/机器上运行的Amazon ECS容器代理,可以手动或直接使用特殊的AMI(Amazon Machine Image)来完成,即Amazon ECS优化的AMI,它已经具有Amazon ECS容器代理。在启动新的EC2实例期间,代理会自动将其注册到默认ECS集群。
在EC2
集群内的每个实例(Amazon ECS
实例)上运行的容器代理将有关实例当前正在运行的任务和资源利用率的信息发送到Amazon ECS,并在收到Amazon ECS的请求时启动和停止任务。有关更多信息,请参见Amazon ECS Container Agent。设置后,每个创建的容器实例(无论EC2
机器/节点如何)都将是Amazon ECS
群中的一个实例。
有关更多信息–请阅读此文档中的步骤10:Launching an Amazon ECS Container Instance:
为您的容器实例选择一个AMI。您可以选择亚马逊
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
或者,如果您在Amazon S3中有一个ecs.config文件并已启用
以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
为了进一步说明,您可以在没有EC2
的单个ECS
实例上创建容器。安装任何容器化技术,即Docker
并运行create container命令,将EC2
设置为Docker
主机,并根据需要拥有尽可能多的Docker
容器(或EC2
的资源允许的数量)。