【问题标题】:AWS Autosync : moving data from FTP server to S3AWS Autosync:将数据从 FTP 服务器移动到 S3
【发布时间】:2020-04-05 23:52:47
【问题描述】:

我有一个工作流程,可以将 700gb 的文件从 ftp 服务器移动到本地服务器以进行 python 脚本处理。

我想将此进程迁移到 AWS s3 存储桶以供 lambda 处理。
我认为 AWS 数据同步是一种价格合理的解决方案 (0.0125/gb),可以将此数据移动到 S3 存储桶。 但不是来自 ftp 站点。

任何人有建议如何做到这一点?

注意:我研究了 filezilla pro,但无法使用批处理命令或脚本自动执行此过程。

【问题讨论】:

  • AWS supports SFTP 用于进出 s3。因此,也许它会很有用。
  • 通过您的设计思考。您想将数据从 FTP 服务器复制到 S3。这将需要计算和网络资源。然后您计划将数据从 S3 复制到 Lambda 进行处理。相反,启动 EC2,将数据从 FTP 下载到 EC2 并进行处理。 AWS 对数据传输和存储收费。谷歌搜索 FTP file sync 寻找可以从 FTP 服务器自动同步到本地存储(在 EC2 上)的工具。
  • 使用aws sftp的传输速率完全不合理。
  • 看起来我可以在 ec2 实例中的预定 dos 批处理脚本中运行 winscp,但如果有办法将文件直接加载到 lambda 进行处理,这似乎是一个不必要的步骤。我不知道 lambda 可以存储文件。

标签: amazon-web-services amazon-s3 aws-datasync


【解决方案1】:

由于动态内存要求以及 FTP 站点和 Lambda 函数之间的不可靠延迟时间,AWS Lambda 不是此类工作的好选择。

看起来您正试图通过某些 AWS 服务将 700GB 数据复制到 S3 中。如果这是一个正确的说法,那么请认真计算以下成本:

  1. S3 定价是数据传输量和检索频率的函数。每月读写 700GB 数据的成本会很高。

  2. Lambda 函数执行时间和内存。每当执行 Lambda 时,它都会将文件读入临时内存 var。这是您将获得高成本的地方,因为 Lambda 函数的成本取决于使用的内存量。

其次,FTP 站点与 Lambda 边缘服务器之间的连接速度也值得一提,因为延迟越多,您将耗尽免费的 1M lambda 请求配额。

我建议在 FTP 服务器或本地计算机上使用 Python/Ruby/PHP 脚本并将文件上传到 S3 存储桶。如果您采用这种方法,那么请考虑将数据归档到 Glacier 中,这样可以节省资金。

如果您需要 Lambda 代码,请告诉我,我很乐意与您分享。 希望这会有所帮助。

【讨论】:

  • 我不知道 lambda 存在内存限制,无法临时处理文件中的 700gb。谢谢你。我认为 1MB lambda 限制只是在他们的脚本上运行。我的目标是将处理(非常慢需要 3 天)从我的本地卸载到 aws,因为要解析的文件最终会在运行 sql server 的 ec2 服务器中以更快的执行时间结束。您会为此建议更好的服务吗?。
  • 很高兴知道您正在使用 EC2 并且是已处理文件的最终目的地。如果您可以在成本与技术上可行的 AWS 解决方案方面帮助我提供预期的解决方案,我可以分享 AWS 解决方案架构师。
  • 以下是我的想法:1) 您正在寻找最佳的 AWS 解决方案? 2) 即使某些本地处理是可以接受的,您仍在寻找成本优化的解决方案? 3) 您只在寻找成本优化的 AWS 解决方案,即不再进行本地处理?
  • 我只在寻找成本优化的 AWS 解决方案。你有任何可以在 lambda 上工作的带有导入库的 python 代码示例吗?
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2016-01-29
  • 2022-11-25
  • 2023-01-27
  • 1970-01-01
  • 2019-07-06
  • 2018-09-25
相关资源
最近更新 更多