Amazon EC2的替代工具?

时间:2009-04-09 06:11:29

标签: unix command-line amazon-ec2

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

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

9 个答案:

答案 0 :(得分:11)

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

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

以下是更多信息:

答案 1 :(得分:4)

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

答案 2 :(得分:4)

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

答案 3 :(得分:3)

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

答案 4 :(得分:1)

关于ec2-api-tools:

我同意他们有点过于笨重,我特别不喜欢ec2-describe-instances的输出。 我最近改用了python-boto,它为ec2提供了一个非常简洁易用的界面。

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

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

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

E.g。

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

答案 5 :(得分:0)

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

Neill Turner

www.ec2dream.com

答案 6 :(得分:0)

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

答案 7 :(得分:0)

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

答案 8 :(得分:0)

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

云管理软件构建于Amazon EC2 API之上(通常位于其他公共IaaS,如Rackspace),并提供改进的用户界面以及备份或SSH管理等自动化工具。它们不提供更简单的命令行工具。他们的目标是更轻松地与Amazon EC2进行互动。

市场上有不同的选择:

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