Якщо я вимкну екземпляр Amazon EC2, то запустити його знову, чи все буде гаразд?


12

У мене є веб-сайт, який працює на базі Amazon EC2 Linux-примірника і відображається на звичайне доменне ім’я (x.com). Цей сайт спілкується з базою даних другого екземпляра EC2.

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

FYI - це те, що я зараз бачу для веб-сервера на інформаційній панелі 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 мають дещо іншу поведінку, включаючи збереження Elastic IP-адрес через зупинку / запуск.

Якщо ви використовуєте екземпляр як сервер бази даних, і хочете підключитися до нього за допомогою внутрішньої IP-адреси (дешевше, швидше), і вам не потрібно переконфігурувати клієнтів бази даних після зупинки / запуску, тоді ви можете призначити еластичну IP-адресу до екземпляра та використовувати зовнішнє ім’я Elastic IP DNS. Це вирішиться до поточної внутрішньої IP-адреси після повторного пов'язування Elastic IP-адреси з перезапущеним екземпляром, і ваші клієнти підберуть місце, де вони зупинилися.

Більш детально про цей підхід я розкриваю в цій статті:

Використання еластичного 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.comназва DNS зміниться, і ваш сайт припинить роботу.

Що стосується внутрішнього IP-адреси, він також зміниться, якщо ви не використовуєте VPC, якого ви не є.

Отже, якби я був ти, я буду дуже обережним при перезапуску цієї машини.

Що стосується Часу, це займе нічого більше, ніж пару хвилин.

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

Отже, будь ласка, будьте обережні, якщо хочете перезапустити цей примірник, і ретельно продумайте його.


2

Ваш внутрішній IP / ім'я хоста зміниться, і ваш Elastic IP від'єднається (якщо ви не в VPC).

Знову приєднайте еластичний IP після перезавантаження екземпляра. Я регулярно роблю це, щоб змінювати розміри примірників, і ви переглядаєте лише пару хвилин простою.

Перевірте Apache та будь-які інші сервіси налаштовані на запуск ( chkconfigякщо ви працюєте з amazon linux ami).


1

Наскільки я пам’ятаю, зупинення системи, що змінює свій тип, і запуск її знову не повинно зайняти більше 5–10 хв (не заперечується, що її підтримує система EBS). Щоб сервіси запускалися після повернення системи, переконайтеся, що у вас є всі сервіси, включені для запуску при перезавантаженні (як, наприклад, для маріонетки на моєму ubuntu 12.04. У мене це включено в / etc / default / puppet) Зверніть увагу на IP-адресу (я це робив довго, тому не пам'ятаю чітко), і в кращому випадку ваш IP може відірватися від системи, але він все одно буде там у вашому обліковому записі, тож перейдіть у розділ Еластичний IP та зв’яжіть його знову з перезапустіть систему, і у вас все буде добре.


1

Як уже згадувалося, якщо у вас еластичний IP-адресу, він знову приєднається до примірника, тому ваші налаштування DNS не потрібно чіпати. Так чи інакше, однак, ваш приватний IP зміниться. Це, ймовірно, означає, що вам потрібно буде оновити налаштування GRANT в mysql. - Тому що ти не просто GRANT ALL PRIVILEGES ON *.* to 'somedude'@'%'... правда? ;)

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.