Ответ
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.