Python 如何使用本地输入和输出在aws ec2上运行代码

Python 如何使用本地输入和输出在aws ec2上运行代码,python,amazon-web-services,amazon-s3,amazon-ec2,Python,Amazon Web Services,Amazon S3,Amazon Ec2,我有aws ec2的代码。现在,它接受来自s3的输入和输出文件。这是一个低效的过程。我必须将输入文件上传到s3,将s3复制到ec2,运行程序,将输出文件从ec2复制到s3,然后在本地下载 有没有办法在ec2上运行代码并接受本地文件作为输入,然后将输出保存到我的本地计算机上?您的情况似乎是: AmazonEC2实例上的某些软件用于处理本地磁盘上的数据 您正在通过AmazonS3将该数据手动传输到实例或从实例传输数据 AmazonEC2实例与任何其他计算机一样。它与您在公司的服务器上运行的操作系

我有aws ec2的代码。现在,它接受来自s3的输入和输出文件。这是一个低效的过程。我必须将输入文件上传到s3,将s3复制到ec2,运行程序,将输出文件从ec2复制到s3,然后在本地下载


有没有办法在ec2上运行代码并接受本地文件作为输入,然后将输出保存到我的本地计算机上?

您的情况似乎是:

  • AmazonEC2实例上的某些软件用于处理本地磁盘上的数据
  • 您正在通过AmazonS3将该数据手动传输到实例或从实例传输数据
AmazonEC2实例与任何其他计算机一样。它与您在公司的服务器上运行的操作系统和软件相同。然而,它确实从云中受益,因为它可以轻松访问其他服务(如AmazonS3),并且可以关闭资源以节省开支

优化当前流程 在坚持当前流程的过程中,您可以通过一些简单的自动化来改进它:

  • 通过命令将数据上传到Amazon S3,例如:
    aws S3 cp file.txt S3://my bucket/input/
  • 在EC2进程上执行脚本,该脚本将:
  • 下载该文件,例如:
    aws s3 cp s3://my bucket/input/file.txt。
  • 处理文件
  • 将结果复制到S3,例如:
    aws S3 cp file.txt S3://my bucket/output/
  • 将结果下载到您自己的计算机上,例如:
    aws s3 cp s3://my bucket/output/file.txt。
使用scp复制文件 假设您连接到Linux实例,您可以通过以下方式实现自动化:

  • 使用
    scp
    将文件复制到EC2实例(与SSH命令非常相似)
  • 使用带有[remote]命令的
    ssh
    (https://malcontentcomics.com/systemsboy/2006/07/send-remote-commands-via-ssh.html)参数来触发远程进程
  • 完成后,使用
    scp
    向下复制文件
重新设计以使用AWS Lambda 如果在数据上运行的作业适合作为AWS Lambda函数运行,则流程为:

  • 将数据上传到AmazonS3
  • 自动触发Lambda函数,该函数处理数据并存储结果
  • 从AmazonS3下载结果
请注意,AWS Lambda函数最多运行15分钟,临时磁盘空间限制为512MB。(这可以通过使用Amazon EFS进行扩展。)

介于两者之间
还有其他上传/下载数据的方法,例如在EC2实例上运行web服务器并通过web浏览器进行交互,或者使用AWS Systems Manager Run命令触发EC2实例上的进程。这样的选择取决于允许您修改实例上运行的内容的程度以及您的技术能力s、

您的场景似乎是:

  • AmazonEC2实例上的某些软件用于处理本地磁盘上的数据
  • 您正在通过AmazonS3将该数据手动传输到实例或从实例传输数据
Amazon EC2实例与任何其他计算机一样。它运行的操作系统和软件与您在公司服务器上运行的操作系统和软件相同。但是,它确实从云中受益,因为它可以轻松访问其他服务(如Amazon S3),并且可以关闭资源以节省开支

优化当前流程 在坚持当前流程的过程中,您可以通过一些简单的自动化来改进它:

  • 通过命令将数据上传到Amazon S3,例如:
    aws S3 cp file.txt S3://my bucket/input/
  • 在EC2进程上执行脚本,该脚本将:
  • 下载该文件,例如:
    aws s3 cp s3://my bucket/input/file.txt。
  • 处理文件
  • 将结果复制到S3,例如:
    aws S3 cp file.txt S3://my bucket/output/
  • 将结果下载到您自己的计算机上,例如:
    aws s3 cp s3://my bucket/output/file.txt。
使用scp复制文件 假设您连接到Linux实例,您可以通过以下方式实现自动化:

  • 使用
    scp
    将文件复制到EC2实例(与SSH命令非常相似)
  • 使用带有[remote]命令的
    ssh
    (https://malcontentcomics.com/systemsboy/2006/07/send-remote-commands-via-ssh.html)参数来触发远程进程
  • 完成后,使用
    scp
    向下复制文件
重新设计以使用AWS Lambda 如果在数据上运行的作业适合作为AWS Lambda函数运行,则流程为:

  • 将数据上传到AmazonS3
  • 自动触发Lambda函数,该函数处理数据并存储结果
  • 从AmazonS3下载结果
请注意,AWS Lambda函数最多运行15分钟,临时磁盘空间限制为512MB。(这可以通过使用Amazon EFS进行扩展。)

介于两者之间
还有其他上传/下载数据的方法,例如在EC2实例上运行web服务器并通过web浏览器进行交互,或者使用AWS Systems Manager Run命令触发EC2实例上的进程。这样的选择取决于允许您修改实例上运行的内容的程度以及您的技术能力s、

@John Rotenstein我们通过VPC连接AWS EFS卷,解决了向lambda加载60MB+模型的问题。也解决了Tensorflow、opencv等大型LIB的问题。基本上lambda层几乎变得多余,您可以真正坐下来休息,这为我们节省了数天甚至数周的调整、构建和维护时间从源代码中选择库组件使我们能够专注于真正的问题。这比从S3加载要好