View a markdown version of this page

Otomatiskan pengaturan peering antar wilayah dengan AWS Transit Gateway - AWS Prescriptive Guidance

Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.

Otomatiskan pengaturan peering antar wilayah dengan AWS Transit Gateway

Ram Kandaswamy, Amazon Web Services

Ringkasan

AWS Transit Gatewaymenghubungkan virtual private cloud (VPCs) dan jaringan lokal melalui hub pusat. Lalu lintas Transit Gateway tidak melintasi internet publik, yang mengurangi vektor ancaman, seperti eksploitasi umum dan serangan penolakan layanan (S) terdistribusi. DDo

Jika Anda perlu berkomunikasi antara dua atau lebih Wilayah AWS, Anda dapat menggunakan peering Gateway Transit Antar wilayah untuk membangun koneksi peering antara gateway transit di Wilayah yang berbeda. Namun, mengonfigurasi peering Antar wilayah secara manual dengan Transit Gateway bisa menjadi rumit dan memakan waktu. Pola ini memberikan panduan untuk menggunakan infrastruktur sebagai kode (IAc) untuk mengatur peering. Anda dapat menggunakan pendekatan ini jika Anda harus berulang kali mengonfigurasi beberapa Wilayah dan Akun AWS untuk pengaturan organisasi Multi-wilayah.

Pola ini menyiapkan AWS CloudFormationtumpukan yang menyertakan AWS Step Functions alur kerja, AWS Lambda fungsi, peran AWS Identity and Access Management (IAM), dan grup log di Amazon CloudWatch Logs. Anda kemudian menjalankan alur kerja Step Functions untuk membuat koneksi peering antar wilayah untuk gateway transit Anda.

Prasyarat dan batasan

Prasyarat

Batasan

  • Hanya beberapa yang Wilayah AWS mendukung peering antar wilayah. Untuk daftar lengkap Wilayah yang mendukung peering Antar wilayah, lihat. AWS Transit Gateway FAQs

Arsitektur

Pendekatan pengembangan AI agen yang dijelaskan dalam pola ini melibatkan langkah-langkah berikut:

  1. Tentukan prompt otomatisasi — Kiro menerima prompt bahasa alami yang merinci persyaratan peering.

  2. Hasilkan skrip otomatisasi - Kiro menghasilkan skrip CloudFormation dan Lambda berdasarkan prompt yang disediakan.

  3. Menyebarkan tumpukan - Kiro menggunakan CloudFormation untuk menyebarkan sumber daya yang diperlukan.

  4. Siapkan peering — Kiro menjalankan alur kerja Step Functions, yang memanggil fungsi Lambda untuk membuat koneksi peering dan memodifikasi tabel rute.

Diagram berikut menunjukkan alur kerja Step Functions:

Alur kerja Step Functions untuk memanggil fungsi Lambda untuk memodifikasi tabel rute untuk mengintip gateway transit.

Alur kerja berisi langkah-langkah berikut:

  1. Alur kerja Step Functions memanggil fungsi Lambda untuk mengintip Transit Gateway. 

  2. Alur kerja menunggu selama satu menit.

  3. Alur kerja mengambil status peering dan mengirimkannya ke blok kondisi. Blok bertanggung jawab atas perulangan. 

  4. Jika kondisi keberhasilan tidak terpenuhi, alur kerja dikodekan untuk memasuki tahap timer. 

  5. Jika kondisi keberhasilan terpenuhi, fungsi Lambda memodifikasi tabel rute.

  6. Alur kerja Step Functions berakhir.

Alat

  • AWS CloudFormationmembantu Anda menyiapkan AWS sumber daya, menyediakannya dengan cepat dan konsisten, dan mengelolanya sepanjang siklus hidupnya di seluruh Akun AWS dan. Wilayah AWS 

  • Amazon CloudWatch Logs membantu Anda memusatkan log dari semua sistem, aplikasi, Layanan AWS sehingga Anda dapat memantau dan mengarsipkannya dengan aman.

  • AWS Identity and Access Management(IAM) membantu Anda mengelola akses ke AWS sumber daya dengan aman dengan mengontrol siapa yang diautentikasi dan diberi wewenang untuk menggunakannya.

  • Kiro adalah alat pengembangan AI agen yang membantu Anda membangun aplikasi siap produksi melalui pengembangan berbasis spesifikasi. 

  • AWS Lambdaadalah layanan komputasi yang membantu Anda menjalankan kode tanpa perlu menyediakan atau mengelola server. Ini menjalankan kode Anda hanya bila diperlukan dan skala secara otomatis, jadi Anda hanya membayar untuk waktu komputasi yang Anda gunakan.

  • AWS Step Functionsadalah layanan orkestrasi tanpa server yang membantu Anda menggabungkan AWS Lambda fungsi dan lainnya Layanan AWS untuk membangun aplikasi bisnis yang penting.  

Epik

TugasDeskripsiKeterampilan yang dibutuhkan

Mengisi placeholder cepat dengan detail spesifik

  1. Perbarui prompt berikut dengan mengganti nama Wilayah AWS dan bucket:

    - 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. Simpan ini sebagai file penurunan harga.

  3. Tambahkan file penurunan harga ini ke proyek Kiro Anda untuk konteks.

catatan

Atau, Anda dapat menambahkan ini sebagai prompt sebaris yang mereferensikan variabel di atas tanpa melampirkan file untuk konteks.

AWS Umum, Administrator jaringan

Buat fungsi Lambda yang membuat lampiran peering.

  1. Dalam proyek Kiro Anda, masukkan prompt berikut:

    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. Simpan dan beri nama file peer-transit-gateway.py ini.

AWS Umum, Administrator jaringan, Rekayasa cepat

Buat fungsi Lambda yang melakukan polling status lampiran peering.

  1. Dalam proyek Kiro Anda, masukkan prompt berikut:

    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. Simpan dan beri nama file get-transit-gateway-peering-status.py ini.

AWS Umum, Administrator jaringan, Rekayasa cepat

Buat fungsi Lambda yang menambahkan rute statis ke kedua Wilayah.

  1. Dalam proyek Kiro Anda, masukkan prompt berikut:

    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. Simpan dan beri nama file ini sebagaimodify-transit-gateway-routes.py.

AWS Umum, Administrator jaringan

Buat CloudFormation template.

  1. Masukkan prompt orkestrasi berikut, yang membuat template: CloudFormation

    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. Simpan dan beri nama filetransit-gateway-peering.json.

AWS DevOps, AWS Umum, Rekayasa cepat
TugasDeskripsiKeterampilan yang dibutuhkan

Menyebarkan CloudFormation tumpukan dengan menggunakan prompt.

Masukkan prompt berikut:

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, Administrator Cloud, AWS Umum, Rekayasa cepat

Validasi penerapan.

  1. Pantau alur kerja Step Functions agar berhasil diselesaikan. Untuk petunjuk, lihat dokumentasi Step Functions.

  2. Verifikasi bahwa status peering lampiran Transit Gateway tersedia. Untuk petunjuk, lihat dokumentasi Transit Gateway.

AWS Umum

Sumber daya terkait