如何在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.
以下是喜欢一步一步展示的人们的具体例子:
- 在本地目录中,使用以下代码创build一个python脚本: print(“Hello AWS”)
- 假设您已经设置了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
- 现在ssh到你的ec2实例,cd到/ home / ec2-user(或者你放置文件的地方)和Python hello_aws.py
-
通过Amazon的pipe理控制台 – >实例操作 – >连接启动您的实例(入门指南中的更多细节)
-
启动基于Java的SSH CLient
-
插件 – > SCFTP文件传输
-
上传您的文件
-
在后台运行你的文件(最后用'&'或使用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