В чем разница между Elastic IP и Public IP в AWS

«В чем разница между Elastic IP и Public IP в AWS» — вопрос из категории Облачные платформы, который задают на 26% собеседований Devops Инженер. Ниже — развёрнутый ответ с разбором ключевых моментов.

Ответ

Основное отличие — в постоянстве и управляемости.

  • Public IP: Это динамический адрес, который AWS автоматически назначает инстансу EC2 при его запуске в подсети с доступом в интернет (через Internet Gateway). Этот адрес теряется при остановке (stop) или завершении (terminate) инстанса. Он бесплатен, но нестабилен.
  • Elastic IP (EIP): Это статический публичный IPv4-адрес, зарезервированный за вашим аккаунтом AWS. Вы можете его удерживать сколь угодно долго и переназначать между инстансами или сетевыми интерфейсами (ENI) в одном регионе. Это ключевое свойство для обеспечения отказоустойчивости.

Практическое применение EIP:

  1. Высокая доступность: При падении инстанса в одной Availability Zone вы можете быстро переназначить EIP на standby-инстанс в другой зоне.
  2. Сервисы с фиксированным 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