我正试图利用亚马逊的弹性,并将实例放到网上,并停止使用AWS cli。但正如你所知,每次你离线一个系统,让它复活,它就会有一个新的IP地址。我在位于其他地方的Centos 6服务器上安装了AWS-cli包。我已经研究这个问题好几天了,但是找不到一个可以工作的命令,我可以从我的Centos盒中发出这个命令,并在亚马逊EC2上获取实例的IP地址。EC2实例已启动并正在运行。
我发现的最相关的信息是
aws ec2 describe-instances但是,我从这个命令中得到的只是一个类似于用法语法输出的东西。我还发现(并迅速丢失)一个开关--query,后面跟着一组关键字来提取这些信息。但是这个命令给了我一个回应,说--query不是一个公认的论点。我检查了这个命令的Amazon引用,它似乎只接受--filter参数,并且示例远远没有帮助。
有人知道如何做到这一点吗?
编辑更多关于我在周末发现的问题。在尝试从实例获取公共DNS信息之前,我需要一种连接到此实例的方法。无论我做什么,我都无法获得关于我所拥有的实例的信息:
$ ec2-describe-instances i-b78a096f
sanity-check: Your system clock is 50 seconds behind.
+----------------------------+---------------------------------------------+
| Code | Message |
+----------------------------+---------------------------------------------+
| InvalidInstanceID.NotFound | The instance ID 'i-b78a096f' does not exist |
+----------------------------+---------------------------------------------+我知道我的AWS_ACCESS_KEY和AWS_SECRET_KEY变量被正确地分配给它们的变量名。实例id已从AWS管理控制台复制和粘贴。为了进行测试,我编写了一个新实例,并对它测试了相同的命令,没有不同的结果。尽管当我运行ec2-describe-regions命令时,我可以看到对我来说没有问题的区域列表。我现在很傻。
发布于 2016-03-09 11:16:57
您可以使用start-instances和stop-instances命令启动/停止实例,如下所示-
aws ec2 stop-instances --instance-ids i-b78a096f
aws ec2 start-instances --instance-ids i-b78a096f您将看到没有在命令行中指定区域名称,因为AWS cli从<user_home_directory>/.aws/config文件中读取区域信息。这个文件看上去如下-
[default]
output = json
region = us-east-1此文件中区域属性的大多数可能值与实例所在的区域不同。所以你打电话去的区域和你认为应该去的区域不一样。我看不出有什么别的理由不起作用。
为了检查区域AWS的值,只需从命令行调用aws configure即可。它将询问您有关aws密钥,秘密,区域和响应格式。同时,如果不指定任何值,它将显示它将使用的值。
我在这样的场景中使用AWS cli,在这种情况下,从命令行管理AWS要快得多。不过,我已经创建了一个开源工具,用于同时可视化许多AWS资源,您可能会发现-
https://github.com/pistonportal/custom-turbine/wiki/Running-and-operating-Turbine-app 例如,您可以在此工具中打开VPC Designer,查看VPC所涵盖的所有可用性区域,哪些子网位于哪个可用性区域,哪些VM位于哪个子网中。这要么需要在AWS控制台中多次单击,要么根本不可能。
它目前无法启动/停止一个实例,但这将在今后几天内提供。
https://unix.stackexchange.com/questions/267478
复制相似问题