1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

More than 3 years have passed since last update.

Route53のバックアップ

Last updated at Posted at 2020-05-27

自分の備忘です。
取得したものをそのまま戻したいなんて要望、普通はないんじゃないかな?

#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
  • 対象のDNS
    • AWS(Route53)
      • パブリップホストゾーン
      • プライベートホストゾーン

##参考

1
1
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
1

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?