Можно ли связать Elastic IP с экземпляром без немедленной потери публичного IP?
У меня есть экземпляр Windows EC2, на котором запущен производственный веб-сайт, и DNS настроен так, чтобы мое доменное имя указывало на его общедоступный IP-адрес. В настоящее время нет эластичного IP (EIP), связанного с экземпляром. Я хотел бы начать использовать Elastic IP и сделать так, чтобы мое доменное имя указывало на него, а не на публичный IP (который может измениться, если мне когда-либо придется изменить экземпляр).
Читая документацию, я нахожу это заявление тревожным:
Когда вы связываете EIP с экземпляром, текущий общедоступный IP-адрес экземпляра высвобождается в пул общедоступных IP-адресов EC2-Classic.
Мой страх такой:
- Я назначаю EIP для экземпляра, и публичный IP освобождается.
- Теперь мой веб-сайт больше не работает, потому что доменное имя указывает на публичный IP-адрес, который больше не связан с моим экземпляром EC2.
- Затем я должен указать DNS-записи в EIP. Но это может занять до 48 часов для распространения (т.е. мой сайт может быть недоступен до 48 часов).
Как я могу сделать это без необходимости жить через распространение DNS?
4 ответа
Если ваш экземпляр EC2 находится в VPC, вы можете добавить второй сетевой интерфейс в свой экземпляр EC2. Вы можете связать свой Elastic IP-адрес с этим вторым сетевым интерфейсом. Таким образом, ваш экземпляр EC2 может отвечать на оба IP-адреса.
инструкции
- Создайте новый сетевой интерфейс в той же подсети, что и ваш экземпляр EC2.
- Выделите новый Elastic IP для вашего VPC (если вы еще этого не сделали).
- Свяжите Elastic IP-адрес с вашим новым сетевым интерфейсом (eni).
- Присоедините новый сетевой интерфейс к вашему экземпляру EC2.
Не меняйте свой DNS еще.
Возможно, вам потребуется RDP/SSH в ваш экземпляр EC2, чтобы внести некоторые изменения в конфигурацию, чтобы убедиться, что ваш экземпляр EC2 правильно реагирует на новый IP-адрес.
Измените файл hosts на локальном компьютере, чтобы проверить подключение к вашему веб-сайту через новый IP-адрес.
Когда это сработает, переключите DNS и восстановите файл hosts.
За 48–72 часа до заданного времени переключения, уменьшите время жизни (TTL) для вашей записи DNS до 300 секунд (5 минут).
В указанное вами время переключения:
- Прикрепить эластичный IP-адрес
- Обновите запись DNS, указав свой эластичный IP-адрес.
При этом ваше эффективное время простоя сокращается до 5 минут.
Вы можете иметь два одинаковых экземпляра EC2. Один со старым общедоступным IP-адресом, на который указывает DNS-запись. Один с назначенным EIP. Запросы должны иметь доступ к любому из двух экземпляров, не замечая этого. Ваше приложение должно иметь возможность масштабирования по горизонтали. Затем вы изменяете запись DNS, чтобы указать на EIP. В конце концов, когда DNS обновляется, все запросы к вашему домену в конечном итоге будут передаваться в экземпляр EC2 с EIP. В этот момент вы можете остановить или прекратить работу старого экземпляра EC2.
Другая возможность, если ваше приложение не может масштабироваться горизонтально, и если это веб-приложение, веб-сервер в старом экземпляре EC2 может перенаправлять запросы в EIP. Это перенаправило бы на IP-адрес, но это возможно.
Если вы не используете инстансы EC2-Classic, вы можете свободно перемещать эластичный IP-адрес на любой другой инстанс EC2 без потери EIP.
aws ec2 associate-address --region us-east-1 --allocation-id eipalloc-xxxxxxxxxxx --allow-reassociation --network-interface-id eni-xxxxxxxxxx
где eipalloc-xxxxxxxxxxx — идентификатор эластичного IP-адреса, а eni-xxxxx — идентификатор целевого экземпляра EC2.
https://aws.amazon.com/premiumsupport/knowledge-center/ec2-recover-ip-address/
Эластичные IP-адреса
Рекомендуется использовать эластичный IP-адрес. Эластичные IP-адреса назначаются вашей учетной записи, а не экземпляру. Вы можете связать свои эластичные IP-адреса с инстансами по мере необходимости.
Если вы освободите эластичный IP-адрес, выделенный вашей учетной записи, возможно, вы сможете восстановить его. Дополнительные сведения см. в разделе Восстановление эластичного IP-адреса.
Все экземпляры, кроме экземпляров EC2-Classic, при остановке сохраняют связанные с ними эластичные IP-адреса. AWS продолжает выставлять счета за эластичные IP-адреса, связанные с остановленным экземпляром.
Примечание. Эластичные IP-адреса, связанные с экземплярами EC2-Classic, восстановлению не подлежат.