Я ДУМАЮ, что это может случиться и чего я хочу.
Я создаю VPC в Amazon, помещаю в него общедоступную подсеть, помещаю экземпляр марионеточного сервера и экземпляр веб-сервера полного стека в VPC.
Теперь я установил имя хоста для марионеточного сервера «марионетка», а для веб-сервера - «веб-сервер».
Затем я устанавливаю параметр DHCP с именем домена как «my-company-name.com.local», использую DNS, предоставленный Amazon, и связываю его с VPC. Я создаю запись зоны, используя Route 53 с тем же доменным именем.
Затем я заставляю два экземпляра получить новую аренду DHCP и VOILA! они получают частные IP-адреса, а DNS автоматически обновляется для прямого и обратного поиска DNS.
Теперь «puppet.mycompany.com.local» может найти «webserver.mycompany.com.local» и наоборот в частной части сети в моем VPC.
Вот два вопроса: A) Так ли работают DNS и DHCP (особенно автоматическое взаимодействие между ними)? Мне не нужно вручную вводить IP-адреса, назначенные DHCP, в записях DNS, не так ли? Б) Как мне настроить это на работу, наиболее вероятно, какие записи DNS мне нужно создать и какие-либо другие шаги?
Кажется, есть два подхода. Но при резервном копировании второй НЕТ ДИНАМИЧЕСКОГО DNS в Route 53, то есть НИКАКОГО СОТРУДНИЧЕСТВА МЕЖДУ DHCP и DNS в VPC на AWS.
Подход 1: http://www.ducea.com/2009/06/01/howto-update-dns-hostnames-automatically-for-your-amazon-ec2-instances/ (Требуется DNS-сервер Bind9 в сети)
Подход 2: http://cantina.co/automated-dns-for-aws-instances-using-route-53/ (требуется набор скриптов и загруженные библиотеки, а также помещаются учетные данные роли IAM, позволяющие обновлять DNS НА КАЖДОМ СЕРВЕРЕ В ВАШЕЙ СИСТЕМЕ. Один взломанный ящик, и ваша сеть - тост).
Что я собираюсь делать? Мне все равно нужно запустить puppet, и TheForeman поставляется с Bind9 и включенным DHCP-сервером. Так что я просто посвящу этому пример.
Я использовал детали вышеуказанного вопроса; вот еще кое-что:
В вашей внутренней зоне хостинга (например, здесь в), создайте CNAME, а не записи A для ваших хостов, например
test.in. CNAME ip-10-0-9.56.us-west-2.compute.internal
Для набора параметров DHCP убедитесь, что у вас есть следующий набор
domain-name = in
domain-name-servers = AmazonProvidedDNS
Если вы используете сценарий для развертывания экземпляра ec2: вы можете установить запись DNS одновременно с ее созданием, то есть (terraform)
resource "aws_route53_record" "ec2_alias_record" {
zone_id = "${var.domain_id}"
name = "MyComputer"
type = "CNAME"
ttl = "300"
records = ["${aws_instance.ec2_instance.public_ip}"]
}
Каждый раз, когда вы создаете (воссоздаете) экземпляр, запись обновляется. И вы можете параметризовать, чтобы создать N экземпляров и N записей с некоторой переменной count.index +1 в цикле. Надеюсь это поможет.