pay*_*ike 90 amazon-ec2 amazon-web-services amazon-ecs
我刚刚开始使用AWS EC2,我知道EC2就像一台远程计算机,我几乎可以做任何我想做的事情.然后我找到了ECS,我知道它使用的是docker,但却被这两者之间的关系搞糊涂了.
ECS只是EC2中的docker安装吗?如果我已经有EC2,那么我启动一个ECS,这是否意味着我有两个实例?
Nab*_*med 136
你的问题
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- 根据计算机集群的基本定义,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 ECS优化的AMI,已经有Amazon ECS容器代理.在启动新EC2实例期间,代理会自动将其注册到默认ECS群集.
在集群中的每个实例(实例)上运行的容器代理将有关实例的当前运行任务和资源利用率的信息发送到Amazon ECS,并在收到来自Amazon ECS的请求时启动和停止任务.有关更多信息,请参阅Amazon ECS容器代理.一旦设置,每个创建的容器实例(任何机器/节点)都将成为swarm中的实例.EC2Amazon ECSEC2Amazon ECS
有关更多信息 - 请阅读本文档中的步骤10:启动Amazon ECS容器实例:
为容器实例选择AMI.您可以选择Amazon ECS优化的AMI或其他操作系统,例如CoreOS或Ubuntu.如果您未选择Amazon ECS优化的AMI,则需要按照安装Amazon ECS容器代理中的过程进行操作.
默认情况下,容器实例将启动到默认群集中.如果要启动到您自己的群集而不是默认群集,请选择"高级详细信息"列表并将以下脚本粘贴到"用户数据"字段中,将your_cluster_name替换为群集名称.
Run Code Online (Sandbox Code Playgroud)#!/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中存储容器实例配置.
Run Code Online (Sandbox Code Playgroud)#!/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的资源允许).
sub*_*rwa 46
简而言之,ECS是经理,而EC2实例就像雇员。该经理(ECS)之下的所有雇员(EC2)都可以执行“ Docker”任务,并且经理也非常了解“ Docker”。因此,无论何时需要“泊坞窗”资源,都可以在Manager面前看到。经理已经拥有每位员工的状态(EC2)决定应由哪位员工执行任务。
现在,回到您的问题,没有“雇员”的经理没有意义。
Yar*_*dan 28
EC2允许您启动个别实例,您可以将其用于任何您喜欢的任何内容.ECS是一个容器服务,这意味着它将启动准备启动容器应用程序的实例.两种服务之间的主要区别在于,使用EC2,您必须以您选择的任何方法(手动,使用CM工具或任何其他方式)单独管理每个实例 - 部署应用程序并自行维护服务器之间的连接.ECS允许您启动一组计算机,这些计算机将充当容器应用程序的部署基础,允许您将群集中的所有实例视为可用于容器工作负载的一个大实例.
并回答您的问题 - 您可以启动一个没有实例的ECS集群,但它将无法在其上运行任何内容.在ECS群集中注册EC2实例后,容器就可以在其中运行.所以底线是 - 你可以只用一个实例来使用ECS和EC2,但这不是这些服务的实际用例.
小智 7
ECS 代表“弹性容器服务”。它是一个容器编排服务。
假设您有一个正在运行的 Docker 容器,并且您决定更新 Docker 映像。如果您有一个容器正在运行,那么停止、拉取和运行是一项相对容易的任务,但如果您有 10 到 100 个容器正在运行,则执行相同的步骤会很乏味。
借助AWS ECS,您可以拥有这种控制权。您指定是否需要更新并提供最新的映像 ID,ECS将为您处理停止、拉取和运行等命令。它还提供了更多附加功能,请参阅 - https://aws.amazon.com/ecs/features/
EC2 代表“弹性计算云”。简单来说,它是一个虚拟机。
ECS使用EC2来运行您的容器。
“这些正在运行的 docker 容器(任务)在 EC2 实例上运行”。
简单来说,弹性容器服务(ECS)是一个Docker容器编排服务。
您可以要求它运行一个或多个 Docker 映像,作为具有自动扩展能力的“服务”或作为临时“任务”。
服务和任务在“集群”上运行。最初,集群是一组一个或多个运行 ECS 集群代理的预配置 EC2 服务器。Cluster Agent 将调度 EC2 服务器上的容器。这些 EC2 服务器显示在您的 EC2 实例列表中,并按正常的 EC2 每分钟成本收费 - 您甚至可以像任何普通 EC2 服务器一样通过 SSH 连接到它们。如果您想要更多容量来运行更多服务或任务,或者如果您想要抵御 EC2 故障的能力,那么您需要更多 EC2 服务器。
2017 年 11 月左右,AWS 添加了 ECS Fargate。现在,集群可以在不配置 EC2 节点的情况下运行“无服务器”。您只需定义您的任务或服务运行所需的 CPU 和内存量,这意味着您只需为 CPU 和内存时间而不是 EC2 付费。
ECS 是一个容器编排器,就像 Kubernetes 或 Docker swarm 一样,EC2 是一个用于创建虚拟机的 Amazon 弹性计算云平台。ECS 允许您在无需运行任何虚拟机的无服务器环境 (Fargate) 或在 EC2 实例上托管容器的非托管环境中运行容器。
| 归档时间: |
|
| 查看次数: |
49579 次 |
| 最近记录: |