【问题标题】:Configuring application port for AWS Fargate为 AWS Fargate 配置应用程序端口
【发布时间】:2020-04-12 15:49:58
【问题描述】:

我正在 AWS 上创建 Fargate 任务,其中涉及创建任务定义和负载均衡器。我不得不在几个地方指定端口号和协议:

  1. 创建任务定义时:我必须配置容器端口和协议。
  2. 创建服务时,我必须指定目标组或生产侦听器端口。
  3. 在创建负载平衡器时,我必须配置端口:

    一个。侦听器(这是一个使用您配置的协议和端口检查连接请求的进程)。

    b.我必须创建一个目标组并对其进行配置(使用指定的协议和端口将请求路由到目标组中的目标)

我想知道所有这些端口是如何相互关联的。

我的容器是在端口 8000 上运行的 Web 服务器。我只想有一个负载均衡器来侦听端口 80,并将流量路由到侦听端口 8000 的容器。侦听器和侦听器之间的关联是什么?目标组?为什么我必须为服务指定目标组,考虑到我已经在负载均衡器中使用它,并且它已经添加到负载均衡器中?如果我将它们放在不同的目标组中,而不是添加到该服务中的负载均衡器,会发生什么?如果我有所有这些路由,为什么还要在任务定义中指定 Container 端口和协议?

提前致谢!

【问题讨论】:

    标签: amazon-web-services aws-fargate


    【解决方案1】:

    你应该可以通过指定端口 4 次来达到你想要的结果::

    1. Port 为您的目标群体。这是您的目标(即容器)接收流量的端口。在您的情况下,这将是端口 8000

    2. Port 用于负载均衡器监听。这是负载平衡器正在侦听的端口。在你的情况下端口 80

    3. ContainerPort任务定义中。这是实际您的应用将在其上侦听连接的端口。在您的情况下,它将是 8000

    4. ContainerPort。容器上与负载均衡器关联的端口。此端口必须与任务定义中的 containerPort 相对应服务中的任务正在使用。在您的情况下,它将是 8000

    ALB 上的listener 在端口80 上接收流量,通常(您可以决定如何处理它)它将流量转发到target group 中的目标。该组将由将处理您的请求的目标组成。在您的情况下,它将是 ECS 服务,其中包含在端口 8000 上侦听的任务。一个目标组中可以有多个目标。在这种情况下,routing algorithm 用于为给定请求选择特定目标。

    附言 目前无法在单个 SQ 问题中回答您的所有子问题。但我希望我能写的能对你有所帮助。

    【讨论】:

      猜你喜欢
      • 2019-02-08
      • 2021-04-03
      • 2020-03-21
      • 2014-01-31
      • 2018-06-15
      • 2018-06-27
      相关资源
      最近更新 更多