寻求有关如何将大文件从带宽受限的服务器下载到 AWS S3 存储桶的建议



对于我正在处理的项目,需要拉下每天更新并在特定客户 URL 上提供的庞大文本文件,并将其存储在 AWS S3 中,然后触发文件的下游处理(细节不重要)。

我正在考虑由 CloudWatch 每 24 小时触发一次的 AWS Lambda 完成 S3 中的下载 + 存储,这将起作用,但有一个问题:该文件的大小为 36MB,由将下载限制为 100kB/s 的主机提供服务(超出我的控制范围)。这意味着完全下载文件至少需要 360 秒(即 6 分钟)。但是,AWS Lambda 函数的运行时间上限为 300 秒,这实际上使其无法用于此任务,因为 Lambda 在文件完全下载之前超时并退出。

我正在寻找有关解决 AWS Lambda 的 300 秒运行时间限制以实现这一目标的方法的建议。

只要我坚持使用 AWS,我看到的唯一选择就是在 EC2 实例上设置 cron 作业,但这似乎很昂贵/矫枉过正,特别是如果我最终不需要永远在线的 EC2 做其他任何事情。

谢谢!

我会让 Lambda 启动一个运行复制作业的小型 EC2 实例。 您可以拥有用于 EC2 实例的自定义 AMI,也可以拥有设置所有内容的云初始化脚本。 让 EC2 上的程序运行一会儿,请记住,无论您需要多少时间,您都需要支付一小时的费用。 但是,如果整个过程需要 15 分钟(因为无法保证不会出现一些交通拥堵),并且您使用的是 t2.nano,则您需要支付 0.006 美元(十分之六美分)加上一些 I/O 和可能的 EBS 空间。 我敢打赌你会花很少的钱。

作业完成后,它将终止正在运行它的 EC2 实例。

我意识到这有点麻烦 - CloudWatch 会触发 Lambda 从而触发 EC2。 但是,仅靠CloudWatch无法满足EC2的需求。

相关内容

  • 没有找到相关文章

最新更新