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

时间:2011-05-17 11:29:48

标签: python amazon-ec2

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

现在我想在这个实例中执行Python代码,我不知道如何继续。是否有必要在实例中的某处加载代码?或者在亚马逊的S3中并将其链接到实例?

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

4 个答案:

答案 0 :(得分:24)

这是一个非常简单的过程,可以将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(&#34; Hello AWS&#34;)
  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

答案 1 :(得分:21)

您有多种选择。您可以浏览AMI here的大型库。

您可以导入虚拟机,说明为here

这是关于AWS and python的一般性文章。

在本文中,作者将引导您完成a more advanced system with a combination of datastores in python using the highly recommend django framework

答案 2 :(得分:4)

  1. 通过亚马逊的管理控制台启动您的实例 - &gt;实例操作 - &gt;连 (入门指南中的更多细节)

  2. 启动基于Java的SSH CLient

  3. 插件 - &GT; SCFTP文件传输

  4. 上传文件

  5. 在后台运行您的文件(最后使用'&amp;'或使用nohup)

  6. 一定要选择包含python的AMI,你可以在shell中输入'python'来检查。 如果您的应用需要任何非正统的套餐,则必须安装它们。

答案 3 :(得分:2)

在Linux ec2实例上运行脚本

我必须在亚马逊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 DNS USER 数据根据您启动的操作系统进行更改,请参阅以下内容了解更多详情&amp;&amp; 公共DNS < / strong>可以在ec2实例页面上获得)
  

使用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上运行脚本,我宁愿将代码存储在Github上作为repo或gist(如果你需要保持代码私有)并克隆到ec2中。

以上提到非常简单,并且不容易出错。

运行python脚本

我使用过RHEL Linux实例并且已经安装了python。所以,我可以在ssh-ing之后直接运行python脚本。这取决于您选择的操作系统。如果没有安装,请参阅aws手册。

参考:AWS Doc