Назад | Перейти на главную страницу

Почему рекомендуется использовать эластичные IP-адреса Amazon EC2 с CNAME, а не с записью «A»?

Я настраиваю сервер на EC2, который будет использоваться людьми, которые будут напуганы, когда увидят ec2-111-111-111-111.compute-1.amazonaws.com в строке URL. Я знаю, что это можно решить, используя запись A, а не CNAME, но в документации Amazon говорится, что нужно использовать CNAME.

Что произойдет, если я использую запись A? Я видел в сети несколько руководств, в которых говорилось, что надо делать это, но мне также нужно, чтобы мой сайт был надежным.

Веб-сайт работает только с одним экземпляром и, вероятно, будет работать только с одним экземпляром, поэтому я не думаю, что важно, чтобы несколько экземпляров разговаривали друг с другом.

Упрощенная версия: записи указывают на IP-адреса. CNAME указывает на другие записи A.

Вы можете использовать запись 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-адрес. (Конечно, вам не хотелось бы, чтобы сервер базы данных был виден из внешнего мира, но это всего лишь удобный пример.)

Если вы используете эластичный IP-адрес, у вас есть известный постоянный IP-адрес, и можно использовать запись A для указания на него. если ты не имеют эластичный IP-адрес (а почему бы и нет, они бесплатны), похоже, вы захотите использовать CNAME на случай, если Amazon изменит ваш IP-адрес.

Но если у вас несколько серверов, я бы все равно пошел с CNAME, чтобы вы получили волшебное разрешение внутреннего / внешнего IP-адреса.

Они никогда не увидят ec2-111-111-111-111.compute-1.amazonaws.com с записью CNAME. Если переход на ваш домен CNAMEed перенаправляет на 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, он не будет доступен для внутреннего использования.