【问题标题】:Alternative tools for Amazon EC2?Amazon EC2 的替代工具?
【发布时间】:2009-04-09 06:11:28
【问题描述】:

Amazon 与 EC2 交互的官方工具有点笨重,而且很难处理。我必须设置一堆环境变量,为 EC2 存储单独的私钥,在我的 PATH 中添加额外的项目,等等。它们都输出了数百个字符长且没有标题的制表符分隔行,因此解释它们有点痛苦。他们设置 SSH 密钥对的说明为您提供了一个不受密码保护的密钥对,而不是让您使用现有的密钥对。这些程序都只是有点笨拙,不是很好的 Unix 程序。

那么,有没有更容易使用的命令行工具来访问 EC2?我知道有 ElasticFox,还有他们的基于 Web 的控制台,这确实使这个过程更容易,但我想知道是否还有其他人编写了更好的命令行工具来与 EC2 交互。

【问题讨论】:

    标签: unix command-line amazon-ec2


    【解决方案1】:

    我来晚了,但我有办法!

    我在 Amazon AMI 工具中发现了同样的问题。它们是一个不错的参考实现,但很难使用,尤其是当您有多个实例时。作为另一个项目的一部分,我编写了一个替代命令行工具,名为 Rudy,它回答了您的大部分问题

    这些命令比亚马逊的 AMI 工具更直观:

    • rudy-ec2 instances -C
    • rudy-ec2 groups -A -p 8080 -a 11.22.33.44 group-name
    • rudy-ec2 volumes -C -s 100
    • rudy-ec2 images
    • ...

    所有配置都在一个文件中 (~/.rudy/config)。

    它可以输出多种格式(yaml、json、csv、tsv,当然还有常规文本):

    rudy-ec2 -f yaml snapshots
    --- 
    :awsid: snap-2457b24d
    :progress: 100%
    :created: "2009-05-08T15:24:17.000Z"
    :volid: vol-4ee10427
    :status: completed
    

    关于私钥,没有 EC2 工具允许使用密码创建私钥用于启动公共实例,因为 API 不支持它。但是,如果您创建自己的图像,则可以使用您的私钥。

    这里有更多信息:

    【讨论】:

    • 感谢您的回答,并感谢您写鲁迪!下次我需要启动一个实例时,我会从前面的答案中尝试 Rudy 和 Tim Kay 的基于 perl 的命令行工具(我不经常使用 EC2,我只是偶尔启动一个 OpenSolaris 实例或 Fedora 实例进行测试一些我无法在 Mac OS X 和 Ubuntu 下测试的东西)。也感谢关于使用密码创建私钥的答案,尽管这很令人沮丧,因为我看不出他们为什么不让你上传自己的公钥。
    【解决方案2】:

    ElasticFox 对于大多数任务都很方便。尽管命令行工具更适合它们,但它们是场合。我个人将boto 库用于python。编写所有必需操作的脚本非常容易。您还可以使用它从 S3 上传/下载文件。一般来说,我会说像 Python 或 RUby 这样的脚本语言以及 AWS 库是最好的解决方案。

    【讨论】:

      【解决方案3】:

      我个人使用 Tim Kay 的 Perl command line tools 并且已经有一段时间没有使用基于 Java 的原始 API。非常适合 UNIX 环境。

      【讨论】:

      • 这个工具在Windows下也能很好的运行,而且它也支持S3和SQS。
      • 它现在支持 s3、ec2、sdb、elb、sqs 和(很快)iam。
      【解决方案4】:

      不是命令行,而是看看免费的RightScale 帐户会给您带来什么 - 比命令行或 ElasticFox IMO 容易得多。

      【讨论】:

      • RightScale 很贵。他们的费用将在您的 EC2 账单之上增加 50%。
      【解决方案5】:

      关于ec2-api-tools:

      我同意它们有点太笨重,我特别不喜欢 ec2-describe-instances 的输出。 我最近切换到 python-boto,它为 ec2 提供了一个非常干净且易于使用的界面。

      关于无法为 EC2 生成的 ssh 密钥指定密码:

      事实并非如此。您可以随时更改任何 ssh 私钥的密码,使用:

      ssh-keygen -p -f /path/to/keyfile
      

      例如

      ssh-keygen -p -f ~/.ssh/id_rsa
      

      关于上传自己的 ssh 密钥对:

      您可以使用 ec2-import-keypair,如下所示:

      for i in $(ec2-describe-regions|cut -f 2);do
        ec2-import-keypair --region $i mykey --public-key-file ~/.ssh/id_rsa.pub
      done
      

      上面的例子会将 ~/.ssh/id_rsa.pub 中的公钥上传到名为“mykey”的每个区域。请记住,每个区域都有自己的密钥对。

      为了在您的 ec2 实例中安装密钥,您必须将“-k mykey”选项传递给 ec2-run-instances。

      顺便说一句,上传您自己的密钥对是使用相同密钥登录所有区域的所有实例的唯一方法。如果您从 Web 界面创建密钥对,您将在每个区域拥有不同的密钥。

      【讨论】:

      • 感谢您指出这一点。我在 2009 年问过这个问题,直到 2010 才实现 ec2-import-keypair;在我问这个问题的时候,这是不可能的。
      【解决方案6】:

      我有一个名为 EC2Dream 的开源图形系统管理工具,它取代了命令行工具。它安装在 windows、linux 和 Mac OS 客户端上,并使用 Ruby 和 FXRuby 编写。请参阅 www.ec2dream.com。

      尼尔·特纳

      www.ec2dream.com

      【讨论】:

        【解决方案7】:

        如果您使用 Windows,请尝试下面链接的工具(O2 Platform 的一部分),它为您提供了一种简单的方法来启动和停止 Amazon EC2 映像(如果您需要扩展该工具,您可以轻松地添加新功能(因为它只是一个动态编译和执行的 C# 脚本)

        【讨论】:

          【解决方案8】:

          替代库的问题在于它们并不总是保持最新,因此如果发布了 AWS 的新功能,那么您需要等待。您发布了您的主要问题是一堆环境变量,在您的 PATH 中添加额外的项目等。我们有这个 BitNami 的问题,这也是我们创建 BitNami Cloud Tools 的主要原因,它提供了所有 AWS 命令​​行工具以及预配置的 Java 和 Ruby 语言运行时。您只需下载它,您需要的所有内容都将安装在一个文件夹中,而无需修改您的系统配置。我们会定期更新。

          【讨论】:

            【解决方案9】:

            有一个名为云管理的整个行业试图解决这类问题。 ScalrRightScale 以及该领域的领导者(免责声明:我在 Scalr 工作)。

            云管理软件构建在 Amazon EC2 API 之上(通常在其他公共 IaaS 上,例如 Rackspace),并提供改进的用户界面以及您提到的备份或 SSH 管理等自动化工具。他们不提供更简单的命令行工具严格意义上的。他们的目标是让与 Amazon EC2 的交互更容易。

            市场上有不同的选择:

            • ScalrScalr 作为托管服务提供试用版。 否则,您可以download 并自己安装源代码,因为它是在 Apache 2 许可下发布的。
            • RightScale:虽然它们通常被认为对小型企业来说很昂贵,但它们确实提供免费帐户。
            • enStratus:他们提供像 RightScale 这样的免费增值模式。

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 2014-06-30
              • 1970-01-01
              • 2013-08-22
              • 1970-01-01
              • 1970-01-01
              • 2011-11-20
              • 2011-11-10
              • 2011-11-24
              相关资源
              最近更新 更多