Прискорення запуску екземплярів Windows Amazon EC2


16

Я працюю над веб-сервісом, який розміщений на EC2 і якому потрібно мати різну кількість примірників, залежно від завантаження. У нас основний сервіс працює і працює, але одна з речей, з якими ми боремося, - це час, необхідний для надання та запуску екземпляра Windows (ми використовуємо деякі треті інструменти prty, які працюють лише в Windows). Я бачив, як це займає від 10 хвилин до досить приголомшливих 45 хвилин.

Хтось має поради, як пришвидшити запуск екземпляра EC2? Оскільки, наприклад, AMI для серверів Windows є великими порівняно з AMI Linux, мені цікаво, чи може бути одне, щоб переконатися, що відро S3, що містить AMI, знаходиться в тій самій зоні, де запускається екземпляр, і це, мабуть, зробити швидше надання нового примірника.

Відповіді:


8

Я встановив 3 екземпляри минулої ночі ванільного сервера Windows 2003. Перші два зайняли близько 45 хвилин, третій, приблизно через годину, пройшов цілих 2 години, перш ніж він був готовий!

У них взагалі нічого не було, без використання S3. Я сумніваюся, що існує спосіб пришвидшити цей фундаментальний крок, окрім того, як чекати від Amazon, щоб з часом покращити швидкість розгортання. Отже, я б зробив висновок, що слід очікувати певної затримки, і порада Курта хороша, а це - тримати 1 або 2 у резерві, вже готовому.

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

Після того, як ви визначите максимальний час надання, продовжуйте навантажувати / використовувати на стільки хвилин.


Дякую за пропозиції - 2 години - це досить екстремально. Одне, що я помітив, задаючи це питання, - це те, що EC2 іноді перезавантажує екземпляри Windows відразу після запуску. Я не знаю, чому це так (я не з'ясував шаблону, чому деякі екземпляри перезавантажуються, а інші -), але це може додати ще 5 або 10 хвилин до часу запуску.
gareth_bowles

2
@gareth - це тому, що машина має те саме ім'я, що й інша в мережі (тобто це зображення). EC2ConfigService виявляє це, призначає нове ім'я та перезавантажує його. Ви можете відключити це за допомогою встановленого утиліту конфігурації ec2config.
Кірен Джонстоун

20

Екземпляри Windows Amazon перезавантажуються при запуску, оскільки конфігурація сервісу Windows "Налаштування EC2" за замовчуванням полягає у перейменуванні вашого хоста на внутрішнє ім'я DNS екземпляра. Перейменування хостів потребує перезавантаження на windows. Якщо вам не потрібно використовувати внутрішнє ім’я DNS вашого примірника, ви можете отримати користь, відключивши функцію SetComputerName. Екземпляри Windows також мають перевагу в тому, що не потрібно ініціалізувати диски запуску там, де ви, можливо, вже вкомплектовані вашою конфігурацією, економлячи ще трохи часу на приклад запуску. Все це можливо через службу налаштування Windows EC2.

Служба налаштування Windows: http://docs.amazonwebservices.com/AWSEC2/latest/UserGuide/appendix-windows-config.html

Мої невеликі екземпляри Windows зазвичай завантажуються 15-18 хвилин (більші - швидше). Залежно від ваших вимог, ви, можливо, зможете комплектувати все своє програмне забезпечення в рамках AMI і мати змогу все завантажуватись та працювати протягом цього періоду. Я розумію застереження щодо того, щоб не зв'язувати все в AMI, але, можливо, варто покращити час запуску, щоб мати виробничі AMI з усім пакетом. Тримайте сценарії збірки окремо, якщо ви хочете у своїх побудовах.

Крім того, тепер, коли Amazon випустив кореневі томи EBS на відміну від кореневих томів зберігання екземплярів. Невеликі зображення Windows, які працюють на EBS, завантажуються майже за 5 хвилин проти майже 20 хвилин, які потребували раніше. Крім того, вам не потрібно припиняти роботу - ви можете зупинити / запустити їх - залежно від налаштувань, це потенційно може голити ще кілька хвилин у деяких сценаріях запуску.

По суті, налаштовуючи службу Windows EC2 Config, ваш AMI і можливо використання обсягу завантаження EBS повинні скоротити час запуску майже до 5 хвилин. Ви можете уникнути системного запуску, який запускається при запуску примірника ec2 залежно від вашої програми, особливо з метою розробки. Несистематизоване зображення m1.large, яке дозволяє уникнути зміни імені хоста при запуску, може запуститися приблизно за 2 хвилини, що зовсім не погано.

Наразі, наскільки я розумію, це найкраще, що можна зробити з Windows на Amazon EC2, але це насправді не так вже й погано. Якщо ви зможете прогнозувати близько 10 хвилин на майбутнє на основі середніх моделей використання, ви повинні мати змогу розкручувати додаткові екземпляри та обробляти додаткове навантаження.


Внутрішнє перейменування хоста - чудова порада - дякую! Я також хочу спробувати томи коренів EBS, не в останню чергу, тому що це зробить резервне копіювання набагато простіше. Я здогадуюсь, що мені доведеться передбачити 10 хвилин середнього часу запуску; це вже не така проблема сама по собі, але висока мінливість часу запуску все ще є справжнім болем.
gareth_bowles

На це слід посилатися в документах AWS.
Пітер Мунс

4

Має мінімальна система, тримати якомога більше в EBS може допомогти? Або, можливо, застосувати підхід у стилі Apache та запустити один-два у запасі?


4

Ми зіткнулися з цією точною проблемою, але дуже серйозно - наш новий запуск розширює Amazon EC2 у середовищі віртуальної лабораторії (багатокористувацькі, політики, спільний доступ тощо), тому нам потрібно було пришвидшити час початку Вікна машини. Нашим найбільшим рішенням було підтримати в нашому додатку лише обсяги на базі EBS, адже вони єдині, які можуть запуститися за 5-10 хвилин. Під час нашого тестування ми виявили, що час запуску екземплярів зберігається в широких межах і іноді займає надмірну кількість часу, що робить їх марними для нас.

Управління віртуальною лабораторією Simon @ LabSlice на EC2

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