Что такое Elastic IP в AWS и какую проблему он решает

Ответ

Elastic IP (EIP) — это статический публичный IPv4-адрес в AWS, который можно выделить для своего аккаунта и динамически привязывать к различным ресурсам, например, к EC2-инстансам или сетевым интерфейсам.

Проблема, которую он решает:

По умолчанию публичный IP-адрес, назначаемый EC2-инстансу, является динамическим. Он меняется каждый раз, когда инстанс останавливается и запускается. Это делает невозможным надежное обращение к серверу по IP-адресу (например, через DNS A-запись).

Решение с помощью Elastic IP:

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

Ключевые особенности:

  • Статичность: Адрес не меняется при перезапуске или замене инстанса.
  • Гибкость: Можно быстро переназначить EIP на другой инстанс в том же регионе для минимизации времени простоя.
  • Тарификация: EIP бесплатен, пока он привязан к работающему EC2-инстансу. Плата взимается, если EIP выделен, но не используется, чтобы мотивировать освобождение дефицитных IPv4-адресов.

Пример привязки EIP к инстансу с помощью Python (boto3):

import boto3

ec2 = boto3.client('ec2', region_name='us-east-1')

# 1. Выделяем новый Elastic IP
response = ec2.allocate_address(Domain='vpc')
allocation_id = response['AllocationId']
public_ip = response['PublicIp']

print(f"Выделен новый EIP: {public_ip}")

# 2. Привязываем его к существующему инстансу
ec2.associate_address(
    InstanceId='i-0123456789abcdef0', # ID вашего инстанса
    AllocationId=allocation_id
)

print(f"EIP {public_ip} успешно привязан к инстансу.")

Аналогичные сервисы есть и у других провайдеров: Static IP в Google Cloud и Public IP addresses (Static) в Azure.