Я работаю над большой сетью серверов, находящихся на EC2, и мне нужен способ, чтобы серверы знали о местонахождении друг друга в облаке. Я думал, что проще всего будет использовать DNS, потому что, если я заменю экземпляр EC2, я просто обновлю запись DNS, и остальные серверы будут знать об этом (с такими именами, как users.db.mysoft.com, routing. mysoft.com, cluster1.memcached.mysoft.com). Я подумываю о настройке главного DNS-сервера на микро / маленьком экземпляре, чтобы учесть это.
Я бы предпочел что-то настолько простое, как хранилище значений ключей (имя хоста -> IP), в которое платформа могла бы удаленно добавлять / удалять записи. Могу ли я сделать это с помощью BIND? Или есть решение получше?
Я знаю парочку возможностей.
1.) Используйте DNS-сервер с поддержкой БД, такой как PowerDNS + MySQL, и просто обновляйте базу данных, когда ваша система автоматизации устанавливает экземпляр (вы ведь используете систему автоматизации, верно?)
2.) Если вы не хотите хлопот с настройкой собственного сервера, вы можете использовать размещенную службу DNS, которая предоставляет API (например, DNSimple или Zerigo) и короткие TTL, а также отправлять обновления в размещенную службу DNS через их API.
Полное раскрытие: я запускаю DNSimple.
Я согласен с тем, что вам не следует использовать для этого эластичные IP-адреса.