У меня есть имя экземпляра ec2 и вы хотите сделать ssh. Как я могу определить "Public DNS" экземпляра ec2, используя имя экземпляра ec2.
Я хочу сделать это с помощью bash.
У меня есть имя экземпляра ec2 и вы хотите сделать ssh. Как я могу определить "Public DNS" экземпляра ec2, используя имя экземпляра ec2.
Я хочу сделать это с помощью bash.
aws ec2 describe-instances --instance-ids i-12abc34 --query 'Reservations[].Instances[].PublicDnsName'
Где i-12abc34 - ваш идентификатор экземпляра
Использование инструментов API EC2:
# Region is only needed if not in us-east-1
$ ec2-describe-instances --region <region> <instance id>
Используя единый инструмент AWS CLI:
$ aws --region <region> ec2 describe-instances --instance-ids <instance id≥
Я предпочитаю унифицированный инструмент, поскольку он предлагает исчерпывающие и согласованные данные.
Если вы установите инструмент cloud-utils, как описано в этом ответе, он будет намного более прямым вперед.
fooobar.com/questions/16232/...
ec2-metadata --public-ipv4
> public-ipv4: 54.200.4.52
Это зависит от того, что вы подразумеваете под "вычислением". Если вы имеете в виду выяснить себя, вы не можете. Открытое DNS-имя не имеет ничего общего с именем экземпляра ec2. Общее DNS-имя состоит из общедоступного IP-адреса, региона/зоны доступности, типа сервиса, имени домена aws и т.д. Например, ec2-xx-xxx-x-xx.us-west-2.compute.amazonaws.com, Поскольку публичный IP-адрес изменяется каждый раз, когда вы останавливаете и запускаете свой экземпляр, если вы не используете эластичный IP-адрес, ваше общедоступное DNS-имя будет изменено.
Если вы имеете в виду выяснить, используя AWS API или инструмент CLI, вы можете. Используя CLI EC2, вы должны использовать команду ec2-describe-экземпляры instance_id. Опять же, экземпляр должен быть запущен, а публичный DNS изменяется после остановки/запуска.
Вы можете запросить службу метаданных экземпляра.
Использование curl:
curl -s http://169.254.169.254/latest/meta-data/public-hostname
Использование wget:
wget -qO - http://169.254.169.254/latest/meta-data/public-hostname
Если смелый, фактический удар:
exec 3<> /dev/tcp/169.254.169.254/80
echo -e "GET /latest/meta-data/public-hostname HTTP/1.0\r\n\r\n" >&3
cat <&3
(Последнее оставляет соединение открытым для меня, поэтому cat
застревает. Заголовки также присутствуют в выводе)
(Это от самого экземпляра и требует доступа к экземпляру - это не версия, связанная с именем экземпляра. Здесь достаточно ответов)