Zephyrnet-logotyp

Generera anpassade, kompatibla applikations-IAC-skript för AWS Landing Zone med Amazon Bedrock | Amazon webbtjänster

Datum:

Att migrera till molnet är ett viktigt steg för moderna organisationer som vill dra nytta av flexibiliteten och omfattningen av molnresurser. Verktyg som Terraform och AWS molnformation är avgörande för sådana övergångar, och erbjuder infrastruktur som kodfunktioner (IaC) som definierar och hanterar komplexa molnmiljöer med precision. Men trots dess fördelar kan IaC:s inlärningskurva och komplexiteten i att följa din organisations och branschspecifika efterlevnads- och säkerhetsstandarder bromsa din molnintroduktion. Organisationer motverkar vanligtvis dessa hinder genom att investera i omfattande utbildningsprogram eller anställa specialiserad personal, vilket ofta leder till ökade kostnader och försenade migreringstider.

Generativ artificiell intelligens (AI) med Amazonas berggrund hanterar dessa utmaningar direkt. Amazon Bedrock är en fullt hanterad tjänst som erbjuder ett urval av högpresterande grundmodeller (FM) från ledande AI-företag som AI21 Labs, Anthropic, Cohere, Meta, Stability AI och Amazon med ett enda API, tillsammans med en bred uppsättning av förmåga att bygga generativa AI-applikationer med säkerhet, integritet och ansvarsfull AI. Amazon Bedrock ger team möjlighet att generera Terraform- och CloudFormation-skript som är skräddarsydda för organisationens behov samtidigt som de sömlöst integrerar efterlevnads- och säkerhetsmetoder. Traditionellt skulle molningenjörer som lärde sig IaC manuellt sålla igenom dokumentation och bästa praxis för att skriva kompatibla IaC-skript. Med Amazon Bedrock kan team mata in arkitektoniska beskrivningar på hög nivå och använda generativ AI för att generera en baslinjekonfiguration av Terraform-skript. Dessa genererade skript är skräddarsydda för att möta din organisations unika krav samtidigt som de överensstämmer med branschstandarder för säkerhet och efterlevnad. Dessa skript fungerar som en grundläggande utgångspunkt, som kräver ytterligare förfining och validering för att säkerställa att de uppfyller produktionsnivåstandarder.

Denna lösning påskyndar inte bara migreringsprocessen utan ger också en standardiserad och säker molninfrastruktur. Dessutom erbjuder den nybörjare molningenjörer initiala skriptutkast som standardmallar att bygga på, vilket underlättar deras IaC-inlärningsresa.

När du navigerar i komplexiteten med molnmigrering är behovet av en strukturerad, säker och kompatibel miljö av största vikt. AWS landningszon tillgodoser detta behov genom att erbjuda ett standardiserat tillvägagångssätt för att distribuera AWS-resurser. Detta säkerställer att din molngrund är byggd enligt AWS bästa praxis från början. Med AWS Landing Zone eliminerar du gissningar i säkerhetskonfigurationer, resursförsörjning och kontohantering. Det är särskilt fördelaktigt för organisationer som vill skala utan att kompromissa med styrning eller kontroll, vilket ger en tydlig väg till en robust och effektiv molnkonfiguration.

I det här inlägget visar vi dig hur du skapar anpassade, kompatibla IaC-skript för AWS Landing Zone med Amazon Bedrock.

AWS Landing Zone-arkitektur i samband med molnmigrering

AWS Landing Zone kan hjälpa dig att skapa en säker AWS-miljö med flera konton baserad på AWS bästa praxis. Det ger en baslinjemiljö för att komma igång med en arkitektur för flera konton, automatisera konfigurationen av nya konton och centralisera efterlevnad, säkerhet och identitetshantering. Följande är ett exempel på en anpassad Terraform-baserad AWS Landing Zone-lösning, där varje applikation finns i sitt eget AWS-konto.

Arbetsflödet på hög nivå inkluderar följande komponenter:

  • Modulförsörjning – Olika plattformsteam över olika domäner, såsom databaser, behållare, datahantering, nätverk och säkerhet, utvecklar och publicerar certifierade eller anpassade moduler. Dessa levereras via pipelines till ett Terraform privat modulregister, som underhålls av organisationen för konsekvens och standardisering.
  • Konto varuautomat lager – Lagret för kontoautomater (AVM) använder antingen AWS kontrolltorn, AWS Account Factory för Terraform (AFT), eller en anpassad landningszonslösning för att sälja konton. I det här inlägget hänvisar vi till dessa lösningar tillsammans som AVM-lagret. När applikationsägare skickar en begäran till AVM-lagret, bearbetar den indataparametrarna från begäran för att tillhandahålla ett mål-AWS-konto. Detta konto förses sedan med skräddarsydda infrastrukturkomponenter genom AVM-anpassningar, som inkluderar AWS Control Tower-anpassningar or AFT-anpassningar.
  • Applikationsinfrastrukturlager – I det här lagret distribuerar applikationsteam sina infrastrukturkomponenter i de tillhandahållna AWS-kontona. Detta uppnås genom att skriva Terraform-kod i ett applikationsspecifikt arkiv. Terraform-koden anlitar de moduler som tidigare publicerats till Terraforms privata register av plattformsteamen.

Att övervinna lokala IaC-migreringsutmaningar med generativ AI

Team som underhåller lokala applikationer stöter ofta på en inlärningskurva med Terraform, ett nyckelverktyg för IaC i AWS-miljöer. Denna kompetensklyfta kan vara ett betydande hinder i molnmigreringsinsatser. Amazon Bedrock, med sin generativa AI-kapacitet, spelar en viktig roll för att mildra denna utmaning. Det underlättar automatiseringen av Terraform-kodskapande för applikationsinfrastrukturlagret, vilket ger team med begränsad Terraform-erfarenhet möjlighet att göra en effektiv övergång till AWS.

Amazon Bedrock genererar Terraform-kod från arkitektoniska beskrivningar. Den genererade koden är anpassad och standardiserad baserat på organisationens bästa praxis, säkerhet och regulatoriska riktlinjer. Denna standardisering möjliggörs genom att använda avancerade uppmaningar i samband med Kunskapsbaser för Amazon Bedrock, som lagrar information om organisationsspecifika Terraform-moduler. Den här lösningen använder Retrieval Augmented Generation (RAG) för att berika inmatningsuppmaningen till Amazon Bedrock med detaljer från kunskapsbasen, vilket säkerställer att Terraforms utdatakonfiguration och README-innehåll överensstämmer med din organisations bästa metoder och riktlinjer för Terraform.

Följande diagram illustrerar denna arkitektur.

Arbetsflödet består av följande steg:

  1. Processen börjar med kontoförsäljning, där applikationsägare skickar in en begäran om ett nytt AWS-konto. Detta anropar AVM, som bearbetar förfrågningsparametrarna för att tillhandahålla mål-AWS-kontot.
  2. En arkitekturbeskrivning för en applikation planerad för migrering skickas som en av ingångarna till AVM-lagret.
  3. Efter att kontot har tillhandahållits tillämpas AVM-anpassningar. Detta kan inkludera AWS Control Tower-anpassningar or AFT-anpassningar som ställer in kontot med nödvändiga infrastrukturkomponenter och konfigurationer i linje med organisationens policyer.
  4. Parallellt anropar AVM-lagret en Lambda-funktion för att generera Terraform-kod. Denna funktion berikar arkitekturbeskrivningen med en anpassad prompt och använder RAG för att ytterligare förbättra prompten med organisationsspecifika kodningsriktlinjer från Knowledge Base for Berggrund. Denna kunskapsbas inkluderar skräddarsydda bästa praxis, säkerhetsräcken och riktlinjer specifika för organisationen. Se en illustrativ exempel av organisationsspecifika Terraform-modulspecifikationer och riktlinjer uppladdade till Knowledge Base.
  5. Före implementeringen granskas det första utkastet av Terraform-koden grundligt av molningenjörer eller ett automatiserat kodgranskningssystem för att bekräfta att den uppfyller alla tekniska och överensstämmelsestandarder.
  6. De granskade och uppdaterade Terraform-skripten används sedan för att distribuera infrastrukturkomponenter i det nyligen tillhandahållna AWS-kontot, för att ställa in beräknings-, lagrings- och nätverksresurser som krävs för applikationen.

Lösningsöversikt

AWS Landing Zone-distribution använder en Lambda-funktion för att generera Terraform-skript från arkitektoniska ingångar. Denna funktion, som är central för verksamheten, översätter dessa indata till kompatibel kod, med hjälp av Amazon Bedrock och Knowledge Bases for Amazon Bedrock. Utdata lagras sedan i ett GitHub-förråd, motsvarande den specifika applikationen i migreringen. Följande avsnitt beskriver förutsättningarna och specifika steg som krävs för att implementera denna lösning.

Förutsättningar

Du bör ha följande:

Konfigurera Lambda-funktionen för att generera anpassad kod

Denna Lambda-funktion är en nyckelkomponent för att automatisera skapandet av skräddarsydda, kompatibla Terraform-konfigurationer för AWS-tjänster. Den överför de genererade konfigurationerna direkt till ett utsett GitHub-förråd, i linje med organisationens bästa praxis. För funktionskoden, se följande GitHub repo. För att skapa lambdafunktion, vänligen följ instruktioner.

Följande diagram illustrerar funktionens arbetsflöde.

Arbetsflödet innehåller följande steg:

  1. Funktionen anropas av en händelse från AVM-lagret, som innehåller arkitekturbeskrivningen.
  2. Funktionen hämtar och använder Terraform-moduldefinitioner från kunskapsbasen.
  3. Funktionen anropar Amazon Bedrock-modellen två gånger, enligt rekommenderat snabba tekniska riktlinjer. Funktionen tillämpar RAG för att berika ingångsprompten med Terraform-modulinformationen, och se till att utdatakoden uppfyller organisationens bästa praxis.
    • Generera först Terraform-konfigurationer enligt organisatoriska kodningsriktlinjer och inkludera Terraform-moduldetaljer från kunskapsbasen. Till exempel kan uppmaningen vara: "Generera Terraform-konfigurationer för AWS-tjänster. Följ bästa praxis för säkerhet genom att använda IAM-roller och minsta privilegier. Inkludera alla nödvändiga parametrar, med standardvärden. Lägg till kommentarer som förklarar den övergripande arkitekturen och syftet med varje resurs."
    • För det andra, skapa en detaljerad README-fil. Till exempel: "Generera en detaljerad README för Terraform-konfigurationen baserat på AWS-tjänster. Inkludera avsnitt om säkerhetsförbättringar, kostnadsoptimeringstips enligt AWS Well-Architected Framework. Inkludera också detaljerad kostnadsuppdelning för varje AWS-tjänst som används med timpriser och totala dagliga och månatliga kostnader."
  4. Den överför den genererade Terraform-konfigurationen och README till GitHub-förvaret, vilket ger spårbarhet och transparens.
  5. Slutligen svarar den med framgång, inklusive URL:er till de engagerade GitHub-filerna, eller returnerar detaljerad felinformation för felsökning.

Konfigurera kunskapsbaser för Amazon Bedrock

Följ dessa steg för att ställa in din kunskapsbas i Amazon Bedrock:

  1. Välj på Amazon Bedrock-konsolen Kunskapsbas i navigeringsfönstret.
  2. Välja Skapa kunskapsbas.
  3. Ange ett tydligt och beskrivande namn som återspeglar syftet med din kunskapsbas, till exempel AWS Account Setup Knowledge Base For Amazon Bedrock.
  4. Tilldela en förkonfigurerad IAM-roll med nödvändiga behörigheter. Det är vanligtvis bäst att låta Amazon Bedrock skapa den här rollen för dig för att se till att den har rätt behörigheter.
  5. Ladda upp en JSON-fil till en S3-bucket med kryptering aktiverad för säkerhet. Den här filen bör innehålla en strukturerad lista över AWS-tjänster och Terraform-moduler. För JSON-strukturen, använd följande exempel från GitHub-förvaret.
  6. Välj standardinbäddningsmodellen.
  7. Tillåt Amazon Bedrock att skapa och hantera vektorbutiken åt dig i Amazon OpenSearch Service.
  8. Granska informationen för noggrannhet. Var särskilt uppmärksam på S3-skopans URI- och IAM-rolldetaljer.
  9. Skapa din kunskapsbas.

När du har distribuerat och konfigurerat dessa komponenter, när din AWS Landing Zone-lösning anropar Lambda-funktionen, genereras följande filer:

  • En Terraform-konfigurationsfil – Den här filen anger infrastrukturinställningen.
  • En omfattande README-fil – Den här filen dokumenterar säkerhetsstandarderna som är inbäddade i koden, vilket bekräftar att de överensstämmer med säkerhetsrutinerna som beskrivs i de inledande avsnitten. Dessutom innehåller denna README en arkitektonisk sammanfattning, kostnadsoptimeringstips och en detaljerad kostnadsuppdelning för resurserna som beskrivs i Terraform-konfigurationen.

Följande skärmdump visar ett exempel på Terraform-konfigurationsfilen.

Följande skärmdump visar ett exempel på README-filen.

Städa upp

Utför följande steg för att rensa upp dina resurser:

  1. Ta bort Lambdafunktionen om den inte längre behövs.
  2. Töm och ta bort S3-hinken som används för Terraform-tillståndslagring.
  3. Ta bort de genererade Terraform-skripten och README-filen från GitHub-repo.
  4. Ta bort kunskapsbasen om det inte längre behövs.

Slutsats

De generativa AI-kapaciteterna hos Amazon Bedrock effektiviserar inte bara skapandet av kompatibla Terraform-skript för AWS-distributioner, utan fungerar också som ett centralt inlärningshjälpmedel för nybörjare molningenjörer som övergår till lokala applikationer till AWS. Detta tillvägagångssätt påskyndar molnmigreringsprocessen och hjälper dig att följa bästa praxis. Du kan också använda lösningen för att ge värde efter migreringen, vilket förbättrar den dagliga driften som pågående infrastruktur och kostnadsoptimering. Även om vi främst fokuserade på Terraform i det här inlägget, kan dessa principer också förbättra dina AWS CloudFormation-distributioner, vilket ger en mångsidig lösning för dina infrastrukturbehov.

Är du redo att förenkla din molnmigreringsprocess med generativ AI i Amazon Bedrock? Börja med att utforska Amazon Bedrock användarguide för att förstå hur det kan effektivisera din organisations molnresa. För ytterligare hjälp och expertis, överväg att använda AWS professionella tjänster för att hjälpa dig effektivisera din molnmigreringsresa och maximera fördelarna med Amazon Bedrock.

Lås upp potentialen för snabb, säker och effektiv molnadoption med Amazon Bedrock. Ta det första steget idag och upptäck hur det kan förbättra din organisations molntransformationssträvanden.


Om författaren

Ebbey Thomas specialiserar sig på att strategisera och utveckla anpassade AWS Landing Zone-resurser med fokus på att använda generativ AI för att förbättra automatiseringen av molninfrastrukturen. I sin roll på AWS Professional Services är Ebbeys expertis central för att utforma lösningar som effektiviserar molnintroduktionen, vilket ger ett säkert och effektivt operativt ramverk för AWS-användare. Han är känd för sitt innovativa förhållningssätt till molnutmaningar och sitt engagemang för att driva vidare molntjänsternas möjligheter.

plats_img

Senaste intelligens

plats_img