如何使用AWS CLI从外部获取EC2实例的公共DNS



我有一个实例,并计划在不久的将来拥有更多,但前提是我可以从外部世界管理它们。因此,我需要远程请求新服务器,随意启动或关闭它们。因此,由于IP地址每次都会更改,我需要一种方法来查询服务器的公共DNS名称。所有这些都需要通过AWS CLI来完成。

对于;过去几天,我一直在努力寻找这些信息,终于来了。

我的服务器,在EC2集群之外,安装了AWS CLI。我从IAM页面复制了我的"访问密钥ID",并将其分配给该服务器上的适当变量

$ echo $AWS_ACCESS_KEY
XXXXXXXXXXXX4PEXXXXX
$ ec2-describe-instances
sanity-check: Your system clock is 302 seconds behind.
<?xml version="1.0" encoding="UTF-8"?>
<DescribeInstancesResponse xmlns="http://ec2.amazonaws.com/doc/2013-10-15/">
        <requestId>53eb7530-2147-4ab6-8d6c-d9ddbdeef290</requestId>
        <reservationSet/>
</DescribeInstancesResponse>
$ ec2-describe-instances i-4XXXXXX0
sanity-check: Your system clock is 302 seconds behind.
+----------------------------+---------------------------------------------+
|            Code            |                   Message                   |
+----------------------------+---------------------------------------------+
| InvalidInstanceID.NotFound | The instance ID 'i-4XXXXXX0' does not exist |
+----------------------------+---------------------------------------------+

密钥和实例号都已从控制台复制并粘贴到终端窗口中。他们两个都不可能有错别字。

首先,您需要正确配置AWS CLI,并在您的AWS ACCESS KEY和SECRET中烘焙,后者具有描述实例的策略。

有关如何设置aws-cli的更多信息,请访问链接http://docs.aws.amazon.com/cli/latest/userguide/cli-chap-getting-started.html

一旦操作正确,就可以通过在查询中传递区域来列出特定区域中的ec2实例。示例:-描述美国西部-2地区的所有ec2实例。

aws ec2 describe-instances --region us-west-1

您还可以使用带有管道符号的"jq"来解析json,并只获取ec2实例的公共ip。

1.你能在服务器中安装NTP并尝试吗?你可以看到错误"

安装NTP:
yum install ntp
service ntpd restart

等待一段时间以同步时间&然后根据命令开火,
ec2-describe-instances i-4XXXXXX0

希望它能有所帮助:)

最新更新