在Amazon ECS中正确利用AWS CloudMap DNS SRV记录服务发现

时间:2019-03-26 10:27:31

标签: amazon-ecs

我们当前正在使用Amazon ECS部署使用NATS流和Jaeger跟踪的定制应用程序。我们有多个容器实例本身不提供服务,因此可以在主机端口映射变体中运行而没有问题。

我的问题是我想将多个服务(如Elasticsearch或NATS)设置为集群应用程序。为了在集群中运行这些服务,它们必须能够发现其他实例。 需要群集支持的容器的第一个选项是在服务启动并加入相应群集时,使用awsvpc网络模式通过DNS A记录提供持久的查找方法。 尽管由于静态主机到容器端口的映射以及使用DNS A记录查找的awsvpc实例的数量受到ENI的限制,但由于每个EC2实例只能运行一个容器实例,因此该解决方案不灵活。一旦我们在一个较小的整体集群中运行了多个集群服务,这将成为一个问题。 仅为了使更多的ENI能够使用更多的EC2实例是不可行的,因为ec2群集实例通常不会承受沉重的负担。

我的最佳情况是利用已经可用的DNS SRV记录来启动容器中的群集服务,并使用所述SRV记录进行动态发现。但是,大多数应用程序都不支持该功能。

大规模使用ECS的人们如何解决此问题?他们是否只是启动了更多的EC2实例,即使在负载方面这不是必需的?

由于ECS的设计方式,这是否只是一个普遍的问题?

您可以使用可以发现其他服务并充当主容器服务代理的Sidecar容器吗?

我花了大量时间阅读AWS中的文档,并且它们也没有提供部署集群容器应用程序的最佳实践。在我看来,好像我不得不使用awsvpc来实现它。

0 个答案:

没有答案