自分の備忘です。
取得したものをそのまま戻したいなんて要望、普通はないんじゃないかな?
#Route53をバックアップしておきたい
んですが、、、
##AWS-CLIを使ってホストゾーンとレコードセットの一覧取得
は、出来るんです。
ゾーンリスト取得
aws route53 list-hosted-zones --profile PROFILENAME --output json
ゾーンのレコードセット取得
aws route53 list-resource-record-sets --hosted-zone-id ${zoneId} --output json
##しかし、取得したjsonをそのままインポートすることはできない
なんかないかなーってDoc読んでいたら、別のAWSアカウントへのホストゾーンの移行という記事を見つけた。
AWSさんとしては、json取得後手で加工して戻してとな・・
うーん。
開発中に結構Route53に対して破壊的なことやるから何かあったら手動ってのは面倒だし、焦ってる時の手作業は嫌だなぁ
##ということで作った
スクリプト
- AWS-CLIは導入済みの前提(そりゃそうだ)
- スクリプト内でjq使っているんでjqも必須
- sudo apt-get install jq
- 実行したらzoneidでフォルダ作成→フォルダ内にレコードセットのjson作成(.txtも作るけど使わないっすわ)
- 個人的な趣により、zoneid毎にフォルダ作るようにしてある
- impoprtするときはAWS CLI使ってjsonをそのままインポートすればよい
- コピー目的で別のホストゾーンに移行するときは中身のドメイン名書き換えて
- Docsの作業内容を簡単にするためのツールなんで、Docsの通りに戻せるようにした
インポート
aws route53 change-resource-record-sets --hosted-zone-id id-of-new-hosted-zone --change-batch file://path-to-file-that-contains-records
jq・・・扱い方本気で忘れてる。それにshell触るの久しぶりすぎてきたないなぁ
--profileにも対応していないから時間作って対応しておかないと。
##検証環境
バックアップスクリプト実行環境
- Linux(Ubuntu18.04LTS)
- aws cli
- aws-cli/2.0.16 Python/3.7.3 Linux/5.3.0-53-generic botocore/2.0.0dev20
- jq
- aws cli
- 対象のDNS
- AWS(Route53)
- パブリップホストゾーン
- プライベートホストゾーン
- AWS(Route53)
##参考