2013-08-26 5 views
2

У меня есть экземпляр Windows 2008r2 на Amazon EC2. Я хотел бы иметь возможность получить доступ к его «Public DNS Name» из экземпляра. Имя публичного DNS также можно найти на моей консоли AWS EC2.Как определить «Public DNS Name» из экземпляра Amazon EC2?

Есть ли способ сделать это?

+0

Может ли обратный поиск DNS решить это? Если вы не изменили его в консоли, он вернется к чему-то вроде ec2-50-16-114-10.compute-1.amazonaws.com. –

ответ

4

Unknown's answer технически правильно (+1), но для того, чтобы обеспечить фон и некоторые детали, я хотел бы отметить соответствующий Amazon EC2 Instance Metadata and User Data:

Instance метаданные это данные о ваш экземпляр EC2, который вы можете использовать для , настроит или управляет запущенным экземпляром. Метаданные экземпляра делятся на категории . Для получения дополнительной информации см. Instance Metadata Categories.

Одна из многих доступных категорий метаданных является public-hostname: публичный DNS

данного экземпляра. Если экземпляр находится в VPC, эта категория возвращается только в том случае, если для атрибута enableDnsHostnames установлено значение true. Для получения дополнительной информации см. Using DNS with Your VPC.

Вы можете Retrieve Instance Metadata внутри работающий экземпляр EC2 через выделенный URI http://169.254.169.254/latest/meta-data/ с любой HTTP, способный инструментом, например, вездесущий cURL, настоятельно рекомендуется HTTPie (CLI, cURL-подобный инструмент для людей) и, конечно, наиболее очевидный для вашего прецедента с PowerShell, особенно. версия 3.0+, например:

PS> $publicHostname = Invoke-WebRequest ` 
     -Uri http://169.254.169.254/latest/meta-data/public-hostname 
+0

Спасибо. Работает как шарм. Конечно, поскольку я парень Ruby, я использовал: RestClient.get "http://169.254.169.254/latest/meta-data/public-hostname" –

3

Посмотрите here, но используйте public-hostname вместо instance-id.