Почему Amazon EC2 Elastic IP рекомендуется использовать с CNAME, а не с записью "A"?
Я настраиваю сервер на EC2, который будет использоваться людьми, которые будут в шоке, когда увидят ec2-111-111-111-111.compute-1.amazonaws.com в строке URL. Я знаю, что это можно решить с помощью записи A, а не CNAME, но в документации Amazon говорится, что нужно использовать CNAME.
Что произойдет, если я использую запись? Я видел в Интернете несколько учебных пособий, в которых говорилось, как это сделать, но мне также нужен надежный веб-сайт.
Веб-сайт просто работает с использованием одного экземпляра и, вероятно, будет работать только с одним экземпляром, поэтому я не думаю, что имеет значение, когда несколько экземпляров взаимодействуют друг с другом.
4 ответа
Упрощенная версия: записи указывают на IP-адреса. CNAME указывает на другие записи А.
Вы можете использовать запись A, но для этого у вас должен быть высокодоступный IP-адрес для вашего экземпляра EC2. Amazon называет этот продукт "Эластичные IP-адреса".
Если вы настроили CNAME для записи A, которой управляет Amazon, то Amazon сможет контролировать уровень косвенности. Например, после сбоя сервера Amazon может использовать это для изменения записи A на новый IP-адрес. Таким образом Amazon сможет заставить сервис работать снова, и вам не придется ничего менять.
Вообще говоря, рекомендуется использовать 2 DNS-записи, A-запись для конкретного сервера и CNAME для предоставляемых им сервисов, таких как "www.". Таким образом, вы получаете четкое разделение между оборудованием и службами, и во многих случаях это облегчает администрирование.
Поэтому, если вы не платите за "Эластичные IP-адреса", вам следует использовать CNAME для записи A, которую Amazon установил для вас, то есть CNAME для "www.yourdomain.com", указывающей на "ec2-111-111". -111-111.compute-1.amazonaws.com "..
ec2-*.amazonaws.com
Имена хостов разрешаются по разным IP-адресам в зависимости от того, разрешаете ли вы их извне из Интернета или из другого экземпляра EC2.
Это означает, что если у вас есть два сервера EC2 - скажем, сервер базы данных и веб-сервер - ваш веб-сервер будет видеть сервер базы данных по внутреннему IP-адресу 10.xxx, а из внешнего мира вы увидите веб-сервер на обычный не частный IP-адрес. (Конечно, вы бы не хотели, чтобы сервер баз данных был виден из внешнего мира, но это всего лишь удобный пример.)
Если вы используете Elastic IP-адрес, у вас есть известный постоянный IP-адрес, и вполне допустимо использовать запись A, чтобы указать на него. Если у вас нет Elastic IP (и почему нет, они бесплатны), похоже, что вы захотите использовать CNAME на случай, если Amazon изменит ваш IP-адрес.
Но если у вас есть несколько серверов, я бы по-прежнему использовал CNAME, чтобы вы получили волшебное разрешение внутренних / внешних IP-адресов.
Они никогда не увидят ec2-111-111-111-111.compute-1.amazonaws.com с записью CNAME. Если при переходе на ваш домен CNAME вы перенаправляетесь на URL-адрес amazonaws.com, это не связано с тем, что это CNAME, а с тем, что делает ваше приложение или веб-сервер.
Причиной использования записи CNAME является то, что сайт доступен как внутри, так и снаружи ec2.
Например, взять пинг. Если вы пингуете c2-111-111-111-111.compute-1.amazonaws.com внешне, он разрешается до 111.111.111.111, а внутри - по адресу 10.0.0.0/8. Однако, если вы пингуете 111.111.111.111, он не будет доступен внутри.