【问题标题】:AWS ECS: Is it possible to make a scheduled ecs task accessible via ALB?AWS ECS:是否可以通过 ALB 访问计划的 ecs 任务?
【发布时间】:2021-12-26 15:32:11
【问题描述】:

我当前的 ECS 基础架构的工作方式如下:ALB -> ECS Fargate --> ECS 服务 -> ECS 任务。 现在我想用 Scheduled ECS 任务替换正常的 ECS 任务。但是我找不到将计划的 ECS 任务连接到服务的方法,从而使其可以通过 ALB 访问。这不可能吗?

提前感谢您的回答。

【问题讨论】:

    标签: amazon-web-services amazon-ecs terraform-provider-aws aws-fargate


    【解决方案1】:

    计划的 ECS 任务是使用 RunTask API 启动的一次性任务,并且与 ALB 没有任何关系(因为它不是 ECS 服务的一部分)。您可能可以完成这项工作,但您可能需要通过找出任务的详细信息并将其添加到目标组来自己构建布线。我相信您需要做的(如果您希望 ECS 处理布线)是安排一个 Lambda 来增加服务中所需的任务数量。我也想知道这个用例是什么(因为也许还有其他方法可以实现它)。计划任务通常是某种批处理作业,而不是需要连接到负载均衡器的 Web 服务。你有什么场景/最终目标?

    更新:我错过了调度所需任务数量的非 UI 支持,因此实际上并不需要 Lambda。

    【讨论】:

    • 我的考虑是只在一天中的特定时间在 DEV 环境中运行应用程序。
    • 我就是这么想的。如果是这种情况(并且该服务与您的需求兼容,您可能需要查看App Runner。特别是“App Runner 还可以自动扩展或缩减以满足您的流量需求。”。App Runner 是基于 ECS 构建的/Fargate 但提供完全托管的体验。
    • 感谢您的cmets和解释。
    【解决方案2】:

    计划任务实际上更多的是运行以完成给定任务然后退出的东西。

    如果您想将您的 ECS 任务连接到负载均衡器,您应该将其作为服务的一部分运行。 ECS 将在它作为服务运行时为您处理将任务连接到负载均衡器。

    您在 cmets 中提到您的最终目标是每天在特定时间运行开发环境。您可以使用 ECS 服务和scheduled auto-scaling 来执行此操作。由于某种原因,此功能无法通过 AWS Web 控制台使用,但您可以通过 AWS CLI 或其中一个 AWS 开发工具包对其进行配置。您可以将其配置为在您不希望应用运行期间扩展为 0,并在您希望它运行时扩展为 1 或更多。

    【讨论】:

    • 您好马克,非常感谢您的提示,这似乎是一个可行的解决方案,我正在研究应用程序自动缩放。
    猜你喜欢
    • 2019-08-27
    • 2018-11-19
    • 1970-01-01
    • 2021-05-26
    • 2023-04-01
    • 1970-01-01
    • 2021-10-29
    • 2019-12-10
    • 1970-01-01
    相关资源
    最近更新 更多