Logo Zéphyrnet

Générez des scripts IaC d'application personnalisés et conformes pour AWS Landing Zone à l'aide d'Amazon Bedrock | Services Web Amazon

Date :

La migration vers le cloud est une étape essentielle pour les organisations modernes qui souhaitent capitaliser sur la flexibilité et l'évolutivité des ressources cloud. Des outils comme Terraform et AWS CloudFormation sont essentiels à de telles transitions, offrant des capacités d'infrastructure en tant que code (IaC) qui définissent et gèrent des environnements cloud complexes avec précision. Cependant, malgré ses avantages, la courbe d'apprentissage de l'IaC et la complexité du respect des normes de conformité et de sécurité de votre organisation et de votre secteur pourraient ralentir votre parcours d'adoption du cloud. Les organisations surmontent généralement ces obstacles en investissant dans des programmes de formation approfondis ou en embauchant du personnel spécialisé, ce qui entraîne souvent une augmentation des coûts et des délais de migration retardés.

Intelligence artificielle (IA) générative avec Socle amazonien répond directement à ces défis. Amazon Bedrock est un service entièrement géré qui offre un choix de modèles de base (FM) hautes performances provenant de grandes sociétés d'IA telles que AI21 Labs, Anthropic, Cohere, Meta, Stability AI et Amazon avec une seule API, ainsi qu'un large ensemble de capacités pour créer des applications d’IA génératives avec sécurité, confidentialité et IA responsable. Amazon Bedrock permet aux équipes de générer des scripts Terraform et CloudFormation adaptés aux besoins de l'organisation tout en intégrant de manière transparente les meilleures pratiques en matière de conformité et de sécurité. Traditionnellement, les ingénieurs cloud qui apprennent IaC passaient manuellement en revue la documentation et les bonnes pratiques pour écrire des scripts IaC conformes. Avec Amazon Bedrock, les équipes peuvent saisir des descriptions architecturales de haut niveau et utiliser l'IA générative pour générer une configuration de base de scripts Terraform. Ces scripts générés sont conçus pour répondre aux exigences uniques de votre organisation tout en se conformant aux normes de l'industrie en matière de sécurité et de conformité. Ces scripts servent de point de départ fondamental, nécessitant un affinement et une validation supplémentaires pour garantir qu'ils répondent aux normes de production.

Cette solution accélère non seulement le processus de migration, mais fournit également une infrastructure cloud standardisée et sécurisée. De plus, il propose aux ingénieurs cloud débutants des ébauches de script initiales sous forme de modèles standard sur lesquels s'appuyer, facilitant ainsi leur parcours d'apprentissage IaC.

Alors que vous affrontez les complexités de la migration vers le cloud, le besoin d’un environnement structuré, sécurisé et conforme est primordial. Zone d'atterrissage AWS répond à ce besoin en proposant une approche standardisée pour le déploiement des ressources AWS. Cela garantit que votre fondation cloud est construite dès le départ selon les meilleures pratiques AWS. Avec AWS Landing Zone, vous éliminez les incertitudes liées aux configurations de sécurité, au provisionnement des ressources et à la gestion des comptes. Il est particulièrement avantageux pour les organisations qui cherchent à évoluer sans compromettre la gouvernance ou le contrôle, offrant ainsi une voie claire vers une configuration cloud robuste et efficace.

Dans cet article, nous vous montrons comment générer des scripts IaC personnalisés et conformes pour AWS Landing Zone à l'aide d'Amazon Bedrock.

Architecture AWS Landing Zone dans le contexte de la migration vers le cloud

AWS Landing Zone peut vous aider à configurer un environnement AWS multi-comptes sécurisé basé sur les meilleures pratiques AWS. Il fournit un environnement de base pour démarrer avec une architecture multi-comptes, automatiser la configuration de nouveaux comptes et centraliser la conformité, la sécurité et la gestion des identités. Voici un exemple de solution AWS Landing Zone personnalisée basée sur Terraform, dans laquelle chaque application réside dans son propre compte AWS.

Le workflow de haut niveau comprend les composants suivants :

  • Approvisionnement des modules – Différentes équipes de plateforme dans divers domaines, tels que les bases de données, les conteneurs, la gestion des données, la mise en réseau et la sécurité, développent et publient des modules certifiés ou personnalisés. Ceux-ci sont livrés via des pipelines vers un registre de modules privés Terraform, qui est maintenu par l'organisation à des fins de cohérence et de standardisation.
  • Couche de distributeur automatique de comptes – La couche du distributeur automatique de comptes (AVM) utilise soit Tour de contrôle AWS, Usine de comptes AWS pour Terraform (AFT), ou une solution de zone d'atterrissage personnalisée pour vendre des comptes. Dans cet article, nous appelons collectivement ces solutions la couche AVM. Lorsque les propriétaires d'applications soumettent une demande à la couche AVM, celle-ci traite les paramètres d'entrée de la demande pour provisionner un compte AWS cible. Ce compte est ensuite doté de composants d'infrastructure sur mesure via des personnalisations AVM, qui incluent Personnalisations de la tour de contrôle AWS or Personnalisations AFT.
  • Couche d'infrastructure applicative – Dans cette couche, les équipes d'application déploient leurs composants d'infrastructure dans les comptes AWS provisionnés. Ceci est réalisé en écrivant du code Terraform dans un référentiel spécifique à l'application. Le code Terraform fait appel aux modules préalablement publiés dans le registre privé Terraform par les équipes de la plateforme.

Surmonter les défis de la migration IaC sur site grâce à l'IA générative

Les équipes qui gèrent des applications sur site rencontrent souvent une courbe d'apprentissage avec Terraform, un outil clé pour l'IaC dans les environnements AWS. Ce manque de compétences peut constituer un obstacle important aux efforts de migration vers le cloud. Amazon Bedrock, avec ses capacités d'IA générative, joue un rôle essentiel pour atténuer ce défi. Il facilite l'automatisation de la création de code Terraform pour la couche d'infrastructure d'application, permettant ainsi aux équipes ayant une expérience Terraform limitée d'effectuer une transition efficace vers AWS.

Amazon Bedrock génère du code Terraform à partir de descriptions architecturales. Le code généré est personnalisé et standardisé sur la base des meilleures pratiques organisationnelles, des directives de sécurité et des réglementations. Cette standardisation est rendue possible grâce à l'utilisation d'invites avancées en conjonction avec Bases de connaissances pour Amazon Bedrock, qui stocke des informations sur les modules Terraform spécifiques à l'organisation. Cette solution utilise Retrieval Augmented Generation (RAG) pour enrichir l'invite de saisie d'Amazon Bedrock avec les détails de la base de connaissances, garantissant ainsi que la configuration Terraform de sortie et le contenu README sont conformes aux meilleures pratiques et directives Terraform de votre organisation.

Le diagramme suivant illustre cette architecture.

Le flux de travail comprend les étapes suivantes :

  1. Le processus commence par la vente de comptes, où les propriétaires d'applications soumettent une demande pour un nouveau compte AWS. Cela appelle l'AVM, qui traite les paramètres de demande pour provisionner le compte AWS cible.
  2. Une description de l'architecture d'une application dont la migration est prévue est transmise comme l'une des entrées de la couche AVM.
  3. Une fois le compte provisionné, les personnalisations AVM sont appliquées. Cela peut inclure Personnalisations de la tour de contrôle AWS or Personnalisations AFT qui configure le compte avec les composants d'infrastructure et les configurations nécessaires conformément aux politiques organisationnelles.
  4. En parallèle, la couche AVM appelle une fonction Lambda pour générer du code Terraform. Cette fonction enrichit la description de l'architecture avec une invite personnalisée et utilise RAG pour améliorer encore l'invite avec des directives de codage spécifiques à l'organisation issues de la base de connaissances pour Bedrock. Cette base de connaissances comprend les meilleures pratiques personnalisées, les garde-fous de sécurité et les directives spécifiques à l'organisation. Voir un exemple exemple des spécifications et des directives du module Terraform spécifiques à l'organisation téléchargées dans la base de connaissances.
  5. Avant le déploiement, la version initiale du code Terraform est minutieusement examinée par des ingénieurs cloud ou par un système automatisé d'examen du code pour confirmer qu'il répond à toutes les normes techniques et de conformité.
  6. Les scripts Terraform révisés et mis à jour sont ensuite utilisés pour déployer des composants d'infrastructure dans le compte AWS nouvellement provisionné, configurant les ressources de calcul, de stockage et de mise en réseau requises pour l'application.

Vue d'ensemble de la solution

Le déploiement AWS Landing Zone utilise une fonction Lambda pour générer des scripts Terraform à partir d'entrées architecturales. Cette fonction, centrale au fonctionnement, traduit ces entrées en code conforme, à l'aide d'Amazon Bedrock et des bases de connaissances pour Amazon Bedrock. La sortie est ensuite stockée dans un référentiel GitHub, correspondant à l'application spécifique en migration. Les sections suivantes détaillent les conditions préalables et les étapes spécifiques nécessaires pour mettre en œuvre cette solution.

Pré-requis

Vous devriez avoir les éléments suivants :

Configurer la fonction Lambda pour générer du code personnalisé

Cette fonction Lambda est un élément clé dans l'automatisation de la création de configurations Terraform personnalisées et conformes pour les services AWS. Il valide les configurations générées directement dans un référentiel GitHub désigné, conformément aux meilleures pratiques organisationnelles. Pour le code de fonction, reportez-vous à ce qui suit GitHub repo. Pour créer la fonction lambda, veuillez suivre Des instructions.

Le diagramme suivant illustre le flux de travail de la fonction.

Le workflow comprend les étapes suivantes:

  1. La fonction est invoquée par un événement de la couche AVM, contenant la description de l'architecture.
  2. La fonction récupère et utilise les définitions du module Terraform de la base de connaissances.
  3. La fonction appelle le modèle Amazon Bedrock deux fois, conformément aux recommandations directives d'ingénierie rapides. La fonction applique RAG pour enrichir l'invite de saisie avec les informations du module Terraform, en s'assurant que le code de sortie répond aux meilleures pratiques de l'organisation.
    • Tout d'abord, générez des configurations Terraform en suivant les directives de codage de l'organisation et incluez les détails du module Terraform à partir de la base de connaissances. Par exemple, l'invite pourrait être : « Générer des configurations Terraform pour les services AWS. Suivez les meilleures pratiques de sécurité en utilisant les rôles IAM et les autorisations de moindre privilège. Incluez tous les paramètres nécessaires, avec les valeurs par défaut. Ajoutez des commentaires expliquant l'architecture globale et le but de chaque ressource.
    • Deuxièmement, créez un fichier README détaillé. Par exemple : « Générez un README détaillé pour la configuration Terraform basée sur les services AWS. Incluez des sections sur les améliorations de la sécurité et des conseils d'optimisation des coûts en suivant le cadre AWS Well-Architected. Incluez également une ventilation détaillée des coûts pour chaque service AWS utilisé avec les tarifs horaires et les coûts totaux quotidiens et mensuels.
  4. Il valide la configuration Terraform générée et le README dans le référentiel GitHub, offrant ainsi traçabilité et transparence.
  5. Enfin, il répond avec succès, y compris les URL des fichiers GitHub validés, ou renvoie des informations détaillées sur les erreurs pour le dépannage.

Configurer les bases de connaissances pour Amazon Bedrock

Suivez ces étapes pour configurer votre base de connaissances dans Amazon Bedrock :

  1. Sur la console Amazon Bedrock, choisissez Base de connaissances dans le volet de navigation.
  2. Selectionnez Créer une base de connaissances.
  3. Saisissez un nom clair et descriptif qui reflète l'objectif de votre base de connaissances, tel que AWS Account Setup Knowledge Base For Amazon Bedrock.
  4. Attribuez un rôle IAM préconfiguré avec les autorisations nécessaires. Il est généralement préférable de laisser Amazon Bedrock créer ce rôle pour vous assurer qu'il dispose des autorisations appropriées.
  5. Téléchargez un fichier JSON dans un compartiment S3 avec le cryptage activé pour des raisons de sécurité. Ce fichier doit contenir une liste structurée de services AWS et de modules Terraform. Pour la structure JSON, utilisez ce qui suit exemple à partir du référentiel GitHub.
  6. Choisissez le modèle d'intégration par défaut.
  7. Autorisez Amazon Bedrock à créer et gérer le magasin de vecteurs pour vous dans Service Amazon OpenSearch.
  8. Vérifiez l’exactitude des informations. Portez une attention particulière à l'URI du compartiment S3 et aux détails du rôle IAM.
  9. Créez votre base de connaissances.

Après avoir déployé et configuré ces composants, lorsque votre solution AWS Landing Zone appelle la fonction Lambda, les fichiers suivants sont générés :

  • Un fichier de configuration Terraform – Ce fichier spécifie la configuration de l'infrastructure.
  • Un fichier README complet – Ce fichier documente les normes de sécurité intégrées dans le code, confirmant qu'elles correspondent aux pratiques de sécurité décrites dans les sections initiales. De plus, ce README comprend un résumé de l'architecture, des conseils d'optimisation des coûts et une répartition détaillée des coûts pour les ressources décrites dans la configuration Terraform.

La capture d'écran suivante montre un exemple du fichier de configuration Terraform.

La capture d'écran suivante montre un exemple du fichier README.

Nettoyer

Effectuez les étapes suivantes pour nettoyer vos ressources :

  1. Supprimez la fonction Lambda si elle n'est plus nécessaire.
  2. Videz et supprimez le compartiment S3 utilisé pour le stockage de l'état Terraform.
  3. Supprimez les scripts Terraform générés et le fichier README du dépôt GitHub.
  4. Supprimer la base de connaissances si ce n'est plus nécessaire.

Conclusion

Les capacités d'IA générative d'Amazon Bedrock rationalisent non seulement la création de scripts Terraform conformes pour les déploiements AWS, mais constituent également une aide à l'apprentissage essentielle pour les ingénieurs cloud débutants qui effectuent la transition d'applications sur site vers AWS. Cette approche accélère le processus de migration vers le cloud et vous aide à adhérer aux meilleures pratiques. Vous pouvez également utiliser la solution pour apporter de la valeur après la migration, en améliorant les opérations quotidiennes telles que l'infrastructure continue et l'optimisation des coûts. Bien que nous nous soyons principalement concentrés sur Terraform dans cet article, ces principes peuvent également améliorer vos déploiements AWS CloudFormation, offrant une solution polyvalente pour vos besoins d'infrastructure.

Prêt à simplifier votre processus de migration vers le cloud avec l'IA générative dans Amazon Bedrock ? Commencez par explorer le Guide de l'utilisateur d'Amazon Bedrock pour comprendre comment il peut rationaliser le parcours cloud de votre organisation. Pour plus d’assistance et d’expertise, envisagez d’utiliser Services professionnels AWS pour vous aider à rationaliser votre parcours de migration vers le cloud et à maximiser les avantages d'Amazon Bedrock.

Libérez le potentiel d’une adoption rapide, sécurisée et efficace du cloud avec Amazon Bedrock. Faites le premier pas dès aujourd'hui et découvrez comment cela peut améliorer les efforts de transformation cloud de votre organisation.


À propos de l’auteur

Ebby Thomas se spécialise dans l'élaboration de stratégies et le développement de ressources AWS Landing Zone personnalisées en mettant l'accent sur l'utilisation de l'IA générative pour améliorer l'automatisation de l'infrastructure cloud. Dans son rôle chez AWS Professional Services, l'expertise d'Ebbey est essentielle à l'architecture de solutions qui rationalisent l'adoption du cloud, en fournissant un cadre opérationnel sécurisé et efficace aux utilisateurs d'AWS. Il est connu pour son approche innovante des défis du cloud et son engagement à faire progresser les capacités des services cloud.

spot_img

Dernières informations

spot_img