Azure Storage et les comptes de stockage
Introduction
Une application peut avoir besoin de conserver des documents, des images, des fichiers partagés ou des messages destinés à des traitements différés. Ces données n’ont pas toutes les mêmes caractéristiques et ne nécessitent pas nécessairement une base de données relationnelle.
Microsoft Azure propose Azure Storage, une plateforme de stockage comprenant plusieurs services adaptés à ces besoins. Pour utiliser ces services, on crée généralement une ressource Azure appelée compte de stockage.
Présentation d’Azure Storage
Azure Storage, ou Stockage Azure, est la plateforme de stockage de données de Microsoft Azure. Elle propose notamment des services de stockage d’objets, de fichiers, de messages et de données NoSQL.
Microsoft prend en charge l’infrastructure physique sur laquelle reposent ces services. L’utilisateur configure les caractéristiques du stockage, les accès aux données et les mécanismes de protection adaptés à ses besoins.
Les principaux services utilisables dans un compte de stockage sont les suivants :
| Service | Rôle | Exemple d’utilisation |
|---|---|---|
| Azure Blob Storage | Stocker des objets, notamment des données non structurées. | Images, vidéos, documents PDF, fichiers de sauvegarde. |
| Azure Files | Fournir des partages de fichiers accessibles notamment avec les protocoles SMB ou NFS, selon la configuration. | Partage de fichiers entre plusieurs machines ou applications. |
| Azure Queue Storage | Stocker des messages en attente de traitement. | Déclencher le traitement différé d’un document. |
| Azure Table Storage | Stocker des données NoSQL structurées, organisées en entités et propriétés. | Informations techniques, métadonnées ou données métier simples. |
Azure Data Lake Storage s’appuie sur Blob Storage et apporte notamment un espace de noms hiérarchique adapté aux traitements analytiques.
Le compte de stockage
Un compte de stockage est une ressource Azure qui fournit un espace de noms unique pour les données et regroupe les paramètres de configuration des services de stockage qu’il héberge.
Il est rattaché à un abonnement, appartient à un groupe de ressources et est créé dans une région Azure.
Il permet notamment de configurer :
- La région principale de stockage.
- Le type de compte et les caractéristiques de performance.
- La redondance des données.
- Les règles d’accès réseau.
- Certains paramètres de sécurité.
Un compte standard à usage général v2, appelé StorageV2, peut héberger des objets blob, des partages de fichiers, des files d’attente et des tables. D’autres types de comptes répondent à des besoins spécialisés, notamment en matière de performances.
Le nom du compte doit respecter les règles de nommage Azure : entre 3 et 24 caractères, uniquement des lettres minuscules et des chiffres, avec une unicité globale. Il intervient notamment dans les adresses d’accès aux services. Par exemple :
Cette adresse correspond au point de terminaison Blob d’un compte nommé stboutiqueprod, dans le cloud public Azure avec les points de terminaison standards.
L’organisation des données
L’organisation des données dépend du service utilisé.
Dans Blob Storage, les objets sont regroupés dans des conteneurs. Un conteneur peut, par exemple, contenir les images d’un catalogue ou les factures produites par une application.
Dans Azure Files, les fichiers sont organisés dans des partages de fichiers, avec des répertoires et des sous-répertoires.
Dans Queue Storage, chaque file contient des messages que les applications peuvent déposer puis récupérer pour les traiter.
Dans Table Storage, les données sont organisées dans des tables contenant des entités. Chaque entité est identifiée par une clé de partition et une clé de ligne. Ce service ne fournit pas les mêmes fonctionnalités qu’une base relationnelle telle qu’Azure SQL Database.
Exemple d’utilisation
Une application de vente en ligne pourrait utiliser un compte de stockage pour plusieurs besoins :
| Élément | Service utilisé | Contenu |
|---|---|---|
Conteneur product-images |
Blob Storage | Photographies des produits. |
Conteneur invoices |
Blob Storage | Factures au format PDF. |
File documents-to-process |
Queue Storage | Messages demandant le traitement de documents. |
Partage exports |
Azure Files | Fichiers d’export partagés entre plusieurs traitements. |
Cet exemple illustre une organisation possible. Selon les exigences de sécurité, de performance ou d’exploitation, ces données pourraient être réparties dans plusieurs comptes.
La redondance des données
Azure Storage conserve plusieurs copies des données afin de limiter les conséquences d’une défaillance matérielle. Plusieurs modes de redondance sont proposés :
| Mode | Principe |
|---|---|
| LRS — Locally Redundant Storage | Conserve trois copies synchrones dans un même emplacement physique de la région principale. |
| ZRS — Zone-Redundant Storage | Réplique les données de manière synchrone entre trois zones de disponibilité de la région principale. |
| GRS — Geo-Redundant Storage | Combine une réplication locale dans la région principale et une réplication asynchrone vers une région secondaire. |
| GZRS — Geo-Zone-Redundant Storage | Combine une réplication entre zones dans la région principale et une réplication asynchrone vers une région secondaire. |
Les variantes RA-GRS et RA-GZRS permettent également de lire les données dans la région secondaire, pour les services compatibles.
La réplication géographique étant asynchrone, les dernières écritures peuvent ne pas encore être présentes dans la région secondaire au moment d’une panne. La disponibilité de ces options dépend du service, du type de compte et de la région.
La redondance ne remplace pas une sauvegarde. Une suppression ou une modification accidentelle peut être répercutée sur les copies. Des protections complémentaires doivent donc être prévues selon les données concernées.
La sécurité et le contrôle des accès
La protection d’un compte de stockage repose sur plusieurs mécanismes complémentaires.
Les données sont chiffrées au repos. Pour les échanges, il convient d’imposer des connexions sécurisées et d’utiliser les mécanismes de chiffrement adaptés aux protocoles employés.
L’accès réseau peut être limité à certaines adresses ou à des réseaux autorisés. Un point de terminaison privé, ou Private Endpoint, permet d’accéder au service par une adresse IP privée dans un réseau virtuel Azure.
Pour accéder aux données Blob, Microsoft recommande Microsoft Entra ID et les rôles Azure RBAC. Une application peut notamment utiliser une identité managée pour éviter de conserver une clé de compte dans sa configuration.
Il faut distinguer les droits de gestion de la ressource des droits d’accès aux données. Autoriser un utilisateur à administrer le compte ne lui attribue pas automatiquement un rôle lui permettant de lire les objets blob.
Une signature d’accès partagé, ou SAS, permet aussi de déléguer un accès limité à certaines données, avec des autorisations et une durée de validité définies.
Les niveaux d’accès de Blob Storage
Pour les objets blob compatibles, plusieurs niveaux d’accès permettent d’adapter le stockage à la fréquence d’utilisation des données :
| Niveau | Usage |
|---|---|
| Hot | Données consultées ou modifiées fréquemment. |
| Cool | Données moins fréquemment utilisées. |
| Cold | Données rarement utilisées, mais devant rester accessibles immédiatement. |
| Archive | Données conservées à long terme, avec un délai de remise à disposition avant lecture. |
Les niveaux les moins coûteux en capacité peuvent entraîner des frais d’accès plus élevés et des conditions de conservation minimale. Le niveau Archive nécessite une réhydratation avant de pouvoir lire les données.
Des règles de gestion du cycle de vie permettent d’automatiser certains changements de niveau ou la suppression de données devenues inutiles.
La création d’un compte de stockage
Un compte de stockage peut être créé depuis le portail Azure ou avec des outils tels qu’Azure CLI, Azure PowerShell et Bicep.
La création consiste notamment à :
- Choisir l’abonnement et le groupe de ressources.
- Définir le nom du compte.
- Sélectionner la région.
- Choisir le type de compte et les performances.
- Sélectionner la redondance.
- Configurer la sécurité et les accès réseau.
- Vérifier les paramètres puis créer la ressource.
Après sa création, on ajoute les conteneurs, les partages, les files ou les tables nécessaires à l’application. Certaines options ayant des conséquences sur les fonctionnalités disponibles, leur choix doit être effectué à partir des besoins identifiés.
Les coûts
Le coût du stockage dépend notamment :
- Du volume de données conservées.
- Du service et des performances choisis.
- Du mode de redondance.
- Du nombre et du type d’opérations.
- Des niveaux d’accès utilisés.
- Des transferts de données et des éventuelles options supplémentaires.
Il ne suffit donc pas de comparer le prix d’un gigaoctet stocké : une donnée peu consultée et une donnée lue des milliers de fois par jour peuvent entraîner des coûts différents.
Azure Cost Management permet de suivre les dépenses, de définir des budgets et de configurer des alertes.