Route53のレコードって、コンソール上で1件ずつ見ることはできるんですが、デフォルトではエクスポートが用意されていません。件数が少なければコピペでも何とかなりますが、レコードが多いドメインだと地味につらい作業になります。
ちょうどRoute53のレコード一覧をバックアップ、もしくは提出用にまとめて出す必要があったので、エクスポートする方法を試してみました。
使ったツール
ざっくり言うと、cli53というOSSのCLIツールを使う方法です。aws route53コマンドだけでも情報は取れるんですが、JSONで返ってくるので、そのままだと人が読むには扱いづらいです。cli53を使うと、BINDのゾーンファイル形式でテキスト出力してくれるので、そのまま人に渡したり、別の場所にインポートしたりしやすくなります。
cli53 – https://github.com/barnybug/cli53
構成
- 対象: Route53のホストゾーン
- 使用ツール:
cli53 - 事前準備:
AmazonRoute53ReadOnlyAccess権限を持つIAMユーザー(読み取り専用で十分)
やったこと
1. cli53をインストールする
Macであればbrewで簡単にインストールできます。
brew install cli53Mac、Windows、LinuxいずれのOSでもビルドでいけます。
sudo mv cli53-my-platform /usr/local/bin/cli53sudo chmod +x /usr/local/bin/cli53詳しくは以下URLに記載があります。
https://github.com/barnybug/cli53#installation
3. AWS CLIの認証情報を設定する
念のため、AWS CLIの設定を確認しておきましょう。Access Key IDやSecret Access Keyなどが確認できます。もし未設定の場合はIAMユーザーを作成してAccess Keyなどを準備しましょう。(AmazonRoute53ReadOnlyAccessのロールを持つユーザーが必要です。)
aws configure次に念のため、ホストゾーンの一覧が取れるか確認しておきます。
aws route53 list-hosted-zones --query "HostedZones[*].Name" --output text4. 対象のホストゾーンをエクスポートする
ドメイン名を指定して、実際にエクスポートしてみます。
cli53 export --full 対象のドメイン名 > 対象のドメイン名.zone5. 出力されたファイルを確認する
出力された.zoneファイルの中身を確認します。
cat 対象のドメイン.zone
ここまで読んでいただき、ありがとうございます。もしこの記事の技術や考え方に少しでも興味を持っていただけたら、ネクストのエンジニアと気軽に話してみませんか。
- 選考ではありません
- 履歴書不要
- 技術の話が中心
- 所要時間30分程度
- オンラインOK