Skip to main content

Backup and restore Route53 zones, or transfer between AWS accounts.

Project description

Quickly backup and restore AWS Route53 DNS zones.

## Motivation

route53-transfer-ng started as a pull-request to [route53-transfer](https://github.com/cosmin/route53-transfer) and slowly turned into a port to boto3 of that software, and then finally a complete rewrite.

I intentionally avoided retaining compatibility with the original code. In fact, route53-transfer-ng does not use the CSV format anymore, as that wouldn’t easily allow support for all the Route53 routing policies and features.

## Installation

pip install route53-transfer-ng

## Usage

List all the hosted zones in the current AWS account (use the AWS_PROFILE environment variable to control which account is active):

route53-transfer-ng zones

Backup the example.com zone to a YAML file:

route53-transfer-ng dump –format yaml example.com example.com.yaml

Use STDOUT instead of a file:

route53-transfer-ng dump –format yaml example.com -

Restore the example.com zone from a YAML file:

route53-transfer-ng load –format yaml example.com example.com.yaml

To perform a dry run load, add the –dry-run option switch. The command will show the changes that would be made to the R53 zone without carrying out any operation.

route53-transfer-ng –dry-run load example.com example.com.yaml

It’s possible to use upsert operations when performing a route53 change operation, instead of the default DELETE + CREATE of recordsets. To enable this behaviour, supply the –use-upserts option.

route53-transfer-ng –dry-run –use-upserts load example.com example.com.yaml

Use - as filename to load from STDIN instead.

Migrate between accounts:

Use the AWS_PROFILE environment variable to change the AWS account to be used by route53-transfer-ng. Dump from one account, load into another.

AWS_PROFILE=aws_account1 route53-transfer dump example.com test.yaml AWS_PROFILE=aws_account2 route53-transfer load example.com test.yaml

## Credits

Thanks to Cosmin Sterejan for the original [route53-transfer](https://github.com/cosmin/route53-transfer) that I used for some time as-is and then as base and inspiration for this boto3 “ng” version.

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

route53_transfer_ng-1.0.9.tar.gz (18.5 kB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

route53_transfer_ng-1.0.9-py3-none-any.whl (14.3 kB view details)

Uploaded Python 3

File details

Details for the file route53_transfer_ng-1.0.9.tar.gz.

File metadata

  • Download URL: route53_transfer_ng-1.0.9.tar.gz
  • Upload date:
  • Size: 18.5 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/5.1.1 CPython/3.12.3

File hashes

Hashes for route53_transfer_ng-1.0.9.tar.gz
Algorithm Hash digest
SHA256 9536002ac5882b63211fad7077ef89ffee96eeeec3fe9817bad9beba7b1c7bf9
MD5 0622909d06286bd4f1d06a97d54f1045
BLAKE2b-256 4d4d3d36cb2b5124c69a76888404b61ecde61564a5dfb1f40b2ac0d82b73a920

See more details on using hashes here.

File details

Details for the file route53_transfer_ng-1.0.9-py3-none-any.whl.

File metadata

File hashes

Hashes for route53_transfer_ng-1.0.9-py3-none-any.whl
Algorithm Hash digest
SHA256 cbb2e2d2746f11189c1e111e4f08fffc4d688df20efde3c0cb6ec8664f6a8ae1
MD5 135ba3c54641a4b254de1f5463bbbfb3
BLAKE2b-256 ab2847014e77828044a6faa0a5d72c82197595040f6b97f192a1ee2e19f0daf5

See more details on using hashes here.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page