亚马逊EC2的替代工具?

亚马逊与EC2互动的官方工具是一种笨重和痛苦的处理。 我必须设置一堆环境variables,为EC2存储单独的私钥,将额外的项目添加到我的PATH,等等。 他们都输出制表符分隔的行,数百个字符长,没有标题,所以解释它们有点痛苦。 他们设置SSH密钥对的指令给你一个不受密码保护的指令,而不是让你使用已有的密钥对。 这些程序都只是有点笨重,并不是很好的Unix程序。

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

我有点晚,但我有一个解决方案!

我发现与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不支持。 但是,如果您创建自己的图像,则可以使用您的私钥。

以下是更多信息:

  • GitHub项目
  • 介绍rudy-ec2

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

我个人使用Tim Kay的Perl 命令行工具,并且还没有使用原始的基于Java的API一段时间。 非常适合UNIX环境。

不是命令行,而是看一看免费的RightScale账户会给你什么 – 比命令行或ElasticFox IMO更容易。

关于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界面创建密钥对,则每个地区都有不同的密钥。

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

尼尔·特纳

http://www.ec2dream.com

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

  • O2工具 – Amazon EC2浏览器
  • Amazon EC2浏览器 – 停止实例的计时器

替代库的问题是它们并不总是保持最新,所以如果AWS的新功能被释放,那么你需要等待。 您发布的主要问题是大量的环境变量,向PATH添加额外的项目等。我们在BitNami中遇到了这个问题,也是我们创建BitNami Cloud Tools的主要原因,它将所有AWS命令行工具预先配置的Java和Ruby语言运行时。 您只需将其下载,并将所需的所有内容都安装到文件夹中,而无需修改系统配置。 我们经常保持最新。

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

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

市场上有不同的选择:

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