gpt4 book ai didi

amazon-ec2 - 在 AWS EC2 上调度作业

转载 作者:行者123 更新时间:2023-12-03 19:54:35 30 4
gpt4 key购买 nike

我有一个在 AWS EC2 上运行的网站。我需要创建一个生成站点地图文件并将文件上传到各种浏览器的夜间作业。我正在 AWS 上寻找允许此功能的实用程序。我考虑了以下几点:

1) 向 Web 服务器生成一个请求,触发它执行此任务

  • 我不喜欢这种方法,因为它占用了一个服务器线程并在主机上使用 cpu 周期

  • 2)在运行Web服务器的机器上创建一个cron作业来执行这个任务
  • 同样,我不喜欢这种方法,因为它需要 cpu 周期远离 Web 服务器

  • 3)创建另一个EC2实例并设置一个cron作业来运行任务
  • 这解决了 Web 服务器资源问题,但为什么要为额外的 EC2 实例付费以运行小于 5 分钟的作业呢?浪费钱!

  • 还有其他选择吗?这是 ElasticMapReduce 的工作吗?

    最佳答案

    如果我站在你的立场上,我可能会开始尝试在每晚退潮时在 Web 服务器上运行 cron 作业并监控资源使用情况,以确保它不会干扰 Web 服务器。

    如果您发现它不能很好地运行,或者您对架构的优雅有很高的标准(我可以钦佩这一点),那么您可能需要运行一个单独的实例。

    我同意每天 24 小时运行一个实例来完成你只需要每晚运行一次的工作似乎是一种浪费。

    这是一种方法:您的主计算机(当前是 Web 服务器)上的 cron 作业可以启动一个新实例来运行该任务。它可以传入一个用户数据脚本,该脚本在实例启动时运行,并且实例可以在完成任务时自行关闭(其中 instance-initiated-shutdown-behavior 设置为“terminate”)。

    不幸的是,这错过了您强制分离关注点的愿望,当您开始扩展到多个 Web 服务器时它变得复杂,并且它需要您的 Web 服务器处于事件状态才能运行作业。

    几个月前,我想出了一种不同的方法来按 cron 计划运行实例,完全依赖现有的 AWS 功能,并且不需要运行其他服务器。

    基本思想是使用 Amazon 的 Auto Scaling 和重复操作,在每晚的特定时间将组从“0”扩展到“1”。该实例可以在作业完成后自行终止,并且 Auto Scaling 可以在很久以后进行清理以确保它已终止。

    我在本文中提供了更多详细信息和一个工作示例:

    Running EC2 Instances on a Recurring Schedule with Auto Scaling
    http://alestic.com/2011/11/ec2-schedule-instance

    关于amazon-ec2 - 在 AWS EC2 上调度作业,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8812025/

    30 4 0
    Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
    广告合作:1813099741@qq.com 6ren.com