Azure Virtual Machines
Azure Virtual Machines — это сервис облачной платформы Microsoft Azure, предоставляющий пользователям возможность создавать и управлять виртуальными машинами (ВМ) в инфраструктуре Microsoft. Виртуальные машины Azure относятся к категории «Инфраструктура как услуга» (IaaS), что позволяет арендовать вычислительные ресурсы (процессор, память, дисковое пространство, сетевые интерфейсы) без необходимости приобретения и обслуживания физического оборудования.
История и развитие
Сервис Azure Virtual Machines был запущен в составе платформы Microsoft Azure (изначально — Windows Azure) в 2010 году. Первоначально он поддерживал только образы операционных систем семейства Windows Server. В 2012 году была добавлена поддержка Linux, что значительно расширило аудиторию сервиса. С тех пор сервис постоянно эволюционировал: появились масштабируемые наборы виртуальных машин (Virtual Machine Scale Sets), резервные копии, интеграция с Azure Kubernetes Service и другими сервисами платформы. В 2017 году Microsoft анонсировала поддержку виртуальных машин с ускорителями (GPU) для задач машинного обучения и высокопроизводительных вычислений.
Архитектура и компоненты
Виртуальная машина Azure представляет собой эмуляцию физического компьютера, работающую на гипервизоре Microsoft (на базе Hyper-V). Каждая ВМ состоит из нескольких ключевых компонентов:
- Вычислительные ресурсы (vCPU и RAM): Определяются выбранным размером ВМ (SKU). Доступны различные семейства размеров: общего назначения, оптимизированные для вычислений, для работы с памятью, для хранения данных и с графическими ускорителями.
- Диски: Для хранения операционной системы и данных. Используются управляемые диски (Managed Disks) — блочное хранилище, которое может быть SSD (Premium, Standard) или HDD (Standard). Диски могут быть временными (временное хранилище на узле) или постоянными.
- Сетевой интерфейс (NIC): Каждая ВМ подключается к виртуальной сети Azure (VNet) через один или несколько сетевых адаптеров. Для доступа из интернета используется публичный IP-адрес или Azure Load Balancer.
- Образ операционной системы: Предварительно настроенный образ (Windows Server, Ubuntu, CentOS, Debian, RHEL, SUSE, а также образы из Azure Marketplace). Можно использовать собственные образы (через Azure Compute Gallery).
- Группа безопасности сети (NSG): Набор правил, фильтрующих входящий и исходящий трафик к ВМ.
Классификация размеров (SKU)
Azure предлагает более 500 различных размеров виртуальных машин, сгруппированных по семействам:
- Общего назначения (B, D, A): Сбалансированное соотношение vCPU и памяти. Подходят для веб-серверов, небольших баз данных, сред разработки и тестирования.
- Оптимизированные для вычислений (F, FX): Высокая частота процессора, больше vCPU на единицу памяти. Используются для пакетной обработки, аналитики, игровых серверов.
- Оптимизированные для памяти (E, M, Mv2): Большой объём оперативной памяти (до 12 ТБ в серии Mv2). Предназначены для крупных баз данных (SAP HANA, SQL Server), кэширования (Redis).
- Оптимизированные для хранения (L, Lv2): Высокая пропускная способность дискового ввода-вывода и низкая задержка. Используются для баз данных NoSQL, аналитики больших данных (Hadoop, Spark).
- С графическими ускорителями (NC, ND, NV): Оснащены GPU (NVIDIA Tesla, AMD Radeon Instinct). Применяются для машинного обучения, рендеринга, виртуализации графики.
- Оптимизированные для высокопроизводительных вычислений (H, HB, HC): Высокая производительность на ядро, поддержка InfiniBand. Для научных расчётов, моделирования.
Способы создания и управления
Создание виртуальной машины возможно несколькими способами:
- Портал Azure (Azure Portal): Веб-интерфейс с пошаговым мастером. Подходит для разовых задач и обучения.
- Azure CLI: Кроссплатформенный интерфейс командной строки. Используется для автоматизации и скриптов.
- Azure PowerShell: Модуль для Windows PowerShell. Позволяет управлять ВМ через командлеты.
- Azure Resource Manager (ARM) шаблоны: JSON-файлы, описывающие всю инфраструктуру (ВМ, сети, диски). Обеспечивают идемпотентное развёртывание.
- Terraform, Ansible, Chef, Puppet: Инструменты управления конфигурациями и инфраструктурой как кодом (IaC).
Масштабирование и доступность
Azure предоставляет механизмы для обеспечения отказоустойчивости и масштабирования:
- Virtual Machine Scale Sets (VMSS): Позволяет автоматически увеличивать или уменьшать количество однотипных ВМ в зависимости от нагрузки (CPU, память, пользовательские метрики). Используется для веб-приложений, микросервисов.
- Зоны доступности (Availability Zones): Физически изолированные центры обработки данных внутри одного региона Azure. Размещение ВМ в разных зонах защищает от отказа целого дата-центра.
- Наборы доступности (Availability Sets): Логическая группировка ВМ, которая гарантирует, что они не будут размещены на одном физическом сервере (узел) или в одной стойке (домен сбоя). Обеспечивает защиту от планового и внепланового обслуживания.
- Azure Site Recovery: Сервис аварийного восстановления, позволяющий реплицировать ВМ в другой регион.
Ценообразование
Стоимость виртуальной машины складывается из нескольких компонентов:
- Вычислительные ресурсы (vCPU + RAM): Оплачивается за время работы ВМ (почасовая или посекундная тарификация). Доступны модели:
- Pay-as-you-go (оплата по мере использования): Максимальная гибкость, но высокая цена.
- Reserved Instances (зарезервированные экземпляры): Предоплата на 1 или 3 года — скидка до 72% по сравнению с PAYG.
- Spot Instances (прерываемые экземпляры): Использование свободных мощностей Azure со скидкой до 90%, но ВМ может быть остановлена в любой момент при нехватке ресурсов.
- Диски (Managed Disks): Оплата за объём (ГБ/месяц) и количество операций ввода-вывода (IOPS).
- Сетевой трафик: Исходящий трафик (из Azure в интернет) тарифицируется по объёму. Входящий трафик (из интернета в Azure) обычно бесплатен.
- Лицензии: Для Windows Server в стоимость ВМ включена лицензия на ОС. Для Linux лицензия не взимается (кроме платных образов из Marketplace).
Применение
Azure Virtual Machines используется в широком спектре сценариев:
- Перенос (lift-and-shift): Перенос существующих приложений из локальных дата-центров в облако без изменения кода.
- Разработка и тестирование: Быстрое создание сред для разработчиков, тестовых стендов.
- Веб-приложения и API: Размещение веб-серверов (IIS, Nginx, Apache), серверов приложений (Tomcat, JBoss).
- Базы данных: Запуск SQL Server, Oracle, MySQL, PostgreSQL, MongoDB на выделенных ВМ.
- Высокопроизводительные вычисления (HPC): Научные расчёты, симуляции, рендеринг.
- Машинное обучение: Обучение моделей на GPU-ускорителях, инференс.
- Виртуальные рабочие столы (VDI): Создание удалённых рабочих столов для сотрудников (Windows Virtual Desktop).
Ограничения и критика
Несмотря на широкие возможности, сервис имеет ряд ограничений:
- Зависимость от сети: Производительность ВМ сильно зависит от задержки и пропускной способности интернет-канала пользователя.
- Сложность управления: Для крупных инфраструктур требуется глубокое знание Azure Networking, Identity, Storage.
- Стоимость при неправильной конфигурации: Легко потратить больше, чем необходимо, если не использовать резервирование, Spot-экземпляры или автоматическое масштабирование.
- Отсутствие полного контроля над гипервизором: Пользователь не может управлять физическим сервером, что ограничивает возможности для некоторых низкоуровневых задач.
- Вендор-лок: Перенос ВМ из Azure в другое облако или локальную инфраструктуру может быть трудоёмким (требуется конвертация образов, настройка сетей).
Интересные факты
- Крупнейшие ВМ в Azure (серия Mv2) могут иметь до 416 vCPU и 12 ТБ оперативной памяти.
- Azure поддерживает запуск ВМ на процессорах Intel Xeon, AMD EPYC и AMD Radeon Instinct GPU.
- Сервис Azure Virtual Machines является одним из самых старых и зрелых в портфолио Microsoft Azure, наряду с Azure Blob Storage и Azure SQL Database.
- Для некоторых размеров ВМ (например, серии B) доступна модель кредитования (Bursting), позволяющая кратковременно потреблять больше ресурсов, чем выделено, за счёт накопленных кредитов.
Источники
- Документация Microsoft Azure: «Виртуальные машины Azure»
- Microsoft Learn: «Обзор виртуальных машин Azure»
- Azure Pricing Calculator
- Azure Architecture Center: «Выбор размера виртуальной машины»
- Официальный блог Microsoft Azure (раздел Compute)
BFOmetr — база данных и аналитика по компаниям России.
На главную BFOmetr →