View a markdown version of this page

Automatize a configuração do peering entre regiões com AWS Transit Gateway - Recomendações da AWS

As traduções são geradas por tradução automática. Em caso de conflito entre o conteúdo da tradução e da versão original em inglês, a versão em inglês prevalecerá.

Automatize a configuração do peering entre regiões com AWS Transit Gateway

Ram Kandaswamy, Amazon Web Services

Resumo

AWS Transit Gatewayconecta nuvens privadas virtuais (VPCs) e redes locais por meio de um hub central. O tráfego do Transit Gateway não atravessa a Internet pública, o que reduz os vetores de ameaças, como explorações comuns e ataques distribuídos de negação de serviço (DDoS).

Se precisar se comunicar entre dois ou mais Regiões da AWS, você pode usar o emparelhamento entre regiões do Transit Gateway para estabelecer conexões de emparelhamento entre gateways de trânsito em diferentes regiões. No entanto, configurar manualmente o emparelhamento entre regiões com o Transit Gateway pode ser complexo e demorado. Esse padrão fornece orientação para o uso da infraestrutura como código (IaC) para configurar o peering. Você pode usar essa abordagem se precisar configurar várias regiões repetidamente e Contas da AWS para uma configuração de organização multirregional.

Esse padrão configura uma AWS CloudFormationpilha que inclui um AWS Step Functionsfluxo de trabalho, AWS Lambdafunções, funçõesAWS Identity and Access Management (IAM) e grupos de registros no Amazon CloudWatch Logs. Em seguida, você executa o fluxo de trabalho Step Functions para criar a conexão de emparelhamento entre regiões para seus gateways de trânsito.

Pré-requisitos e limitações

Pré-requisitos

Limitações

  • Apenas alguns Regiões da AWS oferecem suporte ao peering entre regiões. Para obter uma lista completa das regiões que oferecem suporte ao peering entre regiões, consulte o. AWS Transit Gateway FAQs

Arquitetura

A abordagem de desenvolvimento de IA agêntica descrita nesse padrão envolve as seguintes etapas:

  1. Defina a solicitação de automação — Kiro recebe uma solicitação em linguagem natural que detalha os requisitos de emparelhamento.

  2. Gere script de automação — Kiro gera os scripts CloudFormation e Lambda com base no prompt fornecido.

  3. Implante a pilha — Kiro usa CloudFormation para implantar os recursos necessários.

  4. Configurar o peering — o Kiro executa o fluxo de trabalho Step Functions, que chama as funções Lambda para criar conexões de peering e modificar tabelas de rotas.

O diagrama a seguir mostra o fluxo de trabalho do Step Functions:

Fluxo de trabalho do Step Functions para chamar uma função do Lambda e modificar as tabelas de rotas para o emparelhamento do gateway de trânsito.

O fluxo de trabalho contém as seguintes etapas:

  1. O fluxo de trabalho do Step Functions chama a função Lambda para o peering do Transit Gateway. 

  2. O fluxo de trabalho espera por um minuto.

  3. O fluxo de trabalho recupera o status de emparelhamento e o envia para o bloco de condições. O bloco é responsável pelo loop. 

  4. Se a condição de sucesso não for atendida, o fluxo de trabalho será codificado para entrar no estágio do cronômetro. 

  5. Se a condição de sucesso for atendida, uma função Lambda modifica as tabelas de rotas.

  6. O fluxo de trabalho do Step Functions termina.

Ferramentas

  • AWS CloudFormationajuda você a configurar AWS recursos, provisioná-los de forma rápida e consistente e gerenciá-los durante todo o ciclo de vida em Contas da AWS e. Regiões da AWS 

  • O Amazon CloudWatch Logs ajuda você a centralizar os registros de todos os seus sistemas e aplicativos, Serviços da AWS para que você possa monitorá-los e arquivá-los com segurança.

  • AWS Identity and Access Management(IAM) ajuda você a gerenciar com segurança o acesso aos seus AWS recursos controlando quem está autenticado e autorizado a usá-los.

  • O Kiro é uma ferramenta de desenvolvimento de IA agente que ajuda você a criar aplicativos prontos para produção por meio do desenvolvimento orientado por especificações. 

  • O AWS Lambda é um serviço de computação que ajuda a executar código sem exigir provisionamento ou gerenciamento de servidores. Ele executa o código somente quando necessário e dimensiona automaticamente, assim, você paga apenas pelo tempo de computação usado.

  • AWS Step Functionsé um serviço de orquestração sem servidor que ajuda você a combinar AWS Lambda funções e outras Serviços da AWS para criar aplicativos essenciais para os negócios.  

Épicos

TarefaDescriptionHabilidades necessárias

Preenchendo espaços reservados imediatos com detalhes específicos

  1. Atualize o prompt a seguir substituindo os nomes Regiões da AWS e dos buckets:

    - Active region: ACTIVE_REGION - Passive region: PASSIVE_REGION - S3_BUCKET : my-lambda-packages-bucket - STACK_NAME : transit-gateway-peering - All Lambda functions use two boto3 EC2 clients at module level (one per region), each with signature_version v4 and retries max_attempts=1 mode=standard. - Print all API responses for CloudWatch logging.
  2. Salve isso como um arquivo markdown.

  3. Adicione esse arquivo markdown ao seu projeto Kiro para contextualizar.

nota

Como alternativa, você pode adicionar isso como um prompt embutido que faz referência às variáveis acima sem anexar o arquivo para contextualizar.

AWS geral, administrador de rede

Crie uma função Lambda que crie os anexos de emparelhamento.

  1. Em seu projeto Kiro, insira o seguinte aviso:

    Write a Python Lambda that creates a transit gateway peering attachment from active region to passive region. Both of these regions will be read as environment variables of the Lambda function. Use two boto3 EC2 clients at the module level, one per Region. The handler should describe available transit gateways in both Regions. Then check if a peering attachment already exists on the active side by filtering describe_transit_gateway_attachments for resource-type "peering" and states: available, initiatingRequest, modifying, pendingAcceptance, pending, rejected, and rejecting. Only if zero results, create the peering attachment with tags for both Transit Gateway IDs, then wait 60 seconds (AWS needs this before the passive side can accept), then call accept_transit_gateway_peering_attachment on the passive client. Print all API responses.
  2. Salve e nomeie o arquivo como peer-transit-gateway.py.

AWS geral, administrador de rede, engenharia rápida

Crie uma função Lambda que pesquise o status do anexo emparelhado.

  1. Em seu projeto Kiro, insira o seguinte aviso:

    Using the shared context above, write a Python Lambda that polls peering attachment status. Describe available transit gateways in both regions, then call describe_transit_gateway_attachments on the active client filtered by the active Transit Gateway ID only (no resource-type filter). Return exactly `{'status': status}` where status is the State field from the first attachment. Do not return statusCode or body — the Step Function Choice state reads `$.Payload.status` and compares to "available".
  2. Salve e nomeie o arquivo como get-transit-gateway-peering-status.py.

AWS geral, administrador de rede, engenharia rápida

Crie uma função Lambda que adicione rotas estáticas às duas regiões.

  1. Em seu projeto Kiro, insira o seguinte aviso:

    Using the shared context, write a Python Lambda that adds static routes to both regions' TGW route tables. Describe available transit gateways in both Regions, extract each transit gateway's AssociationDefaultRouteTableId. Discover routable VPCs by filtering describe_vpcs with tag `addtotransitgateway=true` in each region, collecting their CIDRs. Get the peering attachment ID from the active side by filtering on the active route table ID. For each passive CIDR, search the active route table using `route-search.exact-match` — only create the route if none found. For each active CIDR, search the passive route table using `route-search.supernet-of-match` (not exact-match — passive side may have supernet routes) — only create if none found. Both sides use the same peering attachment ID.
  2. Salve e nomeie esse arquivo comomodify-transit-gateway-routes.py.

AWS geral, administrador de rede

Crie o CloudFormation modelo.

  1. Insira o seguinte prompt de orquestração, que cria um CloudFormation modelo:

    Write a CloudFormation JSON template that deploys: three Lambda functions (peer-transit-gateway with 600s timeout, get-transit-gateway-peering-status with 30s timeout, modify-transit-gateway-routes with 600s timeout), Lambda code from an S3 bucket parameter (no default value — user must supply the bucket name at deploy time), a Step Functions state machine, and CloudWatch log groups with 90-day retention. The state machine flow is: 1. Invoke peer-transit-gateway 2. Wait 20 seconds (attachment needs time after the Lambda's internal 20s sleep + acceptance) 3. Invoke get-transit-gateway-peering-status 4. Choice: if `$.Payload.status` equals "available" → go to step 5, otherwise loop back to step 2 5. Invoke modify-transit-gateway-routes → End Use `Fn::Sub` with Lambda ARN references like `${PeerTransitGateways.Arn}` in the DefinitionString. The polling loop has no max retry — it loops until "available" (typically 3-5 minutes total).
  2. Salve e nomeie o arquivo como transit-gateway-peering.json.

AWS DevOps, AWS geral, engenharia rápida
TarefaDescriptionHabilidades necessárias

Implante a CloudFormation pilha usando prompts.

Insira o seguinte prompt:

Using the outputs from Prompts 1-4, package and deploy the full stack. Steps: 1. For each of the three Python files from Prompts 1-3, create a zip named after the file (e.g. peer-transit-gateway.zip that contains peer-transit-gateway.py). 2. Upload all three zips to S3_BUCKET. 3. Deploy the CloudFormation template from Prompt 4 to ACTIVE_REGION with S3BucketName=S3_BUCKET and CAPABILITY_NAMED_IAM. 4. Initiate the Step Function from the deployed stack. Zip file names must match the S3Key values in the template exactly.
AWS DevOps, administrador de nuvem, AWS geral, engenharia rápida

Valide a implantação.

  1. Monitore o fluxo de trabalho do Step Functions para uma conclusão bem-sucedida. Para obter instruções, consulte a documentação do Step Functions.

  2. Verifique se o status de emparelhamento de anexos do Transit Gateway está disponível. Para obter instruções, consulte a documentação do Transit Gateway.

AWS geral

Recursos relacionados