Поиск по сайту:

Что такое эластичные IP-адреса AWS и для чего они нужны?


Эластичные IP-адреса AWS — это постоянно зарезервированные IP-адреса, которые вы можете связать с работающим инстансом EC2 и которые сохраняются при перезагрузке и даже смене сервера, поэтому вам не придется менять свой DNS при каждом перезапуске сервера.

Что такое эластичные IP-адреса? Сколько они стоят?

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

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

Когда вы можете связать эластичный IP-адрес с машиной, общедоступный IP-адрес для этой машины заменяется эластичным. Связанный адрес прикрепляется к самому экземпляру; Если экземпляр выключается, эластичный IP-адрес остается на месте и снова подключается к экземпляру, когда он снова включается. Если вам нужно обновить, переключить или заменить сервер, вы можете повторно связать адрес с новым экземпляром, следовательно, с эластичным IP. Но это дает тот же эффект, что и наличие статического IP-адреса для вашего сервера.

Elastic IP — это бесплатная услуга, но вы можете использовать только пять (чтобы не исчерпать пул адресов Amazon). И хотя они полностью бесплатны для использования, на самом деле это единственный сервис AWS, который стоит денег, если вы его не используете — наличие эластичного IP-адреса, подготовленного, но не подключенного к работающей машине, будет стоить вы $7,50 в месяц. Убедитесь, что ваша машина не отключена в течение длительного периода времени, и если вы смените серверы или перестанете использовать IP, обязательно освободите ее, чтобы с вас не взималась плата за то, что она бездействовала в вашей учетной записи.

Если вы используете балансировщики нагрузки AWS, вы не захотите использовать эластичные IP-адреса, так как адрес вашего шлюза (последняя конечная точка перед выходом в Интернет) — это сам балансировщик нагрузки, который имеет статическое имя хоста (но не Статический IP). Балансировщик нагрузки работает на AWS, и вы связываете его с экземплярами на основе их идентификаторов экземпляров, а не общедоступного IP-адреса. Но если вы используете внешнюю службу CDN, такую как Fastly, вам необходимо использовать эластичные IP-адреса, поскольку IP-адрес шлюза является общедоступным IP-адресом экземпляра EC2.

Как предоставить эластичный IP-адрес

Эластичные IP-адреса предоставляются так же, как и любой другой сервис AWS. Вы можете найти их в консоли управления EC2 на вкладке «Эластичные IP-адреса»:

Создайте новый адрес с помощью кнопки «Выделить новый адрес». Вы можете указать адрес в пуле адресов Amazon (они владеют всеми адресами 3.0.0.0/8, поэтому он находится в этом блоке) или, если у вас есть собственный блок IPv4, вы можете использовать свой собственный адрес. место на AWS.

Это все, что требуется для создания эластичного IP-адреса, но вам также необходимо связать адрес с работающим экземпляром. Щелкните правой кнопкой мыши адрес в списке и выберите «Связать адрес». Вам будет предложено указать идентификатор экземпляра или сетевой интерфейс экземпляра, которому вы хотите назначить адрес.

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

Работа с эластичными IP-адресами из командной строки

Вы можете выделить новый адрес с помощью:

aws ec2 allocate-address

Адреса выпуска с:

aws ec2 release-address [allocation-id]

И перечислите используемые в настоящее время адреса с помощью:

aws ec2 describe-addresses

Если вы хотите получить идентификатор распределения, чтобы связать адрес с экземпляром, передайте его в jq:

aws ec2 describe-addresses | jq '.Addresses[0].AllocationId'

И используйте команду associate-address , чтобы связать его:

aws ec2 associate-address 
--allocation-id [string] 
--instance-id [string]

Для получения дополнительной информации вы можете обратиться к справочнику по командам CLI.