AWS ECS 跨多个实例处理 DNS 子域

AWS ECS handling DNS subdomains across multiple instances

所以我正在尝试让我的 AWS 设置与 DNS 一起工作。

我有 2 个实例(目前)。 我有 4 个任务定义。其中 3 个需要 运行 在端口 80/443 上,但是都在不同的子域上。

目前,如果我 stop/start 一个任务,它可能会在我的任何一个实例上结束。这会导致子域 DNS 可能被指向错误的位置。

我想我需要设置某种负载均衡器来指向 DNS,但不确定如何让它路由到正确的任务。

所以我的问题:

  1. 我需要一个负载均衡器,还是每个 'task / subdomain' 一个?
  2. 我如何处理从设置的源端口到任意数量的目标端口之一的端口(如果我最终有多个容器运行执行同一任务)
  3. 我是不是把这个复杂化了很多,还是有更简单的方法来实现这个?
  1. 我需要一个负载均衡器,还是每个 'task / subdomain' 一个?

您可以有一个应用程序负载均衡器和三个目标组 Api、站点和 Web 应用程序。然后,您可以在负载均衡器侦听器中执行基于规则的路由,如下面的屏幕截图所示。

参考:http://docs.aws.amazon.com/elasticloadbalancing/latest/application/listener-update-rules.html

然后您可以将域 www.domain.com 和 app.domain.com 映射到负载平衡器

  1. 我如何处理从设置的源端口到任意数量的目标端口之一的端口(如果我最终有多个容器 运行 相同的任务)

当您在 ECS 中为您的任务定义创建服务时,您可以使用您创建的目标组配置负载平衡。

参考:http://docs.aws.amazon.com/AmazonECS/latest/developerguide/create-service.html(查看 "Configuring Your Service to Use a Load Balancer")