Blog
Wie Sie Zonendateien in die Cloud migrieren

Wenn Sie Domainnamen in die Cloud migrieren, müssen Sie auch den Inhalt Ihrer Nameserver migrieren. In diesem Blog stelle ich Ihnen ein kleines Dienstprogramm vor, mit dem Sie genau das tun können!
Alle Cloud-Anbieter fungieren als Domain-Namen-Registrar. Wenn Sie alle Ihre Domains zu Ihrem Cloud-Anbieter übertragen, haben Sie zwei große Vorteile: Erstens erhalten Sie alle Kosten auf eine einzige Rechnung und zweitens können Sie alle Ihre verwalteten Zonen über einen Code verwalten.
Wenn Sie jedoch Hunderte von Domänennamen zu übertragen haben, wird es wirklich schwierig, dies ohne Fehler zu erledigen. Da die Registrierung von Domänennamen für die Verfügbarkeit Ihrer Website unerlässlich ist, möchten Sie einen automatisierten Prozess.
Zu diesem Zweck haben wir das Tool zonefile-migrate erstellt. Das Tool analysiert eine Zonendatei und erzeugt entweder eine AWS Cloudformation oder eine Terraform-Vorlage.
Auf diese Weise wird die Migration eines Domainnamens zu einem zuverlässigen Prozess: Sie fordern die Zonendateien für Ihre Domains bei Ihrem Registrar an, führen die Migration aus und wenden die Vorlage an. So einfach ist das.
Beispiel - Cloudformation
Im Quellcode finden Sie ein Beispiel. Um es auszuprobieren, geben Sie ein:
$ git clone https://gitlab.com/binxio/zonefile-migrate.git
$ cd zonefile-migrate/example
$ zonefile-migrate to-cloudformation --sceptre-group config/dns ./zones ./templates/dns
INFO: reading zonefile zones/asample.org
INFO: reading zonefile zones/land-5.com
Um alle verwalteten Zonen in AWS bereitzustellen, geben Sie ein:
$ sceptre --var aws_profile=$AWS_PROFILE launch -y dns
[2022-05-14 14:58:23] - dns/zone-land-5-com - Launching Stack
[2022-05-14 14:58:23] - dns/zone-example-org - Launching Stack
[2022-05-14 14:58:23] - dns/zone-land-5-com - Stack is in the PENDING state
[2022-05-14 14:58:23] - dns/zone-land-5-com - Creating Stack
[2022-05-14 14:58:23] - dns/zone-asample-org - Stack is in the PENDING state
[2022-05-14 14:58:23] - dns/zone-asample-org - Creating Stack
[2022-05-14 14:58:24] - dns/zone-asample-org binxio-dns-zone-asample-org AWS::CloudFormation::Stack CREATE_IN_PROGRESS User Initiated
[2022-05-14 14:58:24] - dns/zone-land-5-com binxio-dns-zone-land-5-com AWS::CloudFormation::Stack CREATE_IN_PROGRESS User Initiated
...
Beispiel - Terraform
$ git clone https://gitlab.com/binxio/zonefile-migrate.git
$ cd zonefile-migrate/example
$ zonefile-migrate to-terraform --provider google ./zones ./templates/dns
INFO: reading zonefile zones/asample.org
INFO: reading zonefile zones/land-5.com
Um alle verwalteten Zonen auf Google Cloud Platform bereitzustellen, geben Sie ein:
$ terraform init
$ export GOOGLE_PROJECT=$(gcloud config get-value core/project)
$ terraform apply -auto-approve
...
Terraform will perform the following actions:
# module.asample_org.google_dns_managed_zone.managed_zone will be created
+ resource "google_dns_managed_zone" "managed_zone" {
+ description = "Managed by Terraform"
+ dns_name = "asample.org."
+ force_destroy = false
+ id = (known after apply)
+ name = "asample-org"
+ name_servers = (known after apply)
+ project = (known after apply)
+ visibility = "public"
}
...
Plan: 49 to add, 0 to change, 0 to destroy.
module.land-5_com.google_dns_managed_zone.managed_zone: Creating...
module.asample_org.google_dns_managed_zone.managed_zone: Creating...
...
Das war's. So einfach ist das!
Installation
Um das Dienstprogramm zu installieren, geben Sie ein:
pip install zonefile-migrate
Fazit
Indem Sie Zonendateien verwenden, um entweder eine AWS Cloudformation oder eine Terraform-Vorlage minimieren Sie das Fehlerpotenzial, wenn eine große Anzahl von Domainnamen in die Cloud überträgt. Als zusätzlichen Bonus haben Sie die Grundlage für , um Ihre Zonen als Code zu pflegen und CI/CD-Pipelines für die Bereitstellung von Änderungen zu erstellen.
Bild von Gordon Johnson von Pixabay
Verfasst von

Mark van Holsteijn
Mark van Holsteijn is a senior software systems architect at Xebia Cloud-native solutions. He is passionate about removing waste in the software delivery process and keeping things clear and simple.
Unsere Ideen
Weitere Blogs
Contact



