[英]How to run a Python code on AWS EC2 and write a csv file from the server to my local machine?
[英]How to run code on aws ec2 with local input and output
我在 aws ec2 上有代码。 现在,它接受来自 s3 的输入和 output 文件。 这是一个低效的过程。 我必须将输入文件上传到s3,将s3复制到ec2,运行程序,将output文件从ec2复制到s3,然后在本地下载。
有没有办法在 ec2 上运行代码并接受本地文件作为输入,然后将 output 保存在我的本地计算机上?
看来您的情况是:
Amazon EC2 实例就像任何其他计算机一样。 它运行与您公司服务器上相同的操作系统和相同的软件。 但是,它确实从云中受益,因为它可以轻松访问其他服务(例如 Amazon S3),并且可以关闭资源以节省费用。
在坚持当前流程的同时,您可以通过一些简单的自动化来改进它:
aws s3 cp file.txt s3://my-bucket/input/
aws s3 cp s3://my-bucket/input/file.txt.
aws s3 cp file.txt s3://my-bucket/output/
aws s3 cp s3://my-bucket/output/file.txt.
假设您连接到 Linux 实例,您可以通过以下方式实现自动化:
scp
将文件复制到 EC2 实例(与 SSH 命令非常相似)ssh
和 [remote command(https://malcontentcomics.com/systemsboy/2006/07/send-remote-commands-via-ssh.html) 参数触发远程进程scp
将文件复制下来如果在数据上运行的作业适合作为 AWS Lambda function 运行,则流程为:
请注意,AWS Lambda function 最多运行 15 分钟,临时磁盘空间限制为 512MB。 (这可以通过使用 Amazon EFS 进行扩展。)
还有其他上传/下载数据的方法,例如在 EC2 实例上运行 web 服务器并通过 web 浏览器进行交互,或使用 AWS Systems Manager Run Command 在 EC2 实例上触发进程。 这样的选择将基于您被允许修改实例上运行的内容的程度以及您的技术能力。
@John Rotenstein 我们通过 VPC 附加 AWS EFS 卷解决了将 60MB+ 模型加载到 Lambdas 的问题。 还解决了诸如 Tensorflow、opencv 等大型库的问题。基本上 lambda 层几乎变得多余,您真的可以高枕无忧,如果不从源代码构建,这节省了我们几天的时间专注于真正的问题。 也每次都从 S3 加载。 EFS 方法显然需要一个 ec2 实例。
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.