Для подготовки виртуальной машины в Azure требуются дополнительные компоненты, кроме самой виртуальной машины, включая сетевые ресурсы и ресурсы хранилища. В этой статье приведены рекомендации по запуску защищенной виртуальной машины Linux в Azure.
Архитектура
Скачайте файл Visio для этой архитектуры.
Рабочий процесс
Группа ресурсов
Группа ресурсов представляет собой логический контейнер, содержащий связанные ресурсы Azure. Как правило, группы ресурсов создаются в зависимости от времени существования ресурсов и пользователя, который ими управляет.
Поместите тесно связанные ресурсы с одинаковым жизненным циклом в одну группу ресурсов. Группы ресурсов позволяют развертывать и отслеживать несколько ресурсов как одну группу, для которой, помимо прочего, можно отслеживать выставляемые счета. Можно также удалить ресурсы в виде набора, что очень удобно для тестирования развернутых служб. Присвойте понятные имена ресурсам, чтобы упростить поиск определенного ресурса и получить сведения о его роли. Дополнительные сведения см. в руководстве по рекомендуемым соглашениям об именовании ресурсов Azure.
Виртуальная машина
Виртуальную машину можно подготовить на основе списка опубликованных образов, пользовательского управляемого образа или файла виртуального жесткого диска (VHD), передав его в хранилище BLOB-объектов Azure. поддержка Azure работает с различными популярными дистрибутивами Linux, включая Debian, Red Hat Enterprise Linux (RHEL) и Ubuntu. См. дополнительные сведения о взаимодействии Azure и Linux.
В Azure доступны виртуальные машины разных размеров. Дополнительные сведения см. в статье Размеры виртуальных машин Windows в Azure. Если вы перемещаете существующую рабочую нагрузку в Azure, начните с размера виртуальной машины, который наиболее близок к локальным серверам. Затем измерьте производительность фактической рабочей нагрузки по таким показателям, как потребление ЦП, памяти и дисковых операций ввода-вывода в секунду, и при необходимости измените размер.
Обычно следует выбирать регион Azure, расположенный как можно ближе к внутренним пользователям или клиентам. Не во всех регионах доступны виртуальные машины всех размеров. См. дополнительные сведения о доступности служб в разных регионах. Чтобы получить список размеров виртуальных машин, доступных в определенном регионе, выполните следующую команду из Azure CLI:
az vm list-sizes --location <location>
Дополнительные сведения о том, как выбрать опубликованный образ виртуальной машины, см. в руководстве по поиску образов виртуальных машин Linux.
Disks
Чтобы обеспечить оптимальную производительность дисковых операций ввода-вывода, рекомендуем использовать хранилище класса Premium, в котором данные хранятся на твердотельных накопителях (SSD). Цена зависит от производительности подготовленного диска. Скорость выполнения операций ввода-вывода и пропускная способность (т. е. скорость передачи данных) также зависят от размера диска. Поэтому во время подготовки диска следует учитывать все эти факторы. Хранилище уровня "Премиум" также обеспечивает бесплатный всплеск, в сочетании с пониманием шаблонов рабочих нагрузок, предлагает эффективную стратегию выбора номеров SKU и оптимизации затрат для инфраструктуры IaaS, обеспечивая высокую производительность без чрезмерной избыточной подготовки и минимизации затрат на неиспользуемую емкость.
Управляемые диски упростить управление дисками, обрабатывая хранилище. Управляемые диски не требуют учетной записи хранения. Вы указываете размер и тип диска и развертывается как ресурс с высоким уровнем доступности. Управляемые диски также обеспечивают оптимизацию затрат, обеспечивая необходимую производительность без необходимости чрезмерной подготовки, учета изменяющихся шаблонов рабочих нагрузок и минимизации неиспользуемой подготовленной емкости.
Диск операционной системы — это диск VHD, расположенный в службе хранилища Azure, поэтому он работает, даже если хост-компьютер отключен. Виртуальный жесткий диск может быть локально подключен к NVMe или аналогичным устройствам, доступным на многих номерах SKU виртуальных машин.
Временные диски обеспечивают хорошую производительность без дополнительных затрат, но имеют существенные недостатки непрекращающегося, ограниченного емкости и ограниченного использования ос и временных дисков. Для виртуальных машин Linux диск ОС — это /dev/sda1
. Кроме того, рекомендуем создать один или несколько дисков данных на постоянных виртуальных жестких дисках, которые используются для данных приложений.
Создаваемый диск VHD не форматируется. Чтобы отформатировать диск, войдите на виртуальную машину. В оболочке Linux диски данных отображаются как /dev/sdc
, /dev/sdd
и т. д. Можно выполнить lsblk
, чтобы вывести список блочных устройств, включая диски. Чтобы использовать диск данных, создайте раздел и файловую систему, а затем подключите этот диск. Например:
# Create a partition.
sudo fdisk /dev/sdc # Enter 'n' to partition, 'w' to write the change.
# Create a file system.
sudo mkfs -t ext3 /dev/sdc1
# Mount the drive.
sudo mkdir /data1
sudo mount /dev/sdc1 /data1
При добавлении диска данных ему назначается логический номер устройства (LUN). При необходимости можно указать идентификатор LUN, например, если при замене диска нужно сохранить тот же идентификатор LUN или если у вас есть приложение, которое ищет определенный идентификатор LUN. Однако следует помнить, что идентификаторы LUN для каждого диска должны быть уникальными.
Возможно, вам нужно изменить планировщик операций ввода-вывода, чтобы оптимизировать производительность твердотельных накопителей (используемых с учетными записями хранения класса Premium для виртуальных машин). Обычно для SSD рекомендуется использовать планировщик NOOP, но для мониторинга производительности дискового ввода-вывода рабочей нагрузки следует использовать такой инструмент, как iostat.
Виртуальная машина создается с временным диском. Временный диск хранится на физическом диске хост-компьютера. Он не хранится в службе хранилища Azure и может быть удален во время перезагрузки и других событий жизненного цикла виртуальной машины. Используйте этот диск только для временных данных, таких как данные страниц или файлы подкачки. Для виртуальных машин Linux временный диск — это /dev/disk/azure/resource-part1
. Он подключен как /mnt/resource
или /mnt
.
Network
Сетевые компоненты включают приведенные ниже ресурсы.
Виртуальная сеть. Каждая виртуальная машина развертывается в виртуальной сети, которая сегментируется в подсети.
Сетевой интерфейс (сетевой адаптер). Сетевой адаптер обеспечивает взаимодействие виртуальной машины и виртуальной сети. Если для виртуальной машины требуется несколько сетевых адаптеров, для каждого размера виртуальной машины определяется максимальное количество сетевых адаптеров.
Общедоступный IP-адрес. Для взаимодействия с виртуальной машиной требуется общедоступный IP-адрес, например через протокол удаленного рабочего стола (RDP). Общедоступный IP-адрес может быть динамическим или статическим. По умолчанию используется динамический IP-адрес.
- Зарезервировать статический IP-адрес , если вам нужен фиксированный IP-адрес, который не изменяется, например, если необходимо создать запись DNS "A" или добавить IP-адрес в безопасный список.
- Можно также создать полное доменное имя для IP-адреса. Затем вы сможете зарегистрировать в DNS запись CNAME, которая указывает на полное доменное имя. Дополнительные сведения см. в руководстве по созданию полного доменного имени на портале Azure.
Группа безопасности сети (NSG). Группы безопасности сети позволяют разрешать или запрещать сетевой трафик к виртуальным машинам. Группы безопасности сети могут быть связаны с подсетями или отдельными экземплярами виртуальных машин.
- Все группы безопасности сети содержат набор правил по умолчанию, включая правило, которое блокирует весь входящий интернет-трафик. Правила по умолчанию нельзя удалить, но их можно переопределить другими правилами. Чтобы разрешить интернет-трафик, создайте правила, разрешающие входящий трафик для определенных портов, например, это может быть порт 80 для протокола HTTP. Чтобы включить Secure Shell (SSH), добавьте правило NSG, разрешающее входящий трафик к TCP-порту 22.
Шлюз NAT Azure. Шлюзы преобразования сетевых адресов (NAT) позволяют всем экземплярам в частной подсети подключаться к Интернету, оставаясь полностью закрытыми. Только пакеты, поступающие в качестве пакетов ответа для исходящего подключения, могут передаваться через шлюз NAT. Незапрошенные входящий трафик из Интернета не разрешены.
Бастион Azure. Бастион Azure — это полностью управляемая платформа как решение службы, которое обеспечивает безопасный доступ к виртуальным машинам через частные IP-адреса. В этой конфигурации виртуальные машины не нуждаются в общедоступном IP-адресе, который предоставляет их в Интернете, что повышает уровень безопасности. Бастион Azure обеспечивает безопасное подключение RDP или SSH к виртуальным машинам непосредственно через tls через различные методы, включая портал Azure или собственные клиенты SSH или RDP.
Операции
SSH. Перед созданием виртуальной машины Linux создайте парные 2048-разрядные ключи RSA (открытый и закрытый). При создании виртуальной машины используйте файл открытого ключа. Дополнительные сведения см. в статье Создание пары из открытого и закрытого ключей SSH для виртуальных машин Linux.
Диагностика. Включите мониторинг и диагностику, в том числе базовые метрики работоспособности, а также ведение журналов инфраструктуры диагностики и диагностику загрузки. Если виртуальную машину невозможно загрузить, для обнаружения неисправностей можно использовать диагностику загрузки. Создайте учетную запись службы хранилища Azure для хранения журналов. Учетной записи локально избыточного хранилища достаточно для хранения журналов диагностики. Дополнительные сведения см. в статье о включении мониторинга и диагностики.
Доступность Виртуальная машина может повлиять на плановое обслуживание или незапланированное время простоя. Чтобы определить, вызвана ли перезагрузка плановым техническим обслуживанием, изучите журналы перезагрузки виртуальной машины. Для повышения доступности разверните несколько виртуальных машин в группе доступности или между зонами доступности в регионе. Обе эти конфигурации предоставляют более высокое соглашение об уровне обслуживания (SLA).
Резервные копии Для защиты от случайной потери данных используйте службу Azure Backup, чтобы архивировать виртуальные машины в геоизбыточное хранилище. Azure Backup обеспечивает согласование резервных копий с приложениями.
Остановка виртуальной машины. Azure различает состояния "Остановлена" и "Освобождена". Вы оплачиваете использование остановленных виртуальных машин, но не оплачиваете освобожденные виртуальные машины. Также это можно сделать с помощью кнопки Прервать на портале Azure. Если вы войдете в виртуальную машину и завершите работу операционной системы, виртуальная машина будет остановлена, а не освобождена, поэтому с вас по-прежнему будет взиматься плата.
Удаление виртуальной машины. При удалении виртуальной машины у вас есть возможность удалить или сохранить его диски. Это означает, что вы можете удалить виртуальную машину без потери данных. Однако плата за диски по-прежнему будет взиматься. Управляемые диски можно удалять так же, как и любой другой ресурс Azure. Чтобы предотвратить случайное удаление, используйте блокировку ресурсов. Так вы сможете заблокировать всю группу или отдельные ресурсы (например, виртуальную машину).
Рекомендации
Эти рекомендации реализуют основные принципы платформы Azure Well-Architected Framework, которая является набором руководящих принципов, которые можно использовать для улучшения качества рабочей нагрузки. Дополнительные сведения см. в статье Microsoft Azure Well-Architected Framework.
Оптимизация затрат
Оптимизация затрат заключается в поиске способов уменьшения ненужных расходов и повышения эффективности работы. Дополнительные сведения см. в разделе Обзор критерия "Оптимизация затрат".
Существуют различные варианты размеров виртуальных машин в зависимости от использования и рабочей нагрузки. Этот диапазон включает самый экономичный вариант серии Bs для новейших виртуальных машин GPU, оптимизированных для машинного обучения. Сведения о доступных вариантах см. в ценах на виртуальную машину Linux Azure.
Для прогнозируемых рабочих нагрузок используйте резервирования Azure и план экономии Azure для вычислений с помощью одного или трехлетнего контракта и получите значительную экономию по мере использования цен. Для рабочих нагрузок без прогнозируемого времени завершения или потребления ресурсов рассмотрите вариант оплаты по мере использования .
Используйте виртуальные машины Azure Spot для выполнения рабочих нагрузок, которые могут быть прерваны и не требуют завершения в течение предопределенного периода времени или соглашение об уровне обслуживания. Azure развертывает точечные виртуальные машины, если имеется доступная емкость и вытесняет, когда она нуждается в емкости. Затраты, связанные с точечными виртуальными машинами, значительно ниже. Рассмотрите возможность обнаружения виртуальных машин для этих рабочих нагрузок:
- Сценарии высокопроизводительных вычислений, задания пакетной обработки или приложения для визуальной отрисовки.
- Тестовые среды, включая непрерывную интеграцию и рабочие нагрузки непрерывной доставки.
- Крупномасштабные приложения без отслеживания состояния.
Используйте калькулятор цен Azure для оценки затрат.
См. сведения о затратах на платформу Microsoft Azure с продуманной архитектурой.
Безопасность
Безопасность обеспечивает гарантии от преднамеренного нападения и злоупотребления ценными данными и системами. Дополнительные сведения см. в разделе "Общие сведения о компоненте безопасности".
Используйте Microsoft Defender для облака, чтобы получить центральное представление о состоянии безопасности ресурсов Azure. Microsoft Defender для облака отслеживает потенциальные проблемы безопасности, а также обеспечивает полное представление о состоянии системы безопасности развертывания. Microsoft Defender для облака настраивается для каждой подписки Azure по отдельности. Включите сбор данных безопасности, как описано в разделе "Подключение подписки Azure" к Defender для облака "Стандартный". Если сбор данных включен, Defender для облака автоматически сканирует все виртуальные машины, созданные в этой подписке.
Управление исправлениями. Если этот параметр включен, Defender для облака проверяет, отсутствуют ли какие-либо обновления безопасности и критически важных обновлений.
Антивредоносная программа. Если этот параметр включен, Defender для облака проверяет, установлено ли антивредоносное программное обеспечение. Вы также можете использовать Defender для облака для установки антивредоносного программного обеспечения из портал Azure.
Управление доступом. Используйте управление доступом на основе ролей Azure (Azure RBAC) для управления доступом к ресурсам Azure. Azure RBAC позволяет назначать роли авторизации участникам команды DevOps. Например, роль "Читатель" позволяет просматривать ресурсы Azure, но не позволяет создавать и удалять их или управлять ими. Некоторые разрешения относятся к типу ресурса Azure. Например, роль "Участник виртуальных машин" позволяет перезапустить виртуальную машину или отменить ее выделение, сбросить пароль администратора, создать новую виртуальную машину и т. д. Другие встроенные роли , которые могут быть полезны для этой архитектуры, включают пользователя DevTest Labs и участника сети.
Примечание.
Azure RBAC не ограничивает действия, которые пользователь вошел в виртуальную машину. Эти разрешения определяются типом учетной записи в гостевой ОС.
Журналы аудита. Просматривать действия по подготовке и другие события для виртуальной машины можно с помощью журналов аудита.
Шифрование данных. При необходимости шифровать диски ОС и диски данных используйте шифрование дисков Azure.
Эффективность работы
Оперативное превосходство охватывает процессы операций, которые развертывают приложение и продолжают работать в рабочей среде. Дополнительные сведения см. в разделе "Общие сведения о принципах эффективности работы".
Используйте один шаблон Azure Resource Manager для подготовки ресурсов Azure и его зависимостей. Так как все ресурсы находятся в одной виртуальной сети, они изолированы в одной базовой рабочей нагрузке. Это упрощает связывание конкретных ресурсов рабочей нагрузки с командой DevOps, чтобы команда могли самостоятельно управлять всеми аспектами этих ресурсов. Эта изоляция позволяет команде DevOps выполнять непрерывную интеграцию и непрерывную доставку (CI/CD).
Кроме того, вы можете использовать различные шаблоны Azure Resource Manager и интегрировать их с Azure DevOps Services для подготовки различных сред в минутах, например для репликации рабочих сред, таких как сценарии или среды нагрузочного тестирования только при необходимости, экономия затрат.
Архитектура более высокой доступности см . в приложении N-уровня Linux в Azure с Apache Cassandra, эталонная архитектура включает несколько виртуальных машин, а каждая виртуальная машина включена в группу доступности.
Мы рекомендуем использовать Azure Monitor для анализа и оптимизации производительности инфраструктуры, отслеживания и диагностики проблем с сетью без входа на виртуальные машины.
Следующие шаги
- Сведения о создании виртуальной машины Linux см. в кратком руководстве по созданию виртуальной машины Linux в портал Azure
- Чтобы установить драйвер NVIDIA на виртуальной машине Linux, ознакомьтесь с разделом Установка драйверов GPU NVIDIA на виртуальных машинах серии N под управлением Linux.
- Чтобы подготовить к работе виртуальную машину Linux, см. статью Руководство по созданию виртуальных машин Linux и управлению ими с помощью Azure CLI.
- Исходящий доступ по умолчанию в Azure