如何在亚马逊的EC2实例中运行代码?

76

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

现在我想在这个实例中执行Python代码,但我不知道该怎么做。需要将代码加载到实例中吗?还是在Amazon的S3中,并将其链接到实例中?

有什么指南可以解释可能的实例用法吗?我感觉自己像是面对飞碟仪表盘而没有用户指南的人一样。


6
在哪里安装Sentinel?它已经安装在我的电脑上了。如果我必须将其安装到实例中,那么我不知道该怎么做。 - humalayi
4个回答

29

以下是一个非常简单的程序,可将您的 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文件路径是~/桌面/random.pem。
    - 我的.py文件路径是~/桌面/hello_aws.py。
    - 我的公共DNS是ec22-34-12-888。
    - 我想要将脚本放置的ec2目录为/home/ec2-user 。
    - 所以我在本地终端中运行的完整命令是:

scp -i ~/桌面/random.pem ~/桌面/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

23

49
非常感谢。我发现所有这些东西都很繁重。我想象中的事情更简单一些。但是亚马逊声称使用EC2很容易,这是一个谎言。它需要阅读页面、页面和页面,再次阅读无数文档,这是一个无尽的过程。我只想把一个Python代码放在某个地方,一个简单的Python代码,然后运行,仅此而已,不想花时间学习Web应用程序的整个世界。感谢您的帮助。在理解这个庞大的东西之前,我将在两三个月内研究这个主题。 - humalayi
2
我无法给你的答案点赞,因为我没有必要的15个积分。当我拥有它们时,我会来点赞的。 - humalayi
1
没问题,很乐意帮忙。我认为“易用”是一个相对的术语,而EC2是我尝试过的最容易解决EC2针对的问题的解决方案(我已经使用过几个云提供商)。 - marr75
1
@humalayi: 我想我从没听过有人说EC2很容易。你真的需要Linux系统管理员技能才能使其有效运行(这是我通过艰难的方式学到的东西)。他们只会给你一个极简服务器,仅此而已。 - Jay Sidri
1
对于对Linux技术感兴趣的开发人员来说,应该尝试将Linux作为他们的主要操作系统。当你进入EC2时,拥有基本的工具和社区理解会非常有帮助。 - marr75

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

  2. 启动基于Java的SSH客户端

  3. 插件-> SCFTP文件传输

  4. 上传您的文件

  5. 在后台运行您的文件(在结尾加上'&'或使用nohup命令)

请务必选择包含Python的AMI,您可以在shell中输入“python”进行检查。 如果您的应用程序需要任何非常规软件包,则必须安装它们。


我卡在第4步了。我使用WinSCP并且连接到实例没有任何问题。但是当上传一个Python文件时,它显示“权限被拒绝”。我应该如何解决这个问题呢?谢谢! - user3768495

2

在 Linux ec2 实例上运行脚本


我需要在 Amazon ec2 上运行一个脚本,并学会了如何操作。即使这个问题是几年前提出的,我认为现在也很容易实现。

设置 EC2 并通过 ssh 连接到 ec2 主机

  • 注册并启动一个 ec2 实例(不要忘记在启动 ec2 时保存生成的证书文件)。
  • 一旦 ec2 启动并运行,将必要的权限授予证书文件 chmod 400 /path/my-key-pair.pem(或 .cer 文件)
  • 运行以下命令: ssh -i /path/my-key-pair.pem(.cer) USER@Public DNSUSER 数据根据您启动的操作系统而变化,请参阅以下段落以获取更多详细信息 && Public 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 上作为仓库或作为 gist(如果需要保持代码私有),然后克隆到 ec2 中。

上述提到的方法非常简单,且不容易出错。

运行 Python 脚本

我使用过 RHEL Linux 实例,并且已经安装了 Python。因此,我可以直接在 ssh 连接到主机后运行 Python 脚本。这取决于您选择的操作系统。如果没有安装它,请参考 aws 手册。

参考文献:AWS 文档


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接