AWS ECS - 创建新集群或重用现有集群并创建新服务时应考虑哪些因素

n00*_*00b 6 amazon-web-services amazon-ecs

我之前使用过AWS ECS。我了解 ECS 集群、ECS 服务和 ECS 任务之间的基本概念。我还没有完全弄清楚的是,什么时候应该创建一个新的集群,而不是重新使用现有的 ECS 集群并在其中创建一个新服务。

举一个更具体的例子,如果我有 2 个微服务,在决定是否使用新的 ECS 集群还是仅为这 2 个微服务创建新的 ECS 服务时,应该考虑哪些因素?我唯一能想到的是,我是否想跨 ECS 服务重复使用集群内的 ec2 实例。即,将更多容器压缩到 EC2 实例上。但是,如果我使用 Fargate,那么这似乎不是一个因素。

我很想知道我忽略了哪些因素以及人们在现实世界中遇到了哪些因素。

Mar*_*cin 4

您已经部分回答了自己的问题 - 对于 EC2 启动类型,您可以重复使用实例。一个容器实例只能注册到一个集群。因此,如果您想尽可能多地压缩容器实例,您可以在多个服务中重复使用它们。

使用不同的EC2集群来提供服务的原因之一是分离。您的不同应用程序可能具有不同的重要性级别,通常您不希望将不重要的测试服务与生产级别的服务混合在一起。因此,您可以将它们分离到不同的集群,以降低意外配置的风险。此外,不同的EC2集群可以有不同的容量提供者和实例类型。显然,您会根据不同的要求创建不同的集群。

对于Fargate来说,不同集群的原因并不那么清楚。当然,将生产类型服务与开发服务分开是拥有不同集群的重要因素之一。另一个原因是服务分组,这也适用于 EC2。您可以拥有一个仅用于按需服务(Fargate 容量提供商)的 Fargate 集群,第二个仅用于现货服务(Fargate-spot 容量提供商);尽管如此,您可以在单个集群中使用两者。

对于 EC2 和 Fargate,您可以使用IAM管理对它们的访问。这意味着不同的集群可以有不同的人来管理它们。这是因为您可以在基于集群的 IAM 策略中创建ECS 条件。因此,例如,您可以让初级开发人员访问初级集群,但通过 IAM 条件禁止他们在其他集群上进行操作。