Если я закрою инстанс Amazon EC2, то запустлю его снова, все будет хорошо?

12

У меня есть веб-сайт, который работает на экземпляре Amazon EC2 для Linux и сопоставлен с обычным доменным именем (x.com). Этот сайт общается с базой данных на втором экземпляре EC2.

Мне нужно закрыть этот экземпляр и увеличить вычислительную мощность, стоящую за ним ... если я сделаю это, сколько времени это займет, а затем, когда я снова включу машину, мой сайт просто вернется в рабочее состояние? Будут ли сохранены IP-адрес, информация DNS и т. Д., Чтобы доменное имя продолжало работать, и оно все еще могло общаться с БД?

Кстати, это то, что я сейчас вижу для веб-сервера в информационной панели AWS EC2 (точные IP-адреса изменились незначительно, но вы поняли):

Public DNS: ec2-54-1-1-1.us-west-1.compute.amazonaws.com
Private DNS: ip-10-1-1-1.us-west-1.compute.internal
Private IPs: 10.1.1.1
Эрик
источник

Ответы:

13

Остановка и запуск загрузочного экземпляра EBS очень похожа на простую перезагрузку экземпляра с несколькими исключениями, наиболее заметным из которых является:

  1. Экземпляру присвоен новый внутренний IP-адрес.

  2. Экземпляру назначается новый публичный IP-адрес.

  3. Если экземпляр не находится в VPC, то любой Elastic IP-адрес не связан с экземпляром.

  4. Все данные об эфемерном хранилище (часто в / mnt) теряются

Есть также некоторые аспекты оплаты и доступности, которые я описал в этой статье:

Перезагрузка против остановки / запуска инстанса Amazon EC2
http://alestic.com/2011/09/ec2-reboot-stop-start

Экземпляры VPC ведут себя несколько иначе, в том числе сохраняют IP-адреса Elastic через остановку / запуск.

Если вы используете экземпляр в качестве сервера базы данных и хотите подключиться к нему по внутреннему IP-адресу (дешевле, быстрее) и вам не нужно перенастраивать клиенты базы данных после остановки / запуска, тогда вы можете назначить Elastic IP-адрес экземпляра и использовать внешнее имя Elastic IP DNS. Это преобразуется в текущий внутренний IP-адрес после того, как вы повторно сопоставите Elastic IP-адрес с перезапущенным экземпляром, и ваши клиенты будут выбирать, где они остановились.

Я подробнее расскажу об этом подходе в этой статье:

Использование Elastic IP для идентификации внутренних экземпляров в Amazon EC2
http://alestic.com/2009/06/ec2-elastic-ip-internal

Похоже, вы ожидали, что остановка / запуск - это простой способ изменить аппаратное обеспечение вашего экземпляра. Я написал об этом вместе с некоторыми инструкциями и предупреждениями в этой статье:

Перемещение экземпляра EC2 в более крупный (или меньший) тип экземпляра
http://alestic.com/2011/02/ec2-change-type

Для вашей конкретной ситуации я бы порекомендовал назначить Elastic IP-адрес экземпляру и изменить DNS, чтобы он указывал на Elastic IP-адрес, используя CNAME для внешнего DNS-имени. Вы можете сделать это сразу после остановки / запуска, или вы можете сделать это заранее, убедившись, что все работает до остановки / запуска.

Эрик Хаммонд
источник
Это все еще точно? Сегодня утром я разговаривал со службой поддержки AWS, и они сказали, что эластичный IP-адрес не отключается при остановке экземпляра. Кроме того, я никогда не видел, чтобы наши внутренние IP-адреса менялись при остановке и запуске экземпляра.
bshacklett
@bsacklett Этот ответ был немного устаревшим. Я обновил его, чтобы объяснить, что только экземпляры не-VPC теряют эластичный IP. Сегодня большинство экземпляров действительно VPC.
Эрик Хаммонд
4

Итак, похоже, что вы не используете Elastic IP, как я вижу из вашей информации.

Я считаю, что вы должны использовать CNAME в DNS, чтобы указать на этот экземпляр. Если вы перезагрузите компьютер, это ec2-54-1-1-1.us-west-1.compute.amazonaws.comDNS-имя изменится, и ваш сайт перестанет работать.

Что касается внутреннего IP-адреса, он также изменится, если вы не используете VPC, которым вы не являетесь.

Итак, на вашем месте я буду очень осторожен при перезапуске этой Машины.

Что касается времени, то это займет всего пару минут.

Кроме того, если у вас есть какие-либо iptables, работающие на экземпляре БД, который позволяет только этому внутреннему IP-адресу подключаться к БД, он также не будет работать, так как ваш внутренний IP-адрес изменится.

Поэтому, пожалуйста, будьте осторожны, если хотите перезапустить этот экземпляр и тщательно обдумать его.

Napster_X
источник
2

Ваш внутренний IP / имя хоста изменится, а ваш Elastic IP будет отключен (если вы не являетесь VPC).

Повторно подключите Elastic IP после перезапуска экземпляра. Я регулярно делаю это для изменения размеров экземпляров, а вы смотрите только на пару минут простоя.

Убедитесь, что Apache и все другие службы настроены на запуск ( chkconfigесли вы используете amazon linux ami).

Джейсон Флойд
источник
1

Насколько я помню, остановка системы, изменение ее типа и повторный запуск не должны занимать более 5-10 минут (это говорит о том, что это система, поддерживаемая EBS). Чтобы службы запускались после того, как система вернулась, убедитесь, что у вас включены все службы для запуска при перезагрузке (как для puppet в моем Ubuntu 12.04, я включил его в / etc / default / puppet). Запишите IP-адрес (я сделал это давно, так что не помню четко), и в большинстве случаев ваш IP-адрес может быть отключен от системы, но он все равно будет в вашей учетной записи, поэтому перейдите в раздел Elastic IP и снова свяжите его с перезапустил систему и у тебя все будет хорошо.

АПЗ
источник
1

Как уже упоминалось, если у вас есть эластичный IP-адрес, он будет повторно присоединен к экземпляру, поэтому к настройкам DNS не нужно прикасаться. Однако, так или иначе, ваш частный IP изменится. Это, вероятно, будет означать, что вам нужно обновить настройки GRANT в mysql. Потому что ты не просто GRANT ALL PRIVILEGES ON *.* to 'somedude'@'%'... верно? ;)

chrskly
источник