【问题标题】:How to run a code in an Amazone's EC2 instance?如何在 Amazone 的 EC2 实例中运行代码?
【发布时间】:2011-08-27 04:06:34
【问题描述】:

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

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

哪里有解释可能的实例用法的指南?我感觉自己就像一个没有用户指南的飞碟仪表盘前的人。

【问题讨论】:

  • @Sentinel 安装在哪里?它已经安装在我的电脑上。如果我必须在实例中安装它,那正是我不知道该怎么做。

标签: python amazon-ec2


【解决方案1】:

这是一个非常简单的过程,可将您的 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

【讨论】:

    【解决方案2】:

    您有多种选择。您可以浏览大量 AMI here

    你可以导入一个vm,指令是here

    这是一篇关于AWS and python的普通文章。

    而在这篇文章中,作者带你穿越a more advanced system with a combination of datastores in python using the highly recommend django framework

    【讨论】:

    • 非常感谢。我看到所有这些东西都很重。我想事情会更简单。但是亚马逊声称使用 EC2 很容易是一个谎言。它需要阅读一页又一页,又一页又一页地阅读文档,这是一个无止境的过程。我只是想在某个地方放一个 Python 代码,一个简单的 Python 代码,然后运行,仅此而已,而不是花时间学习 Web 应用程序的世界。谢谢您的帮助。在理解所有这些巨大的东西之前,我将在两三个月内研究这个主题。
    • 我不能赞成你的答案,我没有所需的 15 分。当我有他们的时候我会这样做
    • 没问题,乐于助人。我认为“简单”是一个相对术语,EC2 是我尝试过(并且我曾与多家云提供商合作过)解决 EC2 所针对的各种问题的最简单的解决方案。
    • @humalayi:我不认为我听到有人说 EC2 很简单。你真的需要 Linux 系统管理员技能才能让它有效地工作(这是我很难学到的)他们为你提供了一个简单的服务器,就是这样。
    • 对 linux 技术感兴趣的开发人员应该尝试将 linux 作为他们的主要操作系统。当您进入 EC2 时,对工具和社区有一个基本的了解会有很大帮助。
    【解决方案3】:
    1. 通过 Amazon 的管理控制台启动您的实例 -> 实例操作 -> 连接 (入门指南中的更多详细信息)

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

    3. 插件-> SCFTP 文件传输

    4. 上传您的文件

    5. 在后台运行您的文件(以“&”结尾或使用 nohup)

    请务必选择包含 python 的 AMI,您可以通过在 shell 中键入“python”来检查。 如果您的应用需要任何非正统的软件包,您必须安装它们。

    【讨论】:

    • 我卡在第 4 步。我使用了 winSCP,它连接到实例没有任何问题。但是在上传 python 文件时,它会显示“权限被拒绝”。我该如何解决这个问题?谢谢!
    【解决方案4】:

    在 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(USER 数据会根据您启动的操作系统而变化,详情请参阅以下段落 && 公共 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 上运行脚本,我更喜欢将代码作为 repo 或 gist 存储在 Github 上(如果您需要保持代码私有)并克隆到 ec2 中。

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

    运行 python 脚本

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

    参考:AWS Doc

    【讨论】:

      猜你喜欢
      • 2013-10-23
      • 2021-07-26
      • 1970-01-01
      • 2016-06-01
      • 1970-01-01
      • 1970-01-01
      • 2019-04-23
      • 2023-03-07
      • 1970-01-01
      相关资源
      最近更新 更多