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.
Massenmigrieren von DNS-Einträgen in eine private gehostete Zone von Amazon Route 53
Erstellt von Ram Kandaswamy (AWS)
Umgebung: Produktion | Technologien: Netzwerke CloudNative; DevOps; Infrastruktur | AWS-Dienste: AWS Cloud9; Amazon Route 53; Amazon S3 |
Übersicht
Netzwerktechniker und Cloud-Administratoren benötigen eine effiziente und einfache Möglichkeit, DNS-Einträge (Domain Name System) zu privaten Hosting-Zonen in Amazon Route 53 hinzuzufügen. Das manuelle Kopieren von Einträgen aus einem Microsoft Excel-Arbeitsblatt an die entsprechenden Stellen in der Route 53 53-Konsole ist mühsam und fehleranfällig. Dieses Muster beschreibt einen automatisierten Ansatz, der den Zeit- und Arbeitsaufwand für das Hinzufügen mehrerer Datensätze reduziert. Es bietet auch eine wiederholbare Reihe von Schritten für die Erstellung mehrerer gehosteter Zonen.
Dieses Muster verwendet die integrierte Entwicklungsumgebung (IDE) von AWS Cloud9 für Entwicklung und Tests und Amazon Simple Storage Service (Amazon S3) zum Speichern von Datensätzen. Um effizient mit Daten zu arbeiten, verwendet das Muster aufgrund seiner Einfachheit und der Fähigkeit, ein Python-Wörterbuch (dict
Datentyp) zu unterstützen, das JSON-Format.
Hinweis: Wenn Sie eine Zonendatei von Ihrem System aus generieren können, sollten Sie stattdessen die Route 53 53-Importfunktion verwenden.
Voraussetzungen und Einschränkungen
Voraussetzungen
Ein Excel-Arbeitsblatt, das private, gehostete Zoneneinträge enthält
Vertrautheit mit verschiedenen Typen von DNS-Einträgen wie A-Eintrag, NAPTR-Datensatz (Name Authority Pointer) und SRV-Eintrag (siehe Unterstützte DNS-Eintragstypen)
Vertrautheit mit der Sprache Python und ihren Bibliotheken
Einschränkungen
Das Muster deckt nicht alle Anwendungsszenarien umfassend ab. Beispielsweise verwendet der Aufruf change_resource_record_sets
nicht alle verfügbaren Eigenschaften der API. Im Excel-Arbeitsblatt wird davon ausgegangen, dass der Wert in jeder Zeile eindeutig ist. Es wird erwartet, dass mehrere Werte für jeden vollqualifizierten Domänennamen (FQDN) in derselben Zeile erscheinen. Wenn das nicht der Fall ist, sollten Sie den in diesem Muster bereitgestellten Code ändern, um die erforderliche Verkettung durchzuführen.
Das Muster verwendet das AWS-SDK SDK for Python (Boto3), um den Route 53-Service direkt aufzurufen. Sie können den Code so erweitern, dass er einen CloudFormation AWS-Wrapper für die
update_stack
Befehlecreate_stack
und verwendet und die JSON-Werte zum Auffüllen von Vorlagenressourcen verwenden.
Architektur
Technologie-Stack
Route 53 private gehostete Zonen für die Weiterleitung des Datenverkehrs
AWS Cloud9 IDE für Entwicklung und Test
Amazon S3 zum Speichern der JSON-Ausgabedatei
![Workflow für die Massenmigration von DNS-Einträgen in eine private gehostete Route 53 53-Zone.](images/pattern-img/a81c29ea-f0c5-4d4a-ba87-93111a0f1ee9/images/2ada844b-4147-4f9f-8883-d22605aa42d8.png)
Der Workflow besteht aus den folgenden Schritten, wie im vorherigen Diagramm dargestellt und im Abschnitt Epics beschrieben:
Laden Sie ein Excel-Arbeitsblatt mit den Datensatzinformationen in einen S3-Bucket hoch.
Erstellen Sie ein Python-Skript, das die Excel-Daten in das JSON-Format konvertiert, und führen Sie es aus.
Lesen Sie die Datensätze aus dem S3-Bucket und bereinigen Sie die Daten.
Erstellen Sie Datensätze in Ihrer privaten gehosteten Zone.
Tools
Route 53 — Amazon Route 53 ist ein hochverfügbarer und skalierbarer DNS-Webservice, der die Domainregistrierung, das DNS-Routing und die Zustandsprüfung übernimmt.
AWS Cloud9 — AWS Cloud9 ist eine IDE, die umfangreiche Funktionen zur Codebearbeitung mit Unterstützung für mehrere Programmiersprachen und Runtime-Debugger sowie einem integrierten Terminal bietet. Es enthält eine Sammlung von Tools, die Sie verwenden, um Software zu codieren, zu erstellen, auszuführen, zu testen und zu debuggen, und Ihnen hilft, Software in der Cloud zu veröffentlichen.
Amazon S3 — Amazon Simple Storage Service (Amazon S3) ist ein Objektspeicherservice. Mit Amazon S3 können Sie jederzeit beliebige Mengen von Daten von überall aus im Internet speichern und aufrufen.
Epen
Aufgabe | Beschreibung | Erforderliche Fähigkeiten | ||||||||
---|---|---|---|---|---|---|---|---|---|---|
Erstellen Sie eine Excel-Datei für Ihre Unterlagen. | Verwenden Sie die Datensätze, die Sie aus Ihrem aktuellen System exportiert haben, um ein Excel-Arbeitsblatt zu erstellen, das die erforderlichen Spalten für einen Datensatz enthält, z. B. den vollqualifizierten Domänennamen (FQDN), den Datensatztyp, die Gültigkeitsdauer (TTL) und den Wert. Bei NAPTR- und SRV-Datensätzen ist der Wert eine Kombination aus mehreren Eigenschaften. Verwenden Sie daher die
| Dateningenieur, Excel-Kenntnisse | ||||||||
Überprüfen Sie die Arbeitsumgebung. | Erstellen Sie in der AWS Cloud9 Cloud9-IDE eine Python-Datei, um das Excel-Eingabearbeitsblatt in das JSON-Format zu konvertieren. (Anstelle von AWS Cloud9 können Sie auch ein SageMaker Amazon-Notebook verwenden, um mit Python-Code zu arbeiten.) Stellen Sie sicher, dass die von Ihnen verwendete Python-Version Version 3.7 oder höher ist.
Installieren Sie das Pandas-Paket.
| Allgemeines AWS | ||||||||
Konvertiert die Excel-Arbeitsblattdaten in JSON. | Erstellen Sie eine Python-Datei, die den folgenden Code für die Konvertierung von Excel nach JSON enthält.
wobei | Dateningenieur, Python-Kenntnisse | ||||||||
Laden Sie die JSON-Datei in einen S3-Bucket hoch. | Laden Sie die Datei | App-Developer |
Aufgabe | Beschreibung | Erforderliche Fähigkeiten |
---|---|---|
Erstellen Sie eine private gehostete Zone. | Verwenden Sie die API create_hosted_zone
Sie können auch ein IaC-Tool (Infrastructure as Code) wie AWS verwenden, CloudFormation um diese Schritte durch eine Vorlage zu ersetzen, die einen Stack mit den entsprechenden Ressourcen und Eigenschaften erstellt. | Cloud-Architekt, Netzwerkadministrator, Python-Kenntnisse |
Rufen Sie Details als Wörterbuch von Amazon S3 ab. | Verwenden Sie den folgenden Code, um aus dem S3-Bucket zu lesen und die JSON-Werte als Python-Wörterbuch abzurufen.
wo | App-Entwickler, Python-Kenntnisse |
Saubere Datenwerte für Leerzeichen und Unicode-Zeichen. | Verwenden Sie als Sicherheitsmaßnahme zur Sicherstellung der Richtigkeit der Daten den folgenden Code, um eine Operation mit den Werten in durchzuführen
| App-Entwickler, Python-Kenntnisse |
Fügen Sie Datensätze ein. | Verwenden Sie den folgenden Code als Teil der vorherigen
Wo | App-Entwickler, Python-Kenntnisse |
Zugehörige Ressourcen
Referenzen
Erstellen von Datensätzen durch Import einer Zonendatei (Amazon Route 53 53-Dokumentation)
Methode create_hosted_zone
(Boto3-Dokumentation) Methode change_resource_record_sets
(Boto3-Dokumentation)
Tutorials und Videos
Das Python-Tutorial
(Python-Dokumentation) DNS-Design mit Amazon Route 53
(YouTube Video, AWS Online Tech Talks)