View a markdown version of this page

Automatisieren Sie die Einrichtung von regionsübergreifendem Peering mit AWS Transit Gateway - AWS Prescriptive Guidance

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Automatisieren Sie die Einrichtung von regionsübergreifendem Peering mit AWS Transit Gateway

Ram Kandaswamy, Amazon Web Services

Zusammenfassung

AWS Transit Gatewayverbindet virtuelle private Clouds (VPCs) und lokale Netzwerke über einen zentralen Hub. Der Transit Gateway Gateway-Verkehr durchquert nicht das öffentliche Internet, wodurch Bedrohungsvektoren wie häufige Exploits und verteilte Denial-of-Service (DDoS) -Angriffe reduziert werden.

Wenn Sie zwischen zwei oder mehr Personen kommunizieren müssen AWS-Regionen, können Sie regionsübergreifendes Transit Gateway Gateway-Peering verwenden, um Peering-Verbindungen zwischen Transit-Gateways in verschiedenen Regionen herzustellen. Die manuelle Konfiguration von regionsübergreifendem Peering mit Transit Gateway kann jedoch komplex und zeitaufwändig sein. Dieses Muster bietet Anleitungen zur Verwendung von Infrastructure as Code (IaC) zur Einrichtung von Peering. Sie können diesen Ansatz verwenden, wenn Sie wiederholt mehrere Regionen konfigurieren müssen und AWS-Konten wenn Sie eine Organisation mit mehreren Regionen einrichten möchten.

Dieses Muster richtet einen AWS CloudFormationStapel ein, der einen AWS Step Functions Workflow, AWS Lambda Funktionen, AWS Identity and Access Management (IAM) -Rollen und Protokollgruppen in Amazon CloudWatch Logs umfasst. Anschließend führen Sie den Step Functions Functions-Workflow aus, um die regionsübergreifende Peering-Verbindung für Ihre Transit-Gateways herzustellen.

Voraussetzungen und Einschränkungen

Voraussetzungen

  • Ein aktiver. AWS-Konto

  • Eine IDE, die über Funktionen zur Codegenerierung verfügt, wie Kiro.

  • Ein Amazon Simple Storage Service (Amazon S3) -Bucket und Berechtigungen zum Hochladen von Objekten in diesen Bucket.

  • Transit-Gateways, die in den anfragenden und akzeptierenden Regionen eingerichtet wurden.

  • VPCs in den anfragenden und akzeptierenden Regionen erstellt. Kennzeichnen Sie das VPCs mit einem addToTransitGateway Schlüssel mit dem Werttrue.

  • Sicherheitsgruppen, die VPCs gemäß Ihren Anforderungen für Sie konfiguriert wurden.

  • Netzwerkzugriffskontrolllisten (ACLs), die für Sie VPCs gemäß Ihren Anforderungen konfiguriert wurden.

Einschränkungen

  • Nur einige AWS-Regionen unterstützen regionsübergreifendes Peering. Eine vollständige Liste der Regionen, die regionenübergreifendes Peering unterstützen, finden Sie unter. AWS Transit Gateway FAQs

Architektur

Der in diesem Muster beschriebene agentische KI-Entwicklungsansatz umfasst die folgenden Schritte:

  1. Definieren Sie die Automatisierungsaufforderung — Kiro erhält eine Aufforderung in natürlicher Sprache, in der die Peering-Anforderungen detailliert beschrieben werden.

  2. Automatisierungsskript generieren — Kiro generiert die CloudFormation und Lambda-Skripte auf der Grundlage der bereitgestellten Eingabeaufforderung.

  3. Stellen Sie den Stack bereit — Kiro verwendet ihn CloudFormation , um die erforderlichen Ressourcen bereitzustellen.

  4. Peering einrichten — Kiro führt den Step Functions Functions-Workflow aus, der Lambda-Funktionen aufruft, um Peering-Verbindungen herzustellen und Routentabellen zu ändern.

Das folgende Diagramm zeigt den Arbeitsablauf von Step Functions:

Step Functions Functions-Workflow zum Aufrufen der Lambda-Funktion zur Änderung von Routentabellen für Transit-Gateway-Peering.

Der Workflow umfasst die folgenden Schritte:

  1. Der Step Functions Functions-Workflow ruft die Lambda-Funktion für das Transit Gateway Gateway-Peering auf. 

  2. Der Workflow wartet eine Minute.

  3. Der Workflow ruft den Peering-Status ab und sendet ihn an den Bedingungsblock. Der Block ist für das Looping verantwortlich. 

  4. Wenn die Erfolgsbedingung nicht erfüllt ist, ist der Workflow so codiert, dass er in die Timer-Phase übergeht. 

  5. Wenn die Erfolgsbedingung erfüllt ist, ändert eine Lambda-Funktion die Routentabellen.

  6. Der Step Functions Functions-Workflow wird beendet.

Tools

  • AWS CloudFormationhilft Ihnen dabei, AWS Ressourcen einzurichten, sie schnell und konsistent bereitzustellen und sie während ihres gesamten Lebenszyklus über AWS-Konten und zu verwalten AWS-Regionen. 

  • Amazon CloudWatch Logs hilft Ihnen dabei, die Protokolle all Ihrer Systeme und Anwendungen zu zentralisieren, AWS-Services sodass Sie sie überwachen und sicher archivieren können.

  • AWS Identity and Access Management(IAM) hilft Ihnen dabei, den Zugriff auf Ihre AWS Ressourcen sicher zu verwalten, indem kontrolliert wird, wer authentifiziert und autorisiert ist, diese zu verwenden.

  • Kiro ist ein agentisches KI-Entwicklungstool, mit dem Sie durch spezifikationsorientierte Entwicklung produktionsreife Anwendungen erstellen können. 

  • AWS Lambda ist ein Datenverarbeitungsservice, mit dem Sie Code ausführen können, ohne dass Sie Server bereitstellen oder verwalten müssen. Es führt Ihren Code nur bei Bedarf aus und skaliert automatisch, sodass Sie nur für die tatsächlich genutzte Rechenzeit zahlen.

  • AWS Step Functionsist ein serverloser Orchestrierungsservice, mit dem Sie AWS Lambda Funktionen und andere Funktionen kombinieren können, um geschäftskritische AWS-Services Anwendungen zu erstellen.  

Epen

AufgabeDescriptionErforderliche Fähigkeiten

Platzhalter für Eingabeaufforderungen mit spezifischen Details füllen

  1. Aktualisieren Sie die folgende Eingabeaufforderung, indem Sie die Bucketnamen AWS-Regionen und ersetzen:

    - 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. Speichern Sie dies als Markdown-Datei.

  3. Fügen Sie diese Markdown-Datei Ihrem Kiro-Projekt als Kontext hinzu.

Anmerkung

Alternativ können Sie dies als Inline-Eingabeaufforderung hinzufügen, die auf die obigen Variablen verweist, ohne die Datei für den Kontext anzuhängen.

Allgemein AWS, Netzwerkadministrator

Erstellen Sie eine Lambda-Funktion, die die Peering-Anhänge erstellt.

  1. Geben Sie in Ihrem Kiro-Projekt die folgende Aufforderung ein:

    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. Speichern Sie die Datei unter dem Namen peer-transit-gateway.py.

Allgemeines AWS, Netzwerkadministrator, Prompt Engineering

Erstellen Sie eine Lambda-Funktion, die den Status des Peering-Anhangs abfragt.

  1. Geben Sie in Ihrem Kiro-Projekt die folgende Aufforderung ein:

    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. Speichern Sie die Datei unter dem Namen get-transit-gateway-peering-status.py.

Allgemeines AWS, Netzwerkadministrator, Prompt Engineering

Erstellen Sie eine Lambda-Funktion, die statischen Routen zu beiden Regionen hinzufügt.

  1. Geben Sie in Ihrem Kiro-Projekt die folgende Aufforderung ein:

    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. Speichern und benennen Sie diese Datei alsmodify-transit-gateway-routes.py.

Allgemein AWS, Netzwerkadministrator

Erstellen Sie die CloudFormation Vorlage.

  1. Geben Sie die folgende Orchestrierungsaufforderung ein, wodurch eine CloudFormation Vorlage erstellt wird:

    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. Speichern und benennen Sie die Dateitransit-gateway-peering.json.

AWS DevOps, Allgemeines AWS, Prompt Engineering
AufgabeDescriptionErforderliche Fähigkeiten

Stellen Sie den CloudFormation Stack mithilfe von Eingabeaufforderungen bereit.

Geben Sie die folgende Aufforderung ein:

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, Cloud-Administrator, Allgemeines AWS, Prompt Engineering

Bereitstellung validieren.

  1. Überwachen Sie den Step Functions Functions-Workflow auf erfolgreichen Abschluss. Anweisungen finden Sie in der Dokumentation zu Step Functions.

  2. Stellen Sie sicher, dass der Transit Gateway Gateway-Peering-Status für Attachments verfügbar ist. Anweisungen finden Sie in der Transit Gateway Gateway-Dokumentation.

Allgemeines AWS

Zugehörige Ressourcen