Zephyrnet-logo

Genereer aangepaste, compatibele IaC-applicatiescripts voor AWS Landing Zone met Amazon Bedrock | Amazon-webservices

Datum:

Migreren naar de cloud is een essentiële stap voor moderne organisaties die willen profiteren van de flexibiliteit en schaal van cloudbronnen. Hulpmiddelen zoals Terraform en AWS CloudFormatie zijn cruciaal voor dergelijke transities en bieden infrastructuur als code (IaC)-mogelijkheden die complexe cloudomgevingen met precisie definiëren en beheren. Ondanks de voordelen ervan kunnen de leercurve van IaC en de complexiteit van het naleven van de compliance- en beveiligingsstandaarden van uw organisatie en branche uw traject naar de cloud-adoptie vertragen. Organisaties overwinnen deze hindernissen doorgaans door te investeren in uitgebreide trainingsprogramma’s of door gespecialiseerd personeel in te huren, wat vaak leidt tot hogere kosten en vertraagde migratietijdlijnen.

Generatieve kunstmatige intelligentie (AI) met Amazonebodem pakt deze uitdagingen direct aan. Amazon Bedrock is een volledig beheerde service die een keuze biedt uit goed presterende funderingsmodellen (FM's) van toonaangevende AI-bedrijven zoals AI21 Labs, Anthropic, Cohere, Meta, Stability AI en Amazon met één enkele API, samen met een brede reeks mogelijkheden om generatieve AI-toepassingen te bouwen met beveiliging, privacy en verantwoorde AI. Amazon Bedrock stelt teams in staat om Terraform- en CloudFormation-scripts te genereren die op maat zijn afgestemd op de behoeften van de organisatie, terwijl best practices op het gebied van compliance en beveiliging naadloos worden geïntegreerd. Traditioneel zouden cloud-ingenieurs die IaC leren, handmatig de documentatie en best practices doorzoeken om compatibele IaC-scripts te schrijven. Met Amazon Bedrock kunnen teams architecturale beschrijvingen op hoog niveau invoeren en generatieve AI gebruiken om een ​​basisconfiguratie van Terraform-scripts te genereren. Deze gegenereerde scripts zijn afgestemd op de unieke vereisten van uw organisatie en voldoen tegelijkertijd aan de industriestandaarden voor beveiliging en compliance. Deze scripts dienen als fundamenteel startpunt en vereisen verdere verfijning en validatie om ervoor te zorgen dat ze voldoen aan de normen op productieniveau.

Deze oplossing versnelt niet alleen het migratieproces, maar zorgt ook voor een gestandaardiseerde en veilige cloudinfrastructuur. Bovendien biedt het beginnende cloudingenieurs initiële scriptconcepten als standaardsjablonen om op voort te bouwen, waardoor hun IaC-leertraject wordt vergemakkelijkt.

Terwijl u door de complexiteit van cloudmigratie navigeert, is de behoefte aan een gestructureerde, veilige en compatibele omgeving van het allergrootste belang. AWS-landingszone komt tegemoet aan deze behoefte door een gestandaardiseerde aanpak aan te bieden voor de inzet van AWS-middelen. Dit zorgt ervoor dat uw cloudfundament vanaf het begin is gebouwd volgens de best practices van AWS. Met AWS Landing Zone elimineert u het giswerk bij beveiligingsconfiguraties, het inrichten van bronnen en accountbeheer. Het is met name gunstig voor organisaties die willen schalen zonder concessies te doen aan het bestuur of de controle, en biedt een duidelijk pad naar een robuuste en efficiënte cloudconfiguratie.

In dit bericht laten we u zien hoe u aangepaste, compatibele IaC-scripts voor AWS Landing Zone kunt genereren met behulp van Amazon Bedrock.

AWS Landing Zone-architectuur in de context van cloudmigratie

AWS Landing Zone kan u helpen bij het opzetten van een veilige AWS-omgeving met meerdere accounts op basis van de best practices van AWS. Het biedt een basisomgeving om aan de slag te gaan met een architectuur met meerdere accounts, het automatiseren van het instellen van nieuwe accounts en het centraliseren van compliance, beveiliging en identiteitsbeheer. Het volgende is een voorbeeld van een aangepaste, op Terraform gebaseerde AWS Landing Zone-oplossing, waarbij elke applicatie zich in een eigen AWS-account bevindt.

De workflow op hoog niveau omvat de volgende componenten:

  • Module-inrichting – Verschillende platformteams in verschillende domeinen, zoals databases, containers, databeheer, netwerken en beveiliging, ontwikkelen en publiceren gecertificeerde of aangepaste modules. Deze worden via pijplijnen geleverd aan een privémoduleregister van Terraform, dat door de organisatie wordt onderhouden met het oog op consistentie en standaardisatie.
  • Accountautomaatlaag – De AVM-laag (Account Vending Machine) gebruikt beide AWS-verkeerstoren, AWS Account Factory voor Terraform (AFT), of een aangepaste landingszone-oplossing om accounts te verkopen. In dit bericht noemen we deze oplossingen gezamenlijk de AVM-laag. Wanneer applicatie-eigenaren een verzoek indienen bij de AVM-laag, worden de invoerparameters van het verzoek verwerkt om een ​​doel-AWS-account in te richten. Dit account wordt vervolgens voorzien van op maat gemaakte infrastructuurcomponenten via AVM-aanpassingen, waaronder: Aanpassingen van AWS Control Tower or AFT-aanpassingen.
  • Applicatie-infrastructuurlaag – In deze laag implementeren applicatieteams hun infrastructuurcomponenten in de ingerichte AWS-accounts. Dit wordt bereikt door Terraform-code te schrijven binnen een applicatiespecifieke repository. De Terraform-code doet een beroep op de modules die eerder door de platformteams in het privéregister van Terraform zijn gepubliceerd.

On-premise IaC-migratie-uitdagingen overwinnen met generatieve AI

Teams die on-premise applicaties onderhouden, ondervinden vaak een leercurve met Terraform, een belangrijk hulpmiddel voor IaC in AWS-omgevingen. Deze vaardigheidskloof kan een aanzienlijke hindernis vormen bij inspanningen op het gebied van cloudmigratie. Amazon Bedrock speelt met zijn generatieve AI-mogelijkheden een essentiële rol bij het beperken van deze uitdaging. Het vergemakkelijkt de automatisering van het maken van Terraform-code voor de applicatie-infrastructuurlaag, waardoor teams met beperkte Terraform-ervaring een efficiënte overgang naar AWS kunnen maken.

Amazon Bedrock genereert Terraform-code op basis van architectuurbeschrijvingen. De gegenereerde code is op maat gemaakt en gestandaardiseerd op basis van best practices van de organisatie, beveiliging en wettelijke richtlijnen. Deze standaardisatie wordt mogelijk gemaakt door gebruik te maken van geavanceerde aanwijzingen in combinatie met Kennisbanken voor Amazon Bedrock, waarin informatie wordt opgeslagen over organisatiespecifieke Terraform-modules. Deze oplossing maakt gebruik van Retrieval Augmented Generation (RAG) om de invoerprompt naar Amazon Bedrock te verrijken met details uit de kennisbank, en zorgt ervoor dat de Terraform-uitvoerconfiguratie en README-inhoud voldoen aan de best practices en richtlijnen van Terraform van uw organisatie.

Het volgende diagram illustreert deze architectuur.

De workflow bestaat uit de volgende stappen:

  1. Het proces begint met het verkopen van accounts, waarbij applicatie-eigenaren een aanvraag indienen voor een nieuw AWS-account. Hierdoor wordt de AVM aangeroepen, die de aanvraagparameters verwerkt om het doel-AWS-account in te richten.
  2. Een architectuurbeschrijving voor een applicatie die op het punt staat te worden gemigreerd, wordt doorgegeven als een van de invoergegevens aan de AVM-laag.
  3. Nadat het account is ingericht, worden AVM-aanpassingen toegepast. Dit kan omvatten Aanpassingen van AWS Control Tower or AFT-aanpassingen die het account opzetten met de noodzakelijke infrastructuurcomponenten en configuraties in overeenstemming met het organisatiebeleid.
  4. Tegelijkertijd roept de AVM-laag een Lambda-functie aan om Terraform-code te genereren. Deze functie verrijkt de architectuurbeschrijving met een aangepaste prompt en maakt gebruik van RAG om de prompt verder te verbeteren met organisatiespecifieke coderingsrichtlijnen uit de Knowledge Base voor Bedrock. Deze kennisbank bevat op maat gemaakte best practices, beveiligingsmaatregelen en richtlijnen die specifiek zijn voor de organisatie. Zie een illustratie voorbeeld van organisatiespecifieke Terraform-modulespecificaties en richtlijnen geüpload naar de Knowledge Base.
  5. Vóór de implementatie wordt de eerste versie van de Terraform-code grondig beoordeeld door cloudingenieurs of een geautomatiseerd codebeoordelingssysteem om te bevestigen dat deze voldoet aan alle technische en nalevingsnormen.
  6. De beoordeelde en bijgewerkte Terraform-scripts worden vervolgens gebruikt om infrastructuurcomponenten in het nieuw ingerichte AWS-account te implementeren, waardoor reken-, opslag- en netwerkbronnen worden opgezet die nodig zijn voor de applicatie.

Overzicht oplossingen

De AWS Landing Zone-implementatie maakt gebruik van een Lambda-functie voor het genereren van Terraform-scripts op basis van architectonische invoer. Deze functie, die centraal staat in de operatie, vertaalt deze invoer naar compatibele code, met behulp van Amazon Bedrock en Knowledge Bases voor Amazon Bedrock. De uitvoer wordt vervolgens opgeslagen in een GitHub-repository, die overeenkomt met de specifieke applicatie die wordt gemigreerd. In de volgende secties worden de vereisten en specifieke stappen beschreven die nodig zijn om deze oplossing te implementeren.

Voorwaarden

Je zou het volgende moeten hebben:

Configureer de Lambda-functie om aangepaste code te genereren

Deze Lambda-functie is een belangrijk onderdeel bij het automatiseren van de creatie van aangepaste, compatibele Terraform-configuraties voor AWS-services. Het legt de gegenereerde configuraties rechtstreeks vast in een aangewezen GitHub-repository, in lijn met de best practices van de organisatie. Raadpleeg het volgende voor de functiecode GitHub repo. Volg voor het maken van de lambdafunctie instructies.

Het volgende diagram illustreert de workflow van de functie.

De workflow omvat de volgende stappen:

  1. De functie wordt aangeroepen door een gebeurtenis uit de AVM-laag, die de architectuurbeschrijving bevat.
  2. De functie haalt Terraform-moduledefinities op uit de kennisbank en gebruikt deze.
  3. De functie roept het Amazon Bedrock-model tweemaal aan, volgens de aanbevolen instructies snelle technische richtlijnen. De functie past RAG toe om de invoerprompt te verrijken met de Terraform-module-informatie, en zorgt ervoor dat de uitvoercode voldoet aan de best practices van de organisatie.
    • Genereer eerst Terraform-configuraties volgens de codeerrichtlijnen van de organisatie en neem de details van de Terraform-module uit de kennisbank op. De prompt zou bijvoorbeeld kunnen zijn: “Genereer Terraform-configuraties voor AWS-services. Volg de best practices op het gebied van beveiliging door IAM-rollen en machtigingen met de minste bevoegdheden te gebruiken. Neem alle benodigde parameters op, met standaardwaarden. Voeg opmerkingen toe waarin de algemene architectuur en het doel van elke bron worden uitgelegd.”
    • Ten tweede: maak een gedetailleerd README-bestand. Bijvoorbeeld: “Genereer een gedetailleerde README voor de Terraform-configuratie op basis van AWS-services. Neem secties op over beveiligingsverbeteringen en tips voor kostenoptimalisatie volgens het AWS Well-Architected Framework. Voeg ook een gedetailleerd kostenoverzicht toe voor elke gebruikte AWS-service, met uurtarieven en totale dagelijkse en maandelijkse kosten.”
  4. Het legt de gegenereerde Terraform-configuratie en de README vast in de GitHub-repository, wat traceerbaarheid en transparantie biedt.
  5. Ten slotte reageert het met succes, inclusief URL's naar de vastgelegde GitHub-bestanden, of retourneert het gedetailleerde foutinformatie voor het oplossen van problemen.

Configureer kennisbanken voor Amazon Bedrock

Volg deze stappen om uw kennisbank in Amazon Bedrock op te zetten:

  1. Kies op de Amazon Bedrock-console Kennisbank in het navigatievenster.
  2. Kies Creëer kennisbasis.
  3. Voer een duidelijke en beschrijvende naam in die het doel van uw kennisbank weerspiegelt, zoals AWS Account Setup Knowledge Base For Amazon Bedrock.
  4. Wijs een vooraf geconfigureerde IAM-rol toe met de benodigde machtigingen. Het is doorgaans het beste om Amazon Bedrock deze rol voor u te laten maken, om er zeker van te zijn dat deze over de juiste machtigingen beschikt.
  5. Upload een JSON-bestand naar een S3-bucket waarbij encryptie is ingeschakeld voor de veiligheid. Dit bestand moet een gestructureerde lijst met AWS-services en Terraform-modules bevatten. Gebruik het volgende voor de JSON-structuur voorbeeld uit de GitHub-repository.
  6. Kies het standaard insluitingsmodel.
  7. Laat Amazon Bedrock de vectorwinkel voor u maken en beheren Amazon OpenSearch-service.
  8. Controleer de informatie op nauwkeurigheid. Besteed speciale aandacht aan de details van de S3-bucket-URI en IAM-rol.
  9. Creëer uw kennisbank.

Nadat u deze componenten heeft geïmplementeerd en geconfigureerd, worden de volgende bestanden gegenereerd wanneer uw AWS Landing Zone-oplossing de Lambda-functie aanroept:

  • Een Terraform-configuratiebestand – Dit bestand specificeert de infrastructuurinstellingen.
  • Een uitgebreid README-bestand – Dit bestand documenteert de beveiligingsstandaarden die in de code zijn ingebed en bevestigt dat deze overeenkomen met de beveiligingspraktijken die in de eerste secties zijn beschreven. Bovendien bevat deze README een architectonisch overzicht, tips voor kostenoptimalisatie en een gedetailleerd kostenoverzicht voor de resources die worden beschreven in de Terraform-configuratie.

De volgende schermafbeelding toont een voorbeeld van het Terraform-configuratiebestand.

De volgende schermafbeelding toont een voorbeeld van het README-bestand.

Opruimen

Voer de volgende stappen uit om uw bronnen op te schonen:

  1. Verwijder de Lambda-functie als deze niet langer nodig is.
  2. Leeg en verwijder de S3-bucket die wordt gebruikt voor Terraform-statusopslag.
  3. Verwijder de gegenereerde Terraform-scripts en het README-bestand uit de GitHub-opslagplaats.
  4. Verwijder de kennisbank als het niet meer nodig is.

Conclusie

De generatieve AI-mogelijkheden van Amazon Bedrock stroomlijnen niet alleen de creatie van compatibele Terraform-scripts voor AWS-implementaties, maar fungeren ook als een cruciaal leerhulpmiddel voor beginnende cloud-ingenieurs die on-premise applicaties overzetten naar AWS. Deze aanpak versnelt het cloudmigratieproces en helpt u zich aan best practices te houden. U kunt de oplossing ook gebruiken om waarde te bieden na de migratie, waardoor de dagelijkse activiteiten zoals doorlopende infrastructuur en kostenoptimalisatie worden verbeterd. Hoewel we ons in dit bericht voornamelijk op Terraform hebben gericht, kunnen deze principes ook uw AWS CloudFormation-implementaties verbeteren, waardoor een veelzijdige oplossing voor uw infrastructuurbehoeften wordt geboden.

Klaar om uw cloudmigratieproces te vereenvoudigen met generatieve AI in Amazon Bedrock? Begin met het verkennen van de Amazon Bedrock-gebruikershandleiding om te begrijpen hoe het de cloudreis van uw organisatie kan stroomlijnen. Voor verdere hulp en expertise kunt u overwegen om te gebruiken AWS professionele services om u te helpen uw cloudmigratietraject te stroomlijnen en de voordelen van Amazon Bedrock te maximaliseren.

Ontgrendel het potentieel voor snelle, veilige en efficiënte cloud-adoptie met Amazon Bedrock. Zet vandaag nog de eerste stap en ontdek hoe dit de inspanningen voor cloudtransformatie van uw organisatie kan verbeteren.


Over de auteur

Ebbe Thomas is gespecialiseerd in het strategiseren en ontwikkelen van aangepaste AWS Landing Zone-bronnen met een focus op het gebruik van generatieve AI om de automatisering van de cloudinfrastructuur te verbeteren. In zijn rol bij AWS Professional Services staat de expertise van Ebbey centraal bij het ontwerpen van oplossingen die de adoptie van de cloud stroomlijnen en een veilig en efficiënt operationeel raamwerk bieden voor AWS-gebruikers. Hij staat bekend om zijn innovatieve benadering van clouduitdagingen en zijn inzet om de mogelijkheden van clouddiensten verder te ontwikkelen.

spot_img

Laatste intelligentie

spot_img