Экземпляры EC2 не будут сохранять эластичность IP
Итак, я не понимаю, что здесь происходит... У меня есть (3) экземпляры Micro EC2, которые запускаются (без эластичного IP)
Я тогда иду в Network Security->Elastic IPs
и нажмите ассоциированный IP-адрес. Я выбрал работающий экземпляр EC2, который затем использует эластичный IP.
Если я stop
тогда start
этот тот же самый экземпляр ec2, он не имеет того же предыдущего эластичного IP-адреса и вместо этого является совершенно новым IP-адресом. Это портит скрипты, которые затем зависят от ранее связанного эластичного ip с этим экземпляром EC2.
Почему это происходит и почему я не могу заставить какой-либо из (3) экземпляров принять и сохранить этот назначенный эластичный ip?
3 ответа
Эластичные IP-адреса становятся не связанными с экземплярами EC2 (в EC2-Classic), когда вы их останавливаете. Вам нужно будет повторно связать их снова при запуске, что можно сделать через API (через AssociateAddress), CLI (через ec2-associate-address) или через консоль AWS.
Вот что говорит по этому поводу документация Elastic IP:
Когда вы связываете EIP с экземпляром, текущий общедоступный IP-адрес экземпляра высвобождается в пул общедоступных IP-адресов EC2-Classic. Если вы отсоединяете EIP от экземпляра, ему автоматически назначается новый публичный IP-адрес в течение нескольких минут. Кроме того, остановка экземпляра также отсоединяет EIP от него.
Мы решаем это на работе, помечая наши экземпляры dev (которые отключаются на ночь) желаемым эластичным IP-адресом и запускаем скрипт утром, чтобы сначала включить их, а затем заново связать эластичный IP-адрес.
Если вы создадите VPC, а затем повторно предоставите 3 микроэкземпляра в рамках VPC, связанные с ними EIP останутся связанными во время циклов остановки / запуска. Вы не сможете повторно использовать существующие экземпляры EC2 или EIP; вам придется воссоздать их под новым VPC.
Если вы готовы платить за NAT-шлюз (плата за час + за обработанный трафик ГБ), вы можете создать NAT-шлюз для подключения Elastic IP к вашей частной подсети VPC (вам нужно создать маршрут для подсети, указать на nat-gateway и измените точку маршрута по умолчанию на igw-id).
После этого любой перезапуск экземпляра EC2 будет влиять на Elastic IP.