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

При работе с инстансами Amazon EC2 важно иметь легкий доступ к идентификатору и IP-адресу инстанса для выполнения различных административных задач. В этой статье мы рассмотрим пять различных методов получения идентификатора и IP-адреса экземпляра EC2 с помощью команды SSH. Каждый метод будет сопровождаться примером кода, который поможет вам эффективно его реализовать.

Метод 1: Служба метаданных EC2
Служба метаданных EC2 предоставляет информацию о работающем экземпляре. Вы можете использовать команду SSH для запроса службы и извлечения идентификатора экземпляра и IP-адреса. Вот пример:

instance_id=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)
ip_address=$(curl -s http://169.254.169.254/latest/meta-data/public-ipv4)
echo "Instance ID: $instance_id"
echo "IP Address: $ip_address"

Метод 2: AWS CLI
Интерфейс командной строки (CLI) AWS предоставляет полный набор инструментов для управления ресурсами AWS. Вы можете использовать команду aws ec2 describe-instancesчерез SSH, чтобы получить идентификатор экземпляра и IP-адрес. Вот пример:

instance_id=$(aws ec2 describe-instances --query "Reservations[0].Instances[0].InstanceId" --output text)
ip_address=$(aws ec2 describe-instances --query "Reservations[0].Instances[0].PublicIpAddress" --output text)
echo "Instance ID: $instance_id"
echo "IP Address: $ip_address"

Метод 3: AWS SDK
Комплекты средств разработки программного обеспечения AWS (SDK) предоставляют API-интерфейсы для конкретного языка для взаимодействия с сервисами AWS. Вы можете написать сценарий, используя AWS SDK, для получения идентификатора и IP-адреса экземпляра. Вот пример использования Python SDK (Boto3):

import boto3
ec2 = boto3.client('ec2')
response = ec2.describe_instances()
instance_id = response['Reservations'][0]['Instances'][0]['InstanceId']
ip_address = response['Reservations'][0]['Instances'][0]['PublicIpAddress']
print("Instance ID:", instance_id)
print("IP Address:", ip_address)

Метод 4. Анализ метаданных экземпляра EC2
Другой метод включает анализ метаданных экземпляра EC2 непосредственно из экземпляра с помощью команды SSH. Вот пример использования процессора JSON командной строки jq:

instance_id=$(ssh -o "StrictHostKeyChecking=no" user@hostname "curl -s http://169.254.169.254/latest/dynamic/instance-identity/document | jq -r .instanceId")
ip_address=$(ssh -o "StrictHostKeyChecking=no" user@hostname "curl -s http://169.254.169.254/latest/meta-data/public-ipv4")
echo "Instance ID: $instance_id"
echo "IP Address: $ip_address"

Метод 5: собственный сценарий на экземпляре
Вы можете создать собственный сценарий на самом экземпляре EC2, который получает и отображает идентификатор и IP-адрес экземпляра. Подключитесь к экземпляру по SSH и выполните скрипт. Вот пример:

#!/bin/bash
instance_id=$(curl -s http://169.254.169.254/latest/meta-data/instance-id)
ip_address=$(curl -s http://169.254.169.254/latest/meta-data/public-ipv4)
echo "Instance ID: $instance_id"
echo "IP Address: $ip_address"