Le provisionnement d’une machine virtuelle Azure nécessite des composants supplémentaires en plus de la machine virtuelle elle-même, notamment des ressources réseau et de stockage. Cet article décrit les bonnes pratiques pour l’exécution d’une machine virtuelle Linux sécurisée sur Azure.
Architecture
Téléchargez un fichier Visio de cette architecture.
Workflow
Resource group
Un groupe de ressources est un conteneur logique qui héberge les ressources Azure associées. En règle générale, regroupez les ressources en fonction de leur durée de vie et de qui va les gérer.
Placez les ressources étroitement associées qui partagent le même cycle de vie dans un même groupe de ressources. Les groupes de ressources vous permettent de déployer et de surveiller les ressources en tant que groupe et de suivre les coûts de facturation par groupe de ressources. Vous pouvez également supprimer des ressources comme un tout, ce qui est pratique pour les déploiements de test. Affectez des noms de ressource explicites pour simplifier la recherche d’une ressource spécifique et comprendre son rôle. Pour plus d’informations, consultez Conventions d’affectation de noms recommandées pour les ressources Azure.
Machine virtuelle
Vous pouvez approvisionner une machine virtuelle issue d’une liste d’images publiées, d’une image managée personnalisée ou d’un fichier de disque dur virtuel (VHD) chargé(e) dans Stockage Blob Azure. Azure prend en charge l’exécution de plusieurs distributions Linux populaires, notamment Debian, Red Hat Enterprise Linux (RHEL) et Ubuntu. Pour en savoir plus, voir Azure et Linux.
Azure propose de nombreuses tailles de machines virtuelles. Pour plus d’informations, consultez Tailles des machines virtuelles sur Azure. Si vous déplacez une charge de travail vers Azure, commencez par choisir la taille de machine virtuelle qui correspond le mieux à vos serveurs locaux. Mesurez ensuite les performances de votre charge de travail réelle en termes de processeur, de mémoire et d’opérations d’entrée/sortie par seconde du disque, puis ajustez la taille selon vos besoins.
En général, choisissez une région Azure la plus proche possible de vos utilisateurs internes ou de vos clients. Certaines tailles de machine virtuelle ne sont pas disponibles dans toutes les régions. Pour en savoir plus, consultez Services par région. Pour obtenir la liste des tailles de machine virtuelle disponibles dans une région spécifique, exécutez la commande suivante dans l’interface de ligne de commande (CLI) Azure :
az vm list-sizes --location <location>
Pour en savoir plus sur le choix d’une image de machine virtuelle publiée, voir Comment rechercher des images de machine virtuelle Linux.
Disques
Pour optimiser les performances d’E/S du disque, nous vous recommandons Stockage Premium, qui stocke les données sur des disques SSD. Le coût est basé sur la capacité du disque approvisionné. Le nombre d’E/S par seconde et le débit (c’est-à-dire le taux de transfert des données) dépendent également de la taille du disque. Lorsque vous approvisionnez un disque, vous devez donc tenir compte des trois facteurs : capacité, E/S par seconde et débit. Le stockage Premium comprend également le bursting gratuit, associé à une compréhension des modèles de charge de travail, offre une stratégie efficace de sélection de la référence SKU et d'optimisation des coûts pour l'infrastructure IaaS, pour atteindre des performances élevées sans surprovisionnement excessif et minimiser le coût de la capacité inutilisée.
Les disques managés simplifient la gestion des disques en gérant le stockage pour vous. Les disques managés ne nécessitent pas de compte de stockage. Il vous suffit simplement de spécifier leur taille et leur type, puis de les déployer en tant que ressource à haute disponibilité. Les disques gérés permettent également d'optimiser les coûts, car ils fournissent les performances souhaitées sans nécessiter de surprovisionnement, en tenant compte des fluctuations de la charge de travail et en réduisant au minimum la capacité provisionnée non utilisée.
Le disque du système d’exploitation est un disque dur virtuel stocké dans Stockage Azure, donc il persiste même lorsque l’ordinateur hôte est arrêté. Le disque dur virtuel (VHD) peut être connecté en local à un NVMe ou à des appareils similaires disponibles sur de nombreuses références SKU de machine virtuelle.
Les disques éphémères offrent de bonnes performances sans coût supplémentaire, mais présentent des inconvénients importants : ils ne sont pas persistants, leur capacité est limitée et ils sont réservés à l'utilisation du système d'exploitation et des disques temporaires. Pour les machines virtuelles Linux, le disque du système d’exploitation est /dev/sda1
. Nous vous recommandons également de créer un ou plusieurs disques de données, qui sont des disques durs virtuels persistants utilisés pour les données d’application.
Lorsque vous créez un disque dur virtuel, il n’est pas formaté. Connectez-vous à la machine virtuelle pour formater ce disque. Dans l’interpréteur de commandes Linux, les disques de données sont affichés en tant que /dev/sdc
, /dev/sdd
, et ainsi de suite. Vous pouvez exécuter lsblk
pour répertorier les périphériques de bloc, y compris les disques. Pour utiliser un disque de données, créez une partition et un système de fichiers, puis montez le disque. Par exemple :
# 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
Lorsque vous ajoutez un disque de données, un numéro d’unité logique (LUN) lui est attribué. Vous pouvez également spécifier l’ID LUN, par exemple si vous remplacez un disque et souhaitez conserver le même ID LUN, ou si votre application nécessite un ID LUN spécifique. Toutefois, n’oubliez pas que les ID LUN doivent être uniques pour chaque disque.
Vous pouvez modifier le planificateur d’E/S afin d’optimiser les performances des disques SSD, les disques des machines virtuelles associées à des comptes de Stockage Premium étant de type SSD. Il est généralement recommandé d’utiliser le planificateur NOOP pour les disques SSD, mais vous devez utiliser un outil tel que iostat pour surveiller les performances d’E/S du disque pour votre charge de travail.
La machine virtuelle est créée avec un disque temporaire. Ce disque est stocké sur un lecteur physique de l’ordinateur hôte. Il n’est pas enregistré dans Stockage Azure et peut être supprimé lors des redémarrages ou d’autres événements de cycle de vie de la machine virtuelle. N’utilisez ce disque que pour des données temporaires, telles que des fichiers de pagination ou d’échange. Pour les machines virtuelles Linux, le disque temporaire est /dev/disk/azure/resource-part1
. Il est monté sur /mnt/resource
ou /mnt
.
Réseau
Les composants réseau incluent les ressources suivantes :
Réseau virtuel. Chaque machine virtuelle est déployée dans un réseau virtuel qui est segmenté en sous-réseaux.
Interfaces réseau (NIC) . La carte d’interface réseau permet à la machine virtuelle de communiquer avec le réseau virtuel. Si vous avez besoin de plusieurs cartes réseau (NIC) pour votre machine virtuelle, un nombre maximal de cartes réseau est défini pour chaque taille de machine virtuelle.
Adresse IP publique. Une adresse IP publique est nécessaire pour communiquer avec la machine virtuelle - par exemple, via le protocole de bureau à distance (RDP). Cette adresse IP publique peut être dynamique ou statique. Par défaut, elle est dynamique.
- Utilisez une adresse IP statique si vous avez besoin d’une adresse IP non modifiable, par exemple si vous devez créer un enregistrement « A » dans le DNS ou ajouter l’adresse IP dans une liste sécurisée.
- Vous pouvez également créer un nom de domaine complet (FQDN) pour l’adresse IP. Vous pouvez inscrire un enregistrement CNAME dans le DNS qui pointe vers le nom de domaine complet (FQDN). Pour en savoir plus, consultez Créer un nom de domaine complet dans le Portail Azure.
Groupe de sécurité réseau. Les groupes de sécurité réseau sont utilisés pour autoriser ou refuser le trafic réseau vers des machines virtuelles. Les groupes de sécurité réseau peuvent être associés à des sous-réseaux ou à des instances de machine virtuelle individuelles.
- Tous les groupes de sécurité réseau contiennent un ensemble de règles par défaut, notamment une règle qui bloque tout le trafic Internet entrant. Les règles par défaut ne peuvent pas être supprimées, mais d’autres règles peuvent les remplacer. Pour autoriser le trafic Internet, créez des règles qui autorisent le trafic entrant vers des ports spécifiques, par exemple le port 80 pour HTTP. Pour activer le protocole Secure Shell (SSH), ajoutez une règle NSG qui autorise le trafic entrant sur le port TCP 22.
Passerelle NAT Azure. Les passerelles NAT (Network Address Translation) permettent à toutes les instances d'un sous-réseau privé de se connecter à Internet tout en restant totalement privées. Seuls les paquets qui arrivent en tant que paquets de réponse à une connexion sortante peuvent passer-through une passerelle NAT. Les connexions entrantes non sollicitées en provenance d'Internet ne sont pas autorisées.
Azure Bastion. Azure Bastion est une solution de plateforme en tant que service entièrement gérée qui fournit un accès sécurisé aux machines virtuelles via des adresses IP privées. Avec cette configuration, les machines virtuelles n'ont pas besoin d'une adresse IP publique qui les expose à l'internet, ce qui renforce leur posture de sécurité. Azure Bastion fournit une connectivité RDP ou SSH sécurisée à vos machines virtuelles directement via Transport Layer Security (TLS) par le biais de différentes méthodes, notamment le portail Azure ou les clients SSH ou RDP natifs.
Opérations
SSH. Avant de créer une machine virtuelle Linux, générez une paire de clés publique-privée RSA 2048 bits. Utilisez le fichier de clé publique lorsque vous créez la machine virtuelle. Pour en savoir plus, voir Utilisation de SSH avec Linux et Mac sur Azure.
Diagnostics. Permet la supervision et le diagnostic, avec notamment des indicateurs d’intégrité de base, des journaux d’activité d’infrastructure de diagnostic et des diagnostics de démarrage. Les diagnostics de démarrage peuvent vous aider à identifier le problème de démarrage si votre machine virtuelle refuse de démarrer. Créez un compte de stockage Azure pour stocker les journaux d’activité. Un compte de stockage localement redondant (LRS) standard suffit pour les journaux de diagnostic. Pour en savoir plus, consultez Activation de la surveillance et des diagnostics.
Disponibilité. Votre machine virtuelle pourrait être affectée par une maintenance planifiée ou un temps d'arrêt non planifié. Vous pouvez utiliser les journaux d’activité de redémarrage de machine virtuelle pour déterminer si un redémarrage de la machine virtuelle a été provoqué par une maintenance planifiée. Pour une disponibilité plus élevée, déployez plusieurs machines virtuelles dans un groupe à haute disponibilité ou entre les zones de disponibilité d’une région. Ces deux configurations permettent de bénéficier d'un contrat SLA (Service Level Agreement) plus élevé.
Sauvegardes : pour vous protéger contre la perte accidentelle de données, utilisez le service Sauvegarde Azure pour sauvegarder vos machines virtuelles dans un stockage géoredondant. Sauvegarde Azure offre des sauvegardes cohérentes avec les applications.
Arrêt d’une machine virtuelle. Azure établit une distinction entre les états « arrêté » et « désalloué ». Vous payez lorsque l’état de la machine virtuelle est « arrêté », mais pas lorsque la machine virtuelle est désallouée. Le bouton Arrêter du portail Azure désalloue la machine virtuelle. Si vous arrêtez la machine virtuelle par le biais du système d’exploitation pendant que vous êtes connecté, la machine virtuelle est arrêtée mais non désallouée. Vous serez donc toujours facturé.
Suppression d’une machine virtuelle. Si vous supprimez une machine virtuelle, vous avez la possibilité de supprimer ou de conserver ses disques. Vous pouvez donc supprimer la machine virtuelle, sans risque de perdre des données. Toutefois, vous serez toujours facturé pour les disques. Vous pouvez supprimer les disques gérés comme n'importe quelle autre ressource Azure. Pour éviter toute suppression accidentelle, utilisez un verrou de ressource pour verrouiller tout le groupe de ressources ou des ressources individuelles, par exemple une machine virtuelle.
Considérations
Ces considérations implémentent les piliers d’Azure Well-Architected Framework qui est un ensemble de principes directeurs qui permettent d’améliorer la qualité d’une charge de travail. Pour plus d’informations, consultez Microsoft Azure Well-Architected Framework.
Optimisation des coûts
L’optimisation des coûts consiste à examiner les moyens de réduire les dépenses inutiles et d’améliorer l’efficacité opérationnelle. Pour plus d’informations, consultez Vue d’ensemble du pilier d’optimisation des coûts.
Il existe différentes options pour les tailles de machine virtuelle en fonction de l’utilisation et de la charge de travail. La plage comprend l’option la plus économique de la série Bs pour les machines virtuelles GPU les plus récentes, optimisées pour le machine learning. Pour plus d’informations sur les options disponibles, consultez Tarification des machines virtuelles Linux Azure.
Pour les charges de travail prévisibles, utilisez les réservations Azure et le plan d’économies Azure pour le calcul avec un contrat d’un ou trois ans et bénéficiez d’économies significatives sur les tarifs du paiement à l’utilisation. Pour les charges de travail sans temps de réalisation prévisible ou la consommation des ressources, envisagez l’option Paiement à l’utilisation.
Utilisez les machines virtuelles Azure Spot pour exécuter des charges de travail pouvant être interrompues et ne nécessitant pas d’achèvement dans une période prédéterminée ou dans un contrat SLA. Azure déploie des machines virtuelles Spot si la capacité est disponible et les supprime lorsqu’il a besoin de la capacité. Les coûts associés aux machines virtuelles Spot sont nettement inférieurs. Vous pouvez opter pour les machines virtuelles Spot pour ces charges de travail :
- Scénarios de calcul haute performance, travaux de traitement par lots ou applications de rendu visuel.
- Environnements de test, y compris les charges de travail d’intégration continue et de livraison continue.
- Applications sans état à grande échelle.
Utilisez la Calculatrice de prix Azure pour estimer les coûts.
Pour plus d’informations, consultez la section sur les coûts dans Microsoft Azure Well-Architected Framework.
Sécurité
La sécurité fournit des garanties contre les attaques délibérées, et contre l’utilisation abusive de vos données et systèmes importants. Pour plus d’informations, consultez Vue d’ensemble du pilier Sécurité.
Utilisez Microsoft Defender pour le cloud pour obtenir une vue centralisée de l’état de sécurité de vos ressources Azure. Defender pour le cloud supervise les problèmes potentiels de sécurité et fournit une image complète de l’intégrité de la sécurité de votre déploiement. Defender pour le cloud est configuré par abonnement Azure. Activez la collecte de données de sécurité comme décrit dans Intégrer votre abonnement Azure au niveau Standard de Defender pour le cloud. Une fois la collecte de données activée, Defender pour le cloud analyse automatiquement les machines virtuelles créées dans le cadre de cet abonnement.
Gestion des correctifs. Si cette option est activée, Defender pour le cloud vérifie si des mises à jour critiques et de sécurité sont manquantes.
Logiciel anti-programme malveillant. Si cette option est activée, Defender pour le cloud vérifie si un logiciel anti-programme malveillant est installé. Vous pouvez également utiliser Defender pour le cloud pour installer un logiciel anti-programme malveillant depuis le portail Azure.
Contrôle d’accès. Utilisez le contrôle d’accès en fonction du rôle Azure (RBAC Azure) pour contrôler l’accès aux ressources Azure. Le contrôle RBAC Azure vous permet d’affecter des rôles d’autorisation aux membres de votre équipe DevOps. Par exemple, le rôle Lecteur permet d’afficher des ressources Azure mais pas de les créer, gérer ou supprimer. Certaines autorisations sont spécifiques à un type de ressource Azure. Par exemple, le rôle Contributeur de machine virtuelle peut redémarrer ou désallouer une machine virtuelle, réinitialiser le mot de passe administrateur, créer une machine virtuelle, et ainsi de suite. D’autres rôles intégrés peuvent être utiles dans cette architecture, notamment Utilisateur de DevTest Labs et Contributeur de réseaux.
Notes
Le contrôle RBAC Azure ne limite pas les actions qu’un utilisateur connecté peut effectuer sur une machine virtuelle. Ces autorisations dépendent du type de compte installé sur le système d’exploitation invité.
Journaux d’audit. Utilisez les journaux d’audit pour voir les actions d’approvisionnement et d’autres événements concernant la machine virtuelle.
Chiffrement des données. Utilisez Azure Disk Encryption si vous devez chiffrer les disques du système d’exploitation et de données.
Excellence opérationnelle
L’excellence opérationnelle couvre les processus d’exploitation qui déploient une application et maintiennent son fonctionnement en production. Pour plus d’informations, consultez Vue d’ensemble du pilier Excellence opérationnelle.
Utilisez un modèle Azure Resource Manager pour approvisionner les ressources Azure et leurs dépendances. Étant donné que toutes les ressources se trouvent dans le même réseau virtuel, elles sont isolées dans la même charge de travail de base. Cela facilite l’association des ressources spécifiques de la charge de travail à une équipe DevOps afin que cette dernière puisse gérer de manière indépendante tous les aspects de ces ressources. Cet isolement permet à l'équipe DevOps d'effectuer une intégration et une livraison continues (CI/CD).
En outre, vous pouvez utiliser différents modèles Azure Resource Manager et les intégrer à Azure DevOps Services pour approvisionner différents environnements en quelques minutes, par exemple pour répliquer des scénarios de production ou des environnements de test de charge uniquement lorsque cela s'avère nécessaire, ce qui permet de réduire les coûts.
Pour une architecture de haute disponibilité, consultez Application multiniveau Linux dans Azure avec Apache Cassandra, l’architecture de référence inclut plusieurs machines virtuelles et chaque machine virtuelle est incluse dans un groupe à haute disponibilité.
Pensez à utiliser Azure Monitor pour analyser et optimiser les performances de votre infrastructure, et pour superviser et diagnostiquer les problèmes de réseau sans vous connecter à vos machines virtuelles.
Étapes suivantes
- Pour créer une machine virtuelle Linux, consultez Démarrage rapide : Créer une machine virtuelle Linux sur le portail Azure
- Pour installer un pilote NVIDIA sur une machine virtuelle Linux, consultez Installer des pilotes GPU NVIDIA sur des machines virtuelles série N exécutant Linux
- Pour provisionner une machine virtuelle Linux, consultez Créer et gérer des machines virtuelles Linux avec l’interface Azure CLI.
- Accès sortant par défaut dans Azure