Passer d'Amazon DataZone à SageMaker Unified Studio : Le Guide Stratégique des Blueprints


Bien que le concept de blueprints existe depuis la version 1 d'AWS DataZone, il était principalement réservé à des capacités uniques ou à des cas d'utilisation spécifiques plutôt qu'à des fonctionnalités courantes. SageMaker Unified Studio (SMUS) — qui s'exécute par-dessus les domaines DataZone — réinvente complètement cette approche. Aujourd'hui, les blueprints — fondamentalement des piles AWS CloudFormation qui définissent l'infrastructure et les outils — constituent un élément central et le véritable cœur de tout projet.

En tant que spécialistes des architectures data, cloud et IA, comprendre cette structure est essentiel. La base d'un projet SMUS suit une hiérarchie claire : vous choisissez et activez vos blueprints, vous les utilisez pour créer un Profil de Projet (Project Profile), puis vous utilisez ce profil pour provisionner le projet réel. (Nous approfondirons les profils de projet dans le prochain article).

Si un projet existe dans SMUS, il y a au moins un blueprint derrière son profil de projet. Ceux-ci se divisent en deux catégories principales : les Blueprints Gérés par AWS (AWS-Managed Blueprints) et les Blueprints Personnalisés (Custom Blueprints).

Les blueprints gérés pris en charge offrent des configurations prêtes à l'emploi qui vous fournissent :

  • Des capacités de base complètes
  • Des outils d'IA générative
  • Des analyses SQL

Vous pouvez trouver la liste complète des blueprints gérés actuellement pris en charge dans la documentation officielle d'AWS.

La Fondation : Le Tooling Blueprint

Tous les projets partagent la même base. Par défaut, tout projet provisionné sur SMUS s'appuie sur un profil de projet contenant au moins le blueprint par défaut, qu'AWS appelle le Tooling Blueprint.

Ce blueprint provisionne l'infrastructure de base requise pour chaque projet — comme les rôles IAM, les groupes de sécurité et le réseau fondamental. Il est hautement personnalisable via ses paramètres, lui permettant de couvrir une vaste gamme de cas d'utilisation.

Important : Le Tooling Blueprint doit toujours être activé dans la région où vous choisissez de travailler. Désactiver complètement ce blueprint bloque la création de projets sur SMUS.

Activer le Tooling Blueprint

Bien que l'activation du Tooling Blueprint soit entièrement gérée par SMUS, vous avez la possibilité d'apporter vos propres rôles IAM et buckets S3 — ce qui est particulièrement utile si vous l'activez via l'API ou par Infrastructure as Code (IaC).

Au sein du Tooling Blueprint (et d'autres), vous rencontrerez trois rôles IAM critiques :

  • Rôle de Provisionnement (Provisioning Role) : Utilisé spécifiquement pour provisionner la pile CloudFormation du blueprint dans le compte local. Si vous rencontrez des erreurs lors de la création de piles CFN, vérifiez ce rôle en premier.
  • Rôle de Gestion des Accès (Manage Access Role) : Utilisé pour gérer les autorisations Lake Formation, les autorisations RAM et d'autres opérations liées à l'accès, la publication et l'abonnement aux actifs de données. Enquêtez sur ce rôle si vous rencontrez des problèmes pour partager ou vous abonner à des actifs.
  • Rôle d'Exécution de Requêtes (Query Execution Role) : Utilisé pour l'exploration de données à l'aide de connecteurs Athena et Redshift au sein du domaine SMUS.

Si vous ne laissez pas SMUS gérer votre bucket S3 pour le stockage du projet, assurez-vous que votre bucket personnalisé suit les mêmes conventions de nommage si vous prévoyez de continuer à utiliser les rôles IAM gérés.

Activer le Tooling Blueprint

Pour se déployer correctement, les projets nécessiteront également un VPC et au moins deux sous-réseaux (subnets) répartis sur différentes zones de disponibilité (AZs). Les capacités de calcul et de stockage liées à vos blueprints activés y seront provisionnées. Vous pouvez configurer des paramètres VPC différents pour chaque blueprint si votre architecture l'exige.

Activer le Tooling VPC

Sous le Capot : Les Détails Techniques des Blueprints

Techniquement parlant, un blueprint n'est rien d'autre qu'une pile AWS CloudFormation.

L'activation d'un blueprint nécessite une région et un compte cible, qui peuvent éventuellement être sélectionnés lors de la création du projet. L'activation d'un blueprint est locale à son compte. Si vous avez associé des domaines sur plusieurs comptes ou régions, les blueprints doivent être explicitement activés dans ces emplacements spécifiques pour être utilisables.

Lorsqu'un blueprint est rattaché à un profil de projet et utilisé pour créer un projet SMUS, le service provisionne cette pile CloudFormation dans le compte et la région choisis. Vous pouvez facilement suivre et vérifier ce blueprint dans la console CloudFormation après un déploiement réussi.

Créer un projet dans SMUS déclenche simplement le provisionnement de l'ensemble des blueprints définis dans le profil du projet. Une fois les piles déployées avec succès, le projet devient accessible. Bien que SMUS effectue quelques actions de configuration mineures en dehors des blueprints, l'infrastructure de base est entièrement pilotée par CFN.

Étendre les Capacités : Blueprints Personnalisés

En plus des capacités gérées, SMUS nous donne le pouvoir de créer des Blueprints Personnalisés (Custom Blueprints). Cela vous permet d'enrichir les projets avec des outils non répertoriés dans le catalogue géré, ou même d'adapter complètement un blueprint géré pour qu'il corresponde à votre architecture de données spécifique.

Puisque les blueprints personnalisés sont également des modèles CloudFormation, ils doivent être stockés dans un bucket S3. SMUS propose un bucket dédié à cet effet. Si vous choisissez de gérer votre propre bucket, il est fortement recommandé de respecter la convention de nommage du bucket SMUS par défaut. Cela vous permet de continuer à utiliser les rôles IAM SMUS provisionnés, car ils sont pré-autorisés à accéder aux buckets correspondant à ce modèle de nommage exact.

Remarque Importante sur les Architectures Multi-Comptes (Cross-Account) : Si vous avez des projets impliquant plusieurs comptes, vous devez gérer vous-même les stratégies du bucket. Lorsqu'un projet est créé, la pile est provisionnée dans le compte cible, ce qui signifie que ce compte cible a besoin d'un accès multi-comptes au bucket contenant le modèle. Ne pas gérer correctement ces autorisations entraînera une erreur indiquant que le rôle du projet n'est pas autorisé à utiliser le blueprint.

Parce que les blueprints personnalisés ne sont que des piles CFN, vous avez une infinité de choix. Vous pouvez tirer parti de toutes les fonctionnalités disponibles dans CloudFormation — telles que les ressources personnalisées et les métadonnées — pour couvrir presque toutes les automatisations requises lors de la création du projet.

Le Cycle de Vie d'un Blueprint Personnalisé

Parcourons le cycle de vie d'un blueprint personnalisé, de sa création à sa suppression.

1. Création

Nous commençons par créer une pile CloudFormation. Par exemple, nous pouvons utiliser une pile d'exemple contenant un paramètre basique et une ressource SSM. (Remarque : Assurez-vous que votre rôle IAM de provisionnement de blueprint dispose des autorisations nécessaires, telles que ssm:PutParameter, pour déployer les ressources définies dans votre modèle).

Exemple de Blueprint CFN

Remarque — Paramètres Injectés par SMUS : Lors du provisionnement, SageMaker Unified Studio injecte automatiquement des paramètres contextuels spécifiques dans votre pile CloudFormation. Vous pouvez déclarer et utiliser les paramètres suivants dans votre blueprint pour référencer dynamiquement les détails du domaine, du projet ou de l'environnement — bien qu'ils soient inconnus avant la création du projet :

  • datazoneEnvironmentEnvironmentId
  • datazoneEnvironmentDomainId
  • datazoneEnvironmentDomainArn
  • datazoneEnvironmentProjectId
  • datazoneEnvironmentProjectName
  • datazoneScopeName
  • datazoneEnvironmentProvisioningRoleArn

Ensuite, rendez-vous dans l'interface utilisateur de SMUS :

  1. Choisissez le domaine où vous souhaitez créer le blueprint.
  2. Accédez à l'onglet Blueprints.
  3. Cliquez sur Créer (Create).

Créer un Blueprint

Lors de la création, vous avez un contrôle total sur les paramètres. Vous pouvez définir des valeurs par défaut et spécifier l'immuabilité de chaque paramètre (par exemple, décider si un paramètre peut être modifié lors de la création du projet, ou mis à jour par la suite). Cela ajoute une excellente couche de gouvernance et de contrôle d'accès à la portée de votre infrastructure.

Définition des Paramètres du Blueprint

Après avoir défini les paramètres, vous devez activer le blueprint. N'oubliez pas que ce blueprint personnalisé nécessite un rôle de provisionnement IAM pour récupérer le modèle depuis votre bucket S3 et agir en tant que provisionneur CloudFormation. Si vous utilisez le rôle géré par SMUS, assurez-vous que le nom de votre bucket correspond à la convention par défaut, ou apportez simplement votre propre rôle IAM pour gérer le déploiement.

Activer le Blueprint

2. Mise à Jour

Après sa création, un blueprint n'est pas gravé dans le marbre. Vous pouvez modifier ses propriétés, changer sa définition CFN, ajuster les configurations de paramètres, mettre à jour les valeurs par défaut ou réécrire sa description. Par exemple, vous pourriez facilement ajouter un nouveau paramètre à votre modèle d'exemple et mettre à jour le blueprint existant pour refléter la nouvelle architecture.

Mettre à jour le Blueprint

3. Suppression

Fait intéressant, il n'y a actuellement aucun bouton "Supprimer" pour les blueprints dans l'interface utilisateur de SMUS. La suppression d'un blueprint d'environnement doit être gérée programmatiquement à l'aide de l'API DataZone.

Commencez par désactiver le blueprint :

Désactiver le Blueprint

Pour supprimer un blueprint d'environnement, vous devez fournir deux éléments :

  1. Le domain-identifier (l'ID de votre domaine DataZone).
  2. L'identifier (l'ID du blueprint que vous souhaitez supprimer).

Vous pouvez facilement récupérer l'identifiant du blueprint depuis l'URL de votre navigateur lorsque vous êtes sur la page de détail du blueprint (recherchez /blueprints/<blueprint_id>), ou en interrogeant l'API DataZone.

Lister les Blueprints
Supprimer le Blueprint

Type to start searching...