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 cli53

Mac、Windows、LinuxいずれのOSでもビルドでいけます。

sudo mv cli53-my-platform /usr/local/bin/cli53
sudo 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 text

4. 対象のホストゾーンをエクスポートする

ドメイン名を指定して、実際にエクスポートしてみます。

cli53 export --full 対象のドメイン名 > 対象のドメイン名.zone

5. 出力されたファイルを確認する

出力された.zoneファイルの中身を確認します。

cat 対象のドメイン.zone

ここまで読んでいただき、ありがとうございます。もしこの記事の技術や考え方に少しでも興味を持っていただけたら、ネクストのエンジニアと気軽に話してみませんか。

  • 選考ではありません
  • 履歴書不要
  • 技術の話が中心
  • 所要時間30分程度
  • オンラインOK

エンジニアと話してみる

関連リンク

AI・クラウド・データ分析のご相談はネクスト株式会社までお問い合わせください。