Списком
Віртуальні машини є базовим будівельним блоком IaaS і, ширше, всієї хмарної інфраструктури. Концепція VM у хмарі є прямим розвитком технологій віртуалізації, що виникли ще у 1970-х на мейнфреймах IBM. Проте саме хмарна реалізація — з миттєвим розгортанням, гнучким масштабуванням і погодинною тарифікацією — перетворила VM із дорогого корпоративного інструменту на загальнодоступний ресурс.
Розуміння принципів роботи хмарних VM, їх типів, моделей оплати і механізмів масштабування є фундаментальною навичкою для будь-якого архітектора або адміністратора хмарних систем.
IaaS (Infrastructure as a Service) — модель хмарних послуг, за якої провайдер надає клієнту доступ до базових обчислювальних ресурсів: віртуальних машин, сховища та мередж. Клієнт управляє всім програмним стеком: операційною системою, проміжним ПЗ, застосунками та даними.
Якщо PaaS можна порівняти з оренддю повністю укомплектованого офісу (необхідно лише принести своїх співробітників), то IaaS — це оренда порожнього приміщення з підключеними комунікаціями. Ви самі вирішуєте, яку меблі (ОС), обладнання (ПЗ) і як організувати роботу.
IaaS є оптимальним вибором у таких сценаріях:
| Сценарій | Обґрунтування |
|---|---|
| Lift-and-shift міграція | Перенесення існуючих on-premise VM у хмару без переписування застосунків |
| Специфічні вимоги до ОС | Потреба у конкретній версії ОС, кастомних ядерних модулях |
| Спадщинні застосунки | Старі застосунки, що не підтримують PaaS-платформи |
| Повний контроль | Корпоративні вимоги до безпеки: custom SELinux, специфічне мережеве налаштування |
| HPC та ML-тренування | GPU-інстанси для ресурсоємних обчислень |
| Бази даних (self-managed) | Специфічна СУБД або версія, що не підтримується DBaaS |
Хмарна VM — це програмна емуляція фізичного сервера, що запускається поверх реального фізичного обладнання за допомогою гіпервізора (Hypervisor).
Гіпервізор — спеціалізований програмний шар, що:
Гіпервізор Тип 1 (Bare-metal): Встановлюється безпосередньо на фізичне обладнання. Найкраща продуктивність.
AWS EC2 пропонує сотні типів VM, згрупованих у родини за оптимізацією під конкретне навантаження:
Загального призначення (General Purpose):
Оптимізовані під обчислення (Compute Optimized):
Оптимізовані під пам’ять (Memory Optimized):
Оптимізовані під зберігання (Storage Optimized):
Прискорені (Accelerated Computing) — GPU/FPGA:
Тип EC2 читається за чітким форматом:
m 7 g . 2xlarge
│ │ │ │
│ │ │ └── Розмір: nano, micro, small, medium, large, xlarge, 2xlarge...
│ │ └────────── Процесор: g=AWS Graviton (ARM), a=AMD, пусто=Intel
│ └───────────── Покоління: 7 (новіше = краще)
└──────────────── Родина: m=general, c=compute, r=memory, i=storage, p/g=GPU
На прикладі родини m6i:
| Тип | vCPU | RAM (GiB) | Мережа (Гбіт/с) | EBS-пропускна здатність |
|---|---|---|---|---|
| m6i.large | 2 | 8 | До 12,5 | До 10 Гбіт/с |
| m6i.xlarge | 4 | 16 | До 12,5 | До 10 Гбіт/с |
| m6i.2xlarge | 8 | 32 | До 12,5 | До 10 Гбіт/с |
| m6i.4xlarge | 16 | 64 | 12,5 | 10 Гбіт/с |
| m6i.8xlarge | 32 | 128 | 25 | 25 Гбіт/с |
| m6i.16xlarge | 64 | 256 | 50 | 50 Гбіт/с |
| m6i.32xlarge | 128 | 512 | 50 | 50 Гбіт/с |
| m6i.metal | 128 | 512 | 50 | 50 Гбіт/с (bare-metal) |
AMI (Amazon Machine Image) — шаблон, що містить операційну систему, налаштування та початковий набір програмного забезпечення для запуску EC2-інстансу.
Типи AMI:
Golden Image (Golden AMI):
Практика створення власного AMI зі всіма необхідними корпоративними налаштуваннями — патчами безпеки, агентами моніторингу, конфігурацією логування. Замість того щоб налаштовувати кожен новий сервер вручну — запускається golden image.
Azure Virtual Machines:
Серії Azure VM: A (базові), B (burstable, аналог T3), D (загального призначення), E (пам’ять), F (обчислення), G/M (великий RAM), N (GPU).
Аналог AMI — Azure Marketplace image або Managed Image / Shared Image Gallery.
Google Compute Engine:
Типи машин GCE: E2 (загального призначення, дешевший), N2/N2D (збалансований), C3 (обчислення), M2/M3 (пам’ять), A2/A3 (GPU NVIDIA).
Preemptible VMs / Spot VMs — GCE-аналог AWS Spot Instances (розглядається далі).
pending running stopping stopped
┌─────────────► ┌─────────────┐ ◄────────────── ┌──────────────┐
Launch │ running │ stop │ stopped │
│ (тарифікація)│ ──────────────► │ (EBS-диск │
└──────┬────────┘ start │ зберігається│
│ ◄────────────── └──────────────┘
│ terminate
▼
terminated
(інстанс видалено)
Стани та тарифікація:
Stop (Зупинка): инстанс зупиняється, дані на EBS-диску зберігаються. При наступному запуску може бути запущений на іншому фізичному хості (зміниться публічна IP-адреса, якщо не використовується Elastic IP).
Hibernate (Сплячий режим): стан оперативної пам’яті (RAM) записується на диск. При наступному запуску — відновлення з попередньього стану. Корисно для збереження тривалих обчислень.
Terminate (Завершення): інстанс знищується назавжди. Root EBS-диск видаляється (за замовчуванням); додаткові EBS-томи зберігаються.
Reboot (Перезавантаження): перезавантаження ОС без зміни хоста, IP-адреса зберігається.
Elastic IP (EIP) — статична публічна IPv4-адреса, що залишається незмінною незалежно від зупинки/запуску інстансу.
EC2 підтримує вертикальне масштабування — зміну типу інстансу (більше vCPU та RAM):
stop)Change Instance Type)start)Обмеження: не всі типи сумісні між собою (деякі вимагають специфічної мережевої картки або драйверів).
Вертикальне масштабування (Scale Up/Down): Збільшення/зменшення ресурсів одного інстансу (більший тип VM). Потребує перезапуску. Обмежене максимальним розміром доступних інстансів.
Горизонтальне масштабування (Scale Out/In): Додавання або видалення екземплярів. Набагато гнучкіше, не потребує downtime. Є основою хмарної масштабованості.
Auto Scaling Group (ASG) — група EC2-інстансів, якою AWS керує автоматично відповідно до налаштованих правил.
Ключові параметри ASG:
Min: 2, Desired: 4, Max: 10
Нормально: ██ ██ ██ ██ (4 інстанси)
Пік: ██ ██ ██ ██ ██ ██ (6 інстансів — AWS додав 2)
Спад: ██ ██ (2 інстанси — AWS видалив 2)
(нижче мін. не опускається)
Target Tracking Scaling (рекомендований): Підтримує цільовий показник метрики. Наприклад: «Тримати середнє використання CPU на рівні 60%». ASG автоматично додає або видаляє інстанси для досягнення цього показника.
Step Scaling (Ступінчасте): Різні дії залежно від порогового рівня.
Scheduled Scaling (Планове): Масштабування у визначені дні та час:
Predictive Scaling: AWS використовує ML для прогнозування майбутнього навантаження на основі історичних даних та заздалегідь масштабує інфраструктуру.
Перед створенням ASG необхідно визначити Launch Template — шаблон конфігурації інстансу, що включає:
m6i.large)ASG автоматично замінює нездорові інстанси:
Приклад: У 3 годині ночі один із 5 веб-серверів виходить з ладу через kernel panic. ASG автоматично завершує його та запускає новий — без участі адміністратора.
Multi-AZ для ASG: ASG рекомендується розгортати у двох або більше зонах доступності. При виході з ладу цілої AZ, ASG автоматично перезапустить потрібну кількість інстансів в інших AZ.
Placement Groups (Групи розміщення):
| Тип | Опис | Застосування |
|---|---|---|
| Cluster | Усі інстанси — в одній AZ на сусідньому обладнанні. Мінімальна затримка між ними | HPC, низьколатентні кластери |
| Spread | Кожен інстанс — на окремому обладнанні. Максимальна ізоляція відмов | Критичні одиничні дузлові сервіси |
| Partition | Групи інстансів на різних «стелажах» обладнання | HDFS, Kafka, Cassandra |
Інстанси з GPU (Graphical Processing Unit) дозволяють виконувати масово-паралельні обчислення, що критично для:
AWS GPU-інстанси:
Amazon розробила власні ARM-процесори AWS Graviton для своїх EC2-інстансів:
m7g, c7g) — до 40% кращий показник ціна/продуктивність порівняно з x86-аналогамиOn-Demand (За запитом):
Reserved Instances (Зарезервовані):
Savings Plans:
Spot Instances (Спотові):
Dedicated Hosts (Виділені хости):
Порівняння моделей оплати:
| Модель | Відносна ціна | Переривання | Зобов’язання |
|---|---|---|---|
| On-Demand | 100% | Немає | Немає |
| Savings Plans | 34–66% | Немає | 1–3 роки |
| Reserved | 28–72% | Немає | 1–3 роки |
| Spot | 10–30% | Можливе | Немає |
| Dedicated Host | 150%+ | Немає | Немає або 1–3 роки |
IaaS та VM забезпечують клієнту максимальний контроль над обчислювальним середовищем — від вибору ОС до повного адміністрування стеку. Це оптимально для lift-and-shift міграцій, специфічних вимог до ОС та спеціалізованих навантажень.
Родини типів EC2 організовані за оптимізацією: загального призначення (m), обчислення (c), пам’ять (r), сховище (i), GPU (p/g). Правильний вибір типу безпосередньо впливає на продуктивність і вартість.
AMI — шаблон VM — є ключовим інструментом для стандартизації та швидкого розгортання. Golden AMI практика скорочує час підготовки нових серверів.
Auto Scaling Group реалізує горизонтальне масштабування автоматично, забезпечуючи еластичність та відмовостійкість. Поєднання ASG з Multi-AZ та Load Balancer є стандартом для production-розгортань.
Моделі оплати (On-Demand, Reserved, Savings Plans, Spot) дозволяють оптимізувати витрати: стабільні навантаження — Reserved/Savings Plans; непостійні — Spot + On-Demand. Комбінування моделей дає максимальну економію.
r6g.2xlarge. Що означає кожна частина найменування?