LoginSignup
8
3

More than 3 years have passed since last update.

Route53のバックアップを取得する

Last updated at Posted at 2020-03-20

はじめに

Route53のゾーン情報をバックアップする方法を説明します。
バックアップはBINDのゾーンファイル形式でテキスト出力されます。
Route53はゾーンファイルのインポートが可能なので、Route53を別アカウントに引っ越すことになった場合にも利用できそうです。

手段

cli53を利用します。
https://github.com/barnybug/cli53

検証環境

今回の記事を書くにあたり、以下の環境で確認を行いました。

  • バックアップスクリプト実行環境
    • Linux(CentOS8)
      • aws cli 2.0.4
      • cli53 0.8.17
  • 対象のDNS
    • AWS(Route53)
      • パブリックホストゾーン
      • プライベートホストゾーン

事前準備

AWS側の準備

IAMユーザの作成

Route53の情報を出力できるユーザを作成します。
今回は「AmazonRoute53ReadOnlyAccess」のポリシーをアタッチしました。

Linux(バックアップスクリプト実行)側の準備

AWS CLIのインストール

手順は省略します。
AWSの操作に問題がないかを確認するだけなので AWS CLI自体は必須ではありません。

AWS CLIの認証情報を保存

# 「Access Key ID」と「Secret Access Key」を登録します
aws configure

# Route53の情報が取得できるかを確認します
# (例)ホストしているゾーンの取得
aws route53 list-hosted-zones --query "HostedZones[*].Name" --output text

cli53のダウンロード

https://github.com/barnybug/cli53/releases/latest から最新のバイナリをダウンロードします。

wget https://github.com/barnybug/cli53/releases/download/0.8.17/cli53-linux-amd64
chmod 555 cli53-linux-amd64
mv cli53-linux-amd64 /usr/local/bin/cli53

コマンドのテスト

以下のコマンドを実行して出力結果を確認します。

cli53 export <ホストゾーン ID> または、
cli53 export <ドメイン名>
(例)
cli53 export example.com

バックアップスクリプトの作成

#!/bin/bash

# ホストされているドメインのリストを取得して変数に代入
domain_list=$(cli53 list | sed -e '1d' | awk '{print $2}')

# ドメイン毎に別ファイルでエクスポート
for i in ${domain_list}
do
  cli53 export $i > /tmp/$i`date '+%Y%m%d'`.txt
done

※date でファイルに日付けを付与しています
※ファイルの保存場所は /tmp です
※複数のAWSアカウントを管理している場合はプロファイルの指定が可能です

(例)
cli53 export example.com --profile default
  • --profileのオプションを使うと複数アカウントの操作が可能です。 for のループを2重に回す(domain_listの取得もループで回す)と取得ができるでしょう。

おわりに

AWS CLI(aws route53 list-resource-record-sets)で取得できるjsonやtable、yamlの形式では情報がわかりにくかったので、cli53を使用しました。

参考

Route 53 で設定した DNS レコードをエクスポートする
https://qiita.com/tmtysk/items/6ca808dd9ed13abc1992

追記

2020/03/23 domain_listをforで取得する部分を追記しました。

8
3
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
8
3