Получить общедоступный IP-адрес в текущем экземпляре EC2

Используя Amazon CLI, есть ли способ получить публичный IP-адрес текущего EC2? Я просто ищу единственное строковое значение, поэтому не возвращаются описания ответа json.

Ответ 1

Интерфейс командной строки AWS можно использовать для возврата информации о любых/всех экземплярах Amazon EC2, например:

$ aws ec2 describe-instances --instance-ids i-0c9c9b44b --query 'Reservations[*].Instances[*].PublicIpAddress' --output text

54.232.200.77

Если вы запрашиваете информацию о экземпляре EC2, из которого вы выполняете команду, то текущий IP-адрес можно получить с помощью службы метаданных экземпляра:

$ curl http://169.254.169.254/latest/meta-data/

ami-id
ami-launch-index
ami-manifest-path
block-device-mapping/
hostname
iam/
instance-action
instance-id
instance-type
local-hostname
local-ipv4
mac
metrics/
network/
placement/
profile
public-hostname
public-ipv4
public-keys/
reservation-id
security-groups
services/

Таким образом, частный IP-адрес доступен через:

$ curl http://169.254.169.254/latest/meta-data/local-ipv4

172.31.10.221

общедоступный IP-адрес доступен через:

$ curl http://169.254.169.254/latest/meta-data/public-ipv4

54.232.200.77

Ответ 2

curl http://checkip.amazonaws.com

это возвращает публичный IP-адрес.

Ответ 3

Если вы внутри экземпляра -

$ curl icanhazip.com
162.202.17.123