Ответ
Основное отличие — в постоянстве и управляемости.
- Public IP: Это динамический адрес, который AWS автоматически назначает инстансу EC2 при его запуске в подсети с доступом в интернет (через Internet Gateway). Этот адрес теряется при остановке (stop) или завершении (terminate) инстанса. Он бесплатен, но нестабилен.
- Elastic IP (EIP): Это статический публичный IPv4-адрес, зарезервированный за вашим аккаунтом AWS. Вы можете его удерживать сколь угодно долго и переназначать между инстансами или сетевыми интерфейсами (ENI) в одном регионе. Это ключевое свойство для обеспечения отказоустойчивости.
Практическое применение EIP:
- Высокая доступность: При падении инстанса в одной Availability Zone вы можете быстро переназначить EIP на standby-инстанс в другой зоне.
- Сервисы с фиксированным DNS: Если у вас нет своего домена, но нужно дать стабильный endpoint для тестирования.
Важно: За каждый выделенный, но не связанный с работающим инстансом EIP взимается небольшая почасовая плата.
Пример привязки EIP через AWS CLI:
# Аллоцируем новый EIP
ALLOC_ID=$(aws ec2 allocate-address --query 'AllocationId' --output text)
# Ассоциируем его с инстансом
aws ec2 associate-address --instance-id i-0abc123def456 --allocation-id $ALLOC_ID