【问题标题】:Amazon EC2 Windows Ubuntu亚马逊 EC2 Windows Ubuntu
【发布时间】:2015-10-22 12:23:20
【问题描述】:

我是 AWS EC2 的新手,所以我写这篇文章是为了解决一些问题。

1) 现在,我正在考虑在服务器上运行一些脚本。我通常使用两种工具。一种是只能在Windows中使用的软件。另一个只是python。我应该打开两个实例,一个用于 windows,一个用于 ubuntu?或者只是一个安装了 Git Bash 的 Windows 实例?我想在成本和性能上高效。

2) 我不会经常使用脚本(通常每天 2-3 小时或每周 10-12 小时)。因此,跨实例自动安排这些作业是否容易?我的意思是它可以在适当的时间自动关闭并重新启动。

3) 一些脚本涉及网络抓取。我还想知道每次运行脚本时切换 IP 地址是否可以。主要是python脚本。

谢谢。

【问题讨论】:

    标签: python amazon-web-services amazon-ec2


    【解决方案1】:

    1) 当然,您拥有的实例越少,您支付的费用就越少。 Python 可以在 Windows 上运行,我只是不知道让它在你的情况下工作有多么棘手。这一切都取决于您正在运行什么以及您的管理要求是什么。那些脚本语言最初是为 Unix 环境设计的,所以人们通常在那种系统上运行它,所以在 Windows 中运行它可能会有点不愉快。无论如何,我认为你不应该问别人,你应该自己弄清楚什么最适合你。

    2) AWS 没有 EC2 的调度程序(停止、启动等,给定日期/时间/重复)。这也是我想念的东西。因此,要实现这样的目标,您有一些选择。

    • 将您的临时实例变成一个由 1 个实例组成的自动扩展组,并安排策略将其缩减为 0 个实例,并在需要时再次将其扩展为 1 个实例。这种方法的问题是:如果您不能确定完成工作需要多长时间,那么您当然会遇到问题,因为这些计划的操作是基于固定的日期/时间的。一种解决方案是临时实例本身在完成后通过 API 将自动缩放组配置更改为零实例。 (在这种情况下,您只需要一个扩展计划策略来启动实例,通过临时实例内部的自动扩展组配置处理将其终止“手动”完成)。但是请注意,自动缩放对于初学者来说非常棘手,您应该在使用它之前阅读文档。 (例如,每次您缩小和缩小实例时,它们都会终止,而不仅仅是停止,并且您会丢失其中的所有数据。)
    • 不使用自动缩放组,具有常规实例,并通过 API 从外部调度所有这些操作。它可能来自您的 Windows(主)实例。在这种情况下,master 将通过 API 启动临时实例,该实例将运行它的东西,然后在完成后自行关闭。否则,主实例将不得不以某种方式不断轮询临时实例,以了解作业何时完成并且可以从外部关闭。
    • 可能有更复杂的方法可以做到这一点(也许是 Elastic Beanstalk crons)。

    我认为,在这种情况下,越简单越好。所以,我会坚持选项2)。您只需了解如何在 Windows 上安装和使用 AWS CLI 并管理 IAM 凭证和权限,即可为您的 CLI 提供足够的访问权限,使其能够完成所需的工作。

    3) 如果您没有为实例分配弹性 IP,则每次停止和启动它时都会获得不同的 IP,因此默认情况下,这就是您想要的。在自动缩放中,这是唯一的方法,您甚至无法为实例分配固定 IP。

    希望能帮到你。

    【讨论】:

      猜你喜欢
      • 2023-03-26
      • 2015-11-23
      • 2013-07-05
      • 2013-11-24
      • 1970-01-01
      • 2015-01-23
      • 2015-07-06
      • 2012-09-23
      • 2010-12-28
      相关资源
      最近更新 更多