如何在Amazone的EC2实例中运行代码?


67

我对EC2的功能几乎一无所知。我创建了一个Amazon Web Service(AWS)帐户。然后,我启动了一个EC2实例。

现在,我想在此实例中执行Python代码,而且我不知道如何继续。是否有必要在实例中的某处加载代码?还是在Amazon的S3中将其链接到实例?

哪里有指南解释可能的实例用法?在没有用户指导的情况下,我感觉自己像个飞碟的仪表板前的男人。


6
@Sentinel安装在哪里?它已经安装在我的计算机上。而且,如果我必须在实例中安装它,那正是我不知道要做的事情。
humalayi

Answers:


27

这是一个非常简单的过程,可将Python脚本从本地移动到EC2实例并运行它。

> 1. scp -i <filepath to Pem> <filepath to Py File> ec2-user@<Public DNS>.compute-1.amazonaws.com:<filepath in EC2 instance where you want
> your file to be>
> 2. Cd to to the directory in EC2 containing the file. Type Python <Filename.py> There it executed.

对于那些喜欢逐步展示的东西的人,这是一个具体的例子:

  1. 在本地目录中,使用以下代码创建python脚本:print(“ Hello AWS”)
  2. 假设您已经设置了AWS,并且想要在EC2中运行此脚本,则需要将文件SCP(安全复制协议)保存到EC2中的目录中。所以这是一个例子:
    -我的pem文件路径是〜/ Desktop / random.pem。
    -我的py文件的文件路径是〜/ Desktop / hello_aws.py-
    我的公共DNS是ec22-34-12-888-
    我希望我的脚本所在的ec2目录在/ home / ec2-user中
    -因此完整的命令我在本地终端上运行的是:

scp -i〜/ Desktop / random.pem〜/ Desktop / hello_aws.py ec2-user@ec2-34-201-49-170.compute-1.amazonaws.com:/ home / ec2-user

  1. 现在ssh到您的ec2实例,cd到/ home / ec2-user(或您放置文件的任何位置)和Python hello_aws.py

22

您有多种选择。您可以在此处浏览大型AMI库。

您可以导入虚拟机,说明在这里

这是有关AWS和python的一般文章。

在本文中,作者将使用强烈推荐的django框架为您提供一个更高级的系统,该系统结合了python中的数据存储


47
非常感谢你。我看到所有这些东西都很重。我以为事情会更简单。但是亚马逊声称使用EC2容易是一个谎言。它需要读取页面,页面和页面,以及在一页一页的文档之后,这是一个无休止的过程。我只是想将Python代码放在​​某个地方,一个简单的Python代码,然后运行,仅此而已,而不是花我的时间来学习Web应用程序领域。感谢您的帮助。在了解所有这些巨大内容之前,我将在两三个月内研究该主题。
humalayi

2
我无法支持您的回答,我还没有15分。我会做的时候我就会有他们
humalayi

1
没问题,乐于帮助。我认为“简单”是一个相对的术语,而EC2是我尝试(并且曾与多家云提供商合作)解决EC2所针对的各种问题的最简单的解决方案。
marr75 2011年

1
@humalayi:我想我没有听说有人说EC2很简单。您确实需要Linux sysadmin技能才能有效地工作(这是我学到的很难的方法),它们为您提供了一个简单的服务器,事实就是这样。
杰伊·西德里

1
对linux技术感兴趣的开发人员应尝试将linux作为其主要操作系统。进入EC2时,对工具和社区有基本的了解会很有帮助。
marr75 2011年

4
  1. 通过Amazon的管理控制台->实例操作->连接启动实例(入门指南中的更多详细信息)

  2. 启动基于Java的SSH CLient

  3. 插件-> SCFTP文件传输

  4. 上载档案

  5. 在后台运行文件(末尾带有“&”或使用nohup)

确保选择包含python的AMI,您可以通过在外壳中键入'python'进行检查。如果您的应用程序需要任何非常规的软件包,则必须安装它们。


我陷入了第4步。我使用了winSCP,它可以毫无问题地连接到实例。但是,当上传python文件时,它会显示“权限被拒绝”。我该如何解决?谢谢!
user3768495's

2

在Linux ec2实例上运行脚本


我不得不在Amazon ec2上运行脚本并学习了如何做。即使几年前有人问过这个问题,我还是想分享一下今天的情况。

设置EC2并ssh-ing到ec2主机

  • 使用默认设置注册并启动ec2实例(不要忘记保存在启动ec2时将生成的证书文件)。
  • ec2启动并运行后,请提供对证书文件chmod 400 /path/my-key-pair.pem(或.cer文件)的必需权限。
  • 运行命令:ssh -i /path/my-key-pair.pem(.cer) USER@Public DNSUSER数据会根据您启动的操作系统进行更改,有关更多详细信息,请参阅以下段落&&可以在ec2实例页面上获得公共DNS

使用ssh命令连接到实例。您指定私钥(.pem)文件和user_name @ public_dns_name。对于Amazon Linux,用户名是ec2-user。对于RHEL,用户名是ec2-user或root。对于Ubuntu,用户名是ubuntu或root。对于Centos,用户名是centos。对于Fedora,用户名是ec2-user。对于SUSE,用户名是ec2-user或root。否则,如果ec2-user和root不起作用,请与AMI供应商联系。

将脚本克隆到EC2

为了在ec2上运行脚本,我更喜欢将代码作为回购或gist(如果需要保持代码私有)存储在Github上,然后克隆到ec2中。

上面提到的非常容易,而且不容易出错。

运行python脚本

我已经使用RHEL Linux实例,并且已经安装了python。因此,我可以在ssh-ing之后直接运行python脚本来直接托管。这取决于您选择的操作系统。如果尚未安装,请参阅AWS手册。

参考:AWS Doc

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.