Terjemahan disediakan oleh mesin penerjemah. Jika konten terjemahan yang diberikan bertentangan dengan versi bahasa Inggris aslinya, utamakan versi bahasa Inggris.
Migrasikan catatan DNS secara massal ke zona host pribadi Amazon Route 53
Ram Kandaswamy, Amazon Web Services
Ringkasan
Pola ini mengotomatiskan migrasi massal catatan DNS ke zona yang dihosting Amazon Route 53. Ini menggunakan skrip Python dengan AWS SDK for Python (Boto3) untuk membaca data rekaman dari file JSON yang disimpan di Amazon Simple Storage Service (Amazon S3) dan membuat catatan secara terprogram dengan menggunakan Route 53 API.
Jika sistem sumber Anda mengekspor file zona BIND standar, fitur impor asli Route 53 atau cli53
Gunakan pola ini saat Anda perlu memigrasikan sejumlah besar catatan DNS dari sistem yang ada ke zona yang dihosting Route 53 tanpa membuat setiap rekaman secara manual melalui konsol.
Prasyarat dan batasan
Prasyarat
Akun AWS yang aktif
Lembar kerja Excel yang berisi catatan zona yang dihosting dengan kolom untuk nama domain yang memenuhi syarat penuh (FQDN), jenis rekaman, Waktu untuk Hidup (TTL), dan nilai
Pustaka Python panda diinstal ()
pip3 install pandasKeakraban dengan bahasa Python dan perpustakaannya
Batasan
Pola ini tidak menggunakan semua properti panggilan
change_resource_record_setsAPI yang tersedia. Perpanjang kode sesuai kebutuhan untuk kasus penggunaan Anda.Di lembar kerja Excel, nilai di setiap baris diasumsikan unik. Beberapa nilai untuk setiap FQDN diharapkan muncul di baris yang sama. Jika bukan itu masalahnya, ubah kode untuk menggabungkan beberapa nilai untuk FQDN yang sama.
Pola ini memanggil Route 53 API secara langsung dengan menggunakan Boto3. Anda dapat meningkatkan kode untuk menggunakan AWS CloudFormation pembungkus untuk
update_stackperintahcreate_stackdan dan menggunakan nilai JSON untuk mengisi sumber daya template.Jika sistem sumber Anda dapat mengekspor catatan dalam format file zona BIND pertimbangkan untuk menggunakan fitur impor Route 53 sebagai gantinya.
Beberapa AWS layanan tidak tersedia di semua Wilayah AWS. Untuk ketersediaan Wilayah, lihat AWSlayanan menurut Wilayah
. Untuk titik akhir tertentu, lihat halaman titik akhir dan kuota Layanan, dan pilih tautan untuk layanan.
Arsitektur

Pengguna mengunggah lembar kerja Excel dengan data rekaman DNS ke bucket Amazon S3.
Skrip Python yang berjalan secara lokal (atau dalam IDE seperti Kiro) membaca file JSON dari bucket Amazon S3 dengan menggunakan Boto3.
Skrip memproses catatan dan memanggil operasi
change_resource_record_setsAPI Route 53 untuk membuat catatan di zona yang dihosting.
Alat
Layanan AWS
Alat lainnya
Kiro — IDE dengan kemampuan AI agen, digunakan untuk mengembangkan dan menjalankan skrip migrasi Python. Untuk informasi lebih lanjut, lihat Kiro
. panda — Pustaka analisis data Python, digunakan untuk mengonversi lembar kerja Excel ke format JSON.
Praktik terbaik
Uji dengan subset kecil dari 5-10 catatan sebelum Anda menjalankan skrip terhadap semua catatan untuk memverifikasi pemformatan data dan pembuatan rekaman yang benar.
Gunakan
UPSERTtindakan alih-alihCREATE.UPSERTTindakan membuat catatan jika tidak ada atau memperbaruinya jika ada. Ini membuat skrip idempoten dan aman untuk dijalankan kembali.Batch perubahan Anda agar tetap berada dalam batas
ChangeResourceRecordSetspermintaan. Saat Anda menggunakanUPSERTtindakan, setiapResourceRecordelemen dihitung dua kali menuju maksimum 1.000 elemen.Validasi data sebelum penyisipan. Verifikasi bahwa FQDNS diakhiri dengan periode (
.), bahwa nilai TTL adalah bilangan bulat positif, dan bahwa jenis rekaman cocok dengan jenis catatan DNS yang didukung.Cadangkan catatan yang ada
sebelum Anda membuat perubahan massal. Ekspor catatan zona yang dihosting saat ini dengan menggunakan list_resource_record_setsuntuk memberikan titik rollback.Terapkan logika coba lagi dengan backoff eksponensial untuk menangani batas laju API Route 53. Untuk informasi selengkapnya, lihat Error retries dan exponential backoff di. AWS
Ikuti prinsip hak istimewa terkecil dan berikan izin minimum yang diperlukan untuk melakukan tugas. Untuk informasi selengkapnya, lihat Memberikan hak istimewa terkecil dan praktik terbaik Keamanan dalam dokumentasi AWS Identity and Access Management (IAM).
Epik
| Tugas | Deskripsi | Keterampilan yang dibutuhkan | ||||||||
|---|---|---|---|---|---|---|---|---|---|---|
Buat file Excel untuk catatan Anda. |
Contoh baris:
| Insinyur data | ||||||||
Konversi data lembar kerja Excel ke JSON. |
| Insinyur data, pengembang Python | ||||||||
Unggah file JSON ke bucket Amazon S3. |
| Pengembang aplikasi |
| Tugas | Deskripsi | Keterampilan yang dibutuhkan |
|---|---|---|
Membuat zona yang di-hosting. |
Anda juga dapat menggunakan alat infrastruktur sebagai kode (IAc) seperti AWS CloudFormation untuk mengganti langkah-langkah ini dengan template yang membuat tumpukan dengan sumber daya dan properti yang sesuai. Untuk informasi selengkapnya, lihat AWS Route 53:: HostedZone dalam CloudFormation dokumentasi. | Arsitek cloud, administrator Jaringan, keterampilan Python |
Baca data JSON dari Amazon S3. |
| Pengembang aplikasi, pengembang Python |
Bersihkan nilai data dan masukkan catatan. |
| Pengembang aplikasi, keterampilan Python |
Pemecahan masalah
| Isu | Solusi |
|---|---|
| Tambahkan |
| Kesalahan ini terjadi ketika Anda mencoba membuat catatan yang sudah ada dengan menggunakan |
Kesalahan pelambatan (batas tarif terlampaui) | Anda telah melampaui lima permintaan API per detik. Terapkan backoff eksponensial dengan jitter. Untuk informasi selengkapnya, lihat Error retries dan exponential backoff di. AWS |
Rekaman tidak diselesaikan | Verifikasi bahwa VPC dikaitkan dengan zona yang dihosting dan resolusi DNS diaktifkan pada VPC. Keduanya |
| Data berisi spasi ( |
Sumber daya terkait
Referensi
Membuat catatan dengan mengimpor file zona (dokumentasi Route 53)
create_hosted_zone
(dokumentasi Boto3) Jenis catatan DNS yang didukung (dokumentasi Route 53)
Tutorial dan video
Desain DNS menggunakan Amazon Route 53
Informasi tambahan
Untuk catatan NAPTR dan SRV, Value bidang di lembar kerja Excel harus berisi semua komponen yang diperlukan digabungkan menjadi satu string. Gunakan fungsi CONCAT Excel untuk menggabungkan properti individual (urutan, preferensi, bendera, layanan, regexp, penggantian NAPTR; prioritas, berat, port, target untuk SRV) sebelum mengekspor ke JSON.
Jika migrasi Anda melibatkan lebih dari 1.000 catatan, pisahkan file JSON menjadi beberapa batch dan proses setiap batch secara terpisah agar tetap berada dalam batas API Route 53. Saat Anda menggunakan UPSERT tindakan, setiap ResourceRecord elemen dihitung dua kali menuju maksimum 1.000 elemen per permintaan. ChangeResourceRecordSets
Lampiran
Untuk mengakses konten tambahan yang terkait dengan dokumen ini, unzip file berikut: attachment.zip