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

问题描述

我以前使用过AWS ECS。我了解ECS群集与ECS服务与ECS任务之间的基本概念。 何时我应该创建一个新集群而不是重新使用现有的ECS集群并在其中创建新服务。

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

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

解决方法

根据我的经验,全新的集群适用于不同的环境,不同的应用程序。

基本上,您可以将所有应用程序和环境包装到1个群集中。这与您的编码有关。但是很难维护所有滚动更新,...

,

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

使用不同的 EC2 群集进行服务的原因之一是分隔。您不同的应用程序可能具有不同的重要性级别,通常您不希望将不重要的测试服务与生产级别的服务混合使用。因此,您可以将它们分为不同的群集,以降低意外配置的风险。此外,不同的EC2群集可以具有不同的capacity providers实例类型。因此很明显,您将针对不同的需求创建不同的集群。

对于 Fargate ,使用不同群集的原因尚不清楚。当然,您的的分离是将开发服务中的生产类型服务与拥有不同集群的重要因素之一。另一个原因(也适用于EC2)是服务分组。您只能将一个Fargate群集用于按需服务(Fargate容量提供商),而仅将第二个群集用于现货服务(Fargate-spot容量提供商);即使如此,您也可以在单个群集中同时使用它们。

对于EC2和Fargate,您可以使用 IAM 管理对它们的访问。这意味着不同的集群可以具有允许管理它们的不同人员。您可以基于集群在IAM策略中创建ECS conditions,从而启用了此功能。因此,例如,您可以让初级开发人员访问初级集群,但是通过IAM条件禁止他们在其他集群上运行。

相关问答

依赖报错 idea导入项目后依赖报错,解决方案:https://blog....
错误1:代码生成器依赖和mybatis依赖冲突 启动项目时报错如下...
错误1:gradle项目控制台输出为乱码 # 解决方案:https://bl...
错误还原:在查询的过程中,传入的workType为0时,该条件不起...
报错如下,gcc版本太低 ^ server.c:5346:31: 错误:‘struct...