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

我对EC2的function几乎一无所知。 我创build了一个Amazon Web服务(AWS)帐户。 然后我启动了一个EC2实例。

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

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

你有各种select。 您可以在这里浏览大型AMI库。

你可以导入一个虚拟机,说明在这里 。

这是关于AWS和Python的一般性文章。

在本文中,作者将带您使用高度推荐的django框架,通过使用python中的数据存储组合的更高级的系统 。

这是一个非常简单的过程,将您的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. 在本地目录中,使用以下代码创build一个python脚本: print(“Hello AWS”)
  2. 假设您已经设置了AWS,并且您希望在EC2中运行此脚本,则需要将SCP(安全复制协议)文件保存到EC2中的目录中。 所以这里是一个例子:
    – 我的文件pathpem是〜/ Desktop / random.pem。
    – 我的文件path到py文件是〜/ Desktop / hello_aws.py
    – 我的公共DNS是ec22-34-12-888
    – 我想要脚本的ec2目录是/ home / ec2-user
    所以我在本地terminal运行的完整命令是:

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. 通过Amazon的pipe理控制台 – >实例操作 – >连接启动您的实例(入门指南中的更多细节)

  2. 启动基于Java的SSH CLient

  3. 插件 – > SCFTP文件传输

  4. 上传您的文件

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

一定要select一个包含python的AMI,你可以通过在shell中input'python'来检查。 如果你的应用程序需要任何非正统的包,你将不得不安装它们。

在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 DNS用户数据根据您启动的操作系统进行更改,更多详细信息请参考以下段落&& 公共DNS可以在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上作为回购或作为要点(如果需要保持代码私有)并克隆到ec2中。

上面提到的很容易,不容易出错。

运行python脚本

我已经与RHEL Linux实例合作,并且已经安装了python。 所以,我可以在ssh-ing之后直接运行python脚本来直接托pipe。 这取决于您select的操作系统。 如果尚未安装,请参阅aws手册。

参考: AWS Doc