Platão Inteligência de Dados.
Pesquisa Vertical e AI.

Gere scripts IaC de aplicativos personalizados e compatíveis para AWS Landing Zone usando Amazon Bedrock | Amazon Web Services

Data:

A migração para a nuvem é um passo essencial para as organizações modernas que pretendem capitalizar a flexibilidade e a escala dos recursos da nuvem. Ferramentas como Terraform e Formação da Nuvem AWS são fundamentais para essas transições, oferecendo recursos de infraestrutura como código (IaC) que definem e gerenciam ambientes de nuvem complexos com precisão. No entanto, apesar dos seus benefícios, a curva de aprendizagem da IaC e a complexidade de aderir aos padrões de conformidade e segurança específicos da sua organização e do setor, podem abrandar o seu percurso de adoção da nuvem. As organizações normalmente combatem estes obstáculos investindo em programas de formação extensivos ou contratando pessoal especializado, o que muitas vezes leva ao aumento dos custos e ao atraso nos prazos de migração.

Inteligência artificial generativa (IA) com Rocha Amazônica aborda diretamente esses desafios. O Amazon Bedrock é um serviço totalmente gerenciado que oferece uma variedade de modelos básicos (FMs) de alto desempenho de empresas líderes de IA, como AI21 Labs, Anthropic, Cohere, Meta, Stability AI e Amazon com uma única API, juntamente com um amplo conjunto de capacidades para construir aplicações generativas de IA com segurança, privacidade e IA responsável. O Amazon Bedrock capacita as equipes a gerar scripts Terraform e CloudFormation personalizados de acordo com as necessidades organizacionais, ao mesmo tempo que integra perfeitamente as práticas recomendadas de conformidade e segurança. Tradicionalmente, os engenheiros de nuvem que aprendem IaC examinavam manualmente a documentação e as práticas recomendadas para escrever scripts de IaC compatíveis. Com o Amazon Bedrock, as equipes podem inserir descrições arquitetônicas de alto nível e usar IA generativa para gerar uma configuração básica de scripts Terraform. Esses scripts gerados são adaptados para atender aos requisitos exclusivos da sua organização e, ao mesmo tempo, estar em conformidade com os padrões do setor em termos de segurança e conformidade. Esses scripts servem como ponto de partida fundamental, exigindo refinamento e validação adicionais para garantir que atendam aos padrões de nível de produção.

Esta solução não só acelera o processo de migração, mas também fornece uma infraestrutura em nuvem padronizada e segura. Além disso, oferece aos engenheiros de nuvem iniciantes rascunhos de script iniciais como modelos padrão para construir, facilitando sua jornada de aprendizado de IaC.

À medida que você navega pelas complexidades da migração para a nuvem, a necessidade de um ambiente estruturado, seguro e compatível é fundamental. Zona de destino da AWS atende a essa necessidade oferecendo uma abordagem padronizada para implantação de recursos da AWS. Isso garante que sua base de nuvem seja construída de acordo com as práticas recomendadas da AWS desde o início. Com o AWS Landing Zone, você elimina suposições em configurações de segurança, provisionamento de recursos e gerenciamento de contas. É particularmente benéfico para organizações que procuram escalar sem comprometer a governação ou o controlo, fornecendo um caminho claro para uma configuração de nuvem robusta e eficiente.

Nesta postagem, mostramos como gerar scripts IaC personalizados e compatíveis para AWS Landing Zone usando Amazon Bedrock.

Arquitetura da AWS Landing Zone no contexto da migração para nuvem

O AWS Landing Zone pode ajudá-lo a configurar um ambiente AWS seguro e com várias contas com base nas práticas recomendadas da AWS. Ele fornece um ambiente básico para começar com uma arquitetura de várias contas, automatizar a configuração de novas contas e centralizar a conformidade, a segurança e o gerenciamento de identidade. A seguir está um exemplo de uma solução AWS Landing Zone personalizada baseada em Terraform, na qual cada aplicativo reside em sua própria conta da AWS.

O fluxo de trabalho de alto nível inclui os seguintes componentes:

  • Provisionamento de módulo – Diferentes equipes de plataforma em vários domínios, como bancos de dados, contêineres, gerenciamento de dados, redes e segurança, desenvolvem e publicam módulos certificados ou personalizados. Eles são entregues por meio de pipelines para um registro de módulo privado do Terraform, que é mantido pela organização para consistência e padronização.
  • Camada de máquina de venda automática de contas – A camada da máquina de venda automática de contas (AVM) usa Torre de controle AWS, Fábrica de contas AWS para Terraform (AFT) ou uma solução de zona de destino personalizada para vender contas. Nesta postagem, nos referimos a essas soluções coletivamente como camada AVM. Quando os proprietários de aplicativos enviam uma solicitação à camada AVM, ela processa os parâmetros de entrada da solicitação para provisionar uma conta AWS de destino. Essa conta é então provisionada com componentes de infraestrutura personalizados por meio de customizações de AVM, que incluem Personalizações da AWS Control Tower or Personalizações AFT.
  • Camada de infraestrutura de aplicativos – Nesta camada, as equipes de aplicação implantam seus componentes de infraestrutura nas contas AWS provisionadas. Isso é conseguido escrevendo o código Terraform em um repositório específico do aplicativo. O código Terraform recorre aos módulos previamente publicados no registro privado Terraform pelas equipes da plataforma.

Superando os desafios da migração IaC local com IA generativa

As equipes que mantêm aplicativos locais geralmente enfrentam uma curva de aprendizado com o Terraform, uma ferramenta essencial para IaC em ambientes AWS. Esta lacuna de competências pode ser um obstáculo significativo nos esforços de migração para a nuvem. O Amazon Bedrock, com seus recursos de IA generativa, desempenha um papel essencial na mitigação desse desafio. Ele facilita a automação da criação de código Terraform para a camada de infraestrutura de aplicativos, capacitando equipes com experiência limitada em Terraform para fazer uma transição eficiente para a AWS.

O Amazon Bedrock gera código Terraform a partir de descrições arquitetônicas. O código gerado é personalizado e padronizado com base nas melhores práticas organizacionais, segurança e diretrizes regulatórias. Essa padronização é possível usando prompts avançados em conjunto com Bases de conhecimento para Amazon Bedrock, que armazena informações sobre módulos Terraform específicos da organização. Esta solução usa Retrieval Augmented Generation (RAG) para enriquecer o prompt de entrada do Amazon Bedrock com detalhes da base de conhecimento, garantindo que a configuração do Terraform de saída e o conteúdo README estejam em conformidade com as práticas recomendadas e diretrizes do Terraform da sua organização.

O diagrama a seguir ilustra essa arquitetura.

O fluxo de trabalho consiste nas seguintes etapas:

  1. O processo começa com a venda de contas, onde os proprietários de aplicativos enviam uma solicitação para uma nova conta da AWS. Isso invoca o AVM, que processa os parâmetros de solicitação para provisionar a conta AWS de destino.
  2. Uma descrição da arquitetura de um aplicativo programado para migração é passada como uma das entradas para a camada AVM.
  3. Depois que a conta for provisionada, as personalizações do AVM serão aplicadas. Isso pode incluir Personalizações da AWS Control Tower or Personalizações AFT que configuram a conta com os componentes e configurações de infraestrutura necessários de acordo com as políticas organizacionais.
  4. Paralelamente, a camada AVM invoca uma função Lambda para gerar código Terraform. Esta função enriquece a descrição da arquitetura com um prompt personalizado e utiliza RAG para aprimorar ainda mais o prompt com diretrizes de codificação específicas da organização da Knowledge Base for Bedrock. Esta base de conhecimento inclui práticas recomendadas personalizadas, proteções de segurança e diretrizes específicas para a organização. Veja um ilustrativo exemplo de especificações e diretrizes do módulo Terraform específicas da organização carregadas na Base de Conhecimento.
  5. Antes da implantação, o rascunho inicial do código Terraform é revisado minuciosamente por engenheiros de nuvem ou por um sistema automatizado de revisão de código para confirmar se ele atende a todos os padrões técnicos e de conformidade.
  6. Os scripts Terraform revisados ​​e atualizados são então usados ​​para implantar componentes de infraestrutura na conta AWS recém-provisionada, configurando os recursos de computação, armazenamento e rede necessários para o aplicativo.

Visão geral da solução

A implantação da AWS Landing Zone usa uma função Lambda para gerar scripts Terraform a partir de entradas arquitetônicas. Essa função, central para a operação, traduz essas entradas em código compatível, usando Amazon Bedrock e bases de conhecimento para Amazon Bedrock. A saída é então armazenada em um repositório GitHub, correspondente ao aplicativo específico na migração. As seções a seguir detalham os pré-requisitos e as etapas específicas necessárias para implementar esta solução.

Pré-requisitos

Você deve ter o seguinte:

Configure a função Lambda para gerar código personalizado

Esta função Lambda é um componente chave na automatização da criação de configurações Terraform personalizadas e compatíveis para serviços AWS. Ele confirma as configurações geradas diretamente em um repositório GitHub designado, alinhando-se às melhores práticas organizacionais. Para o código de função, consulte o seguinte GitHub repo. Para criar a função lambda, siga instruções.

O diagrama a seguir ilustra o fluxo de trabalho da função.

O fluxo de trabalho inclui as seguintes etapas:

  1. A função é invocada por um evento da camada AVM, contendo a descrição da arquitetura.
  2. A função recupera e usa definições de módulo Terraform da base de conhecimento.
  3. A função invoca o modelo Amazon Bedrock duas vezes, seguindo as recomendações diretrizes imediatas de engenharia. A função aplica RAG para enriquecer o prompt de entrada com as informações do módulo Terraform, garantindo que o código de saída atenda às melhores práticas organizacionais.
    • Primeiro, gere configurações do Terraform seguindo as diretrizes de codificação organizacional e inclua detalhes do módulo Terraform da base de conhecimento. Por exemplo, o prompt poderia ser: “Gerar configurações do Terraform para serviços AWS. Siga as práticas recomendadas de segurança usando funções do IAM e permissões com privilégios mínimos. Inclua todos os parâmetros necessários, com valores padrão. Adicione comentários explicando a arquitetura geral e a finalidade de cada recurso.”
    • Segundo, crie um arquivo README detalhado. Por exemplo: “Gere um README detalhado para a configuração do Terraform com base nos serviços AWS. Inclua seções sobre melhorias de segurança e dicas de otimização de custos seguindo o AWS Well-Architected Framework. Além disso, inclua detalhamento de custos detalhado para cada serviço AWS usado com taxas por hora e custos totais diários e mensais.”
  4. Ele confirma a configuração gerada do Terraform e o README no repositório GitHub, fornecendo rastreabilidade e transparência.
  5. Por último, ele responde com sucesso, incluindo URLs para os arquivos GitHub confirmados ou retorna informações detalhadas de erros para solução de problemas.

Configurar bases de conhecimento para Amazon Bedrock

Siga estas etapas para configurar sua base de conhecimento no Amazon Bedrock:

  1. No console do Amazon Bedrock, escolha Base de conhecimento no painel de navegação.
  2. Escolha Criar base de conhecimento.
  3. Insira um nome claro e descritivo que reflita a finalidade da sua base de conhecimento, como AWS Account Setup Knowledge Base For Amazon Bedrock.
  4. Atribua uma função do IAM pré-configurada com as permissões necessárias. Normalmente, é melhor permitir que o Amazon Bedrock crie essa função para garantir que ela tenha as permissões corretas.
  5. Faça upload de um arquivo JSON para um bucket S3 com criptografia habilitada para segurança. Este arquivo deve conter uma lista estruturada de serviços AWS e módulos Terraform. Para a estrutura JSON, use o seguinte exemplo do repositório GitHub.
  6. Escolha o modelo de embeddings padrão.
  7. Permita que o Amazon Bedrock crie e gerencie o armazenamento de vetores para você em Serviço Amazon OpenSearch.
  8. Revise as informações para ver se há precisão. Preste atenção especial ao URI do bucket S3 e aos detalhes da função IAM.
  9. Crie sua base de conhecimento.

Depois de implantar e configurar esses componentes, quando a solução AWS Landing Zone invoca a função Lambda, os seguintes arquivos são gerados:

  • Um arquivo de configuração do Terraform – Este arquivo especifica a configuração da infraestrutura.
  • Um arquivo README abrangente – Este arquivo documenta os padrões de segurança incorporados ao código, confirmando que eles estão alinhados com as práticas de segurança descritas nas seções iniciais. Além disso, este README inclui um resumo arquitetônico, dicas de otimização de custos e um detalhamento detalhado dos custos dos recursos descritos na configuração do Terraform.

A captura de tela a seguir mostra um exemplo do arquivo de configuração do Terraform.

A captura de tela a seguir mostra um exemplo do arquivo README.

limpar

Conclua as etapas a seguir para limpar seus recursos:

  1. Exclua a função Lambda se ela não for mais necessária.
  2. Esvazie e exclua o bucket S3 usado para armazenamento de estado do Terraform.
  3. Remova os scripts Terraform gerados e o arquivo README do repositório GitHub.
  4. Excluir a base de conhecimento se não for mais necessário.

Conclusão

Os recursos de IA generativa do Amazon Bedrock não apenas simplificam a criação de scripts Terraform compatíveis para implantações da AWS, mas também atuam como um auxílio de aprendizagem fundamental para engenheiros de nuvem iniciantes que fazem a transição de aplicativos locais para a AWS. Essa abordagem acelera o processo de migração para a nuvem e ajuda você a aderir às práticas recomendadas. Você também pode usar a solução para agregar valor após a migração, aprimorando as operações diárias, como infraestrutura contínua e otimização de custos. Embora tenhamos nos concentrado principalmente no Terraform nesta postagem, esses princípios também podem aprimorar suas implantações do AWS CloudFormation, fornecendo uma solução versátil para suas necessidades de infraestrutura.

Pronto para simplificar seu processo de migração para a nuvem com IA generativa no Amazon Bedrock? Comece explorando o Guia do usuário do Amazon Bedrock para entender como ele pode agilizar a jornada da sua organização para a nuvem. Para obter mais assistência e conhecimento, considere usar Serviços Profissionais AWS para ajudá-lo a simplificar sua jornada de migração para a nuvem e maximizar os benefícios do Amazon Bedrock.

Libere o potencial de adoção rápida, segura e eficiente da nuvem com o Amazon Bedrock. Dê o primeiro passo hoje e descubra como isso pode aprimorar os esforços de transformação na nuvem da sua organização.


Sobre o autor

Ebbey Thomas é especializada na criação de estratégias e no desenvolvimento de recursos personalizados da AWS Landing Zone com foco no uso de IA generativa para aprimorar a automação da infraestrutura em nuvem. Em sua função na AWS Professional Services, a experiência de Ebbey é fundamental para arquitetar soluções que agilizam a adoção da nuvem, fornecendo uma estrutura operacional segura e eficiente para usuários da AWS. Ele é conhecido por sua abordagem inovadora aos desafios da nuvem e por seu compromisso em impulsionar os recursos dos serviços em nuvem.

local_img

Inteligência mais recente

local_img

Fale Conosco

Olá! Como posso ajudá-lo?