Route 53 のレコードを S3 に定期バックアップする
Route 53 の設定を定期的に S3 バックアップする仕組みが構築できたため、使用したツールやスクリプトを紹介します。
AWS Lambda への実装も考えられますが、今回はサーバ上での定期実行としています。
S3 バケット作成
まずはバックアップ格納先の S3 バケットを用意します。
バケット内に Route 53 専用のディレクトリを作成しました。
S3 書き込みポリシー作成
必要なディレクトリにのみ書き込める権限を用意します。
以下のような IAM ポリシーを s3-backup_route53
として作成しました。
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Action": "s3:PutObject",
"Resource": "arn:aws:s3:::hoge-backup/route53/*"
}
]
}
IAM ユーザ作成
スクリプトが利用するためのユーザを作成します。route53-backup
というユーザ名で、以下2つの権限を付与しました。
AmazonRoute53ReadOnlyAccess
※Route 53 の読み取り用s3-backup_route53
※S3 の書き込み用
AWS プロファイル登録
作成した IAM ユーザのアクセスキーを任意のサーバに登録します。
今回は明示的に route53-backup
という名称でプロファイル保存しています。
$ aws configure --profile route53-backup
AWS Access Key ID [None]: AKIAIXXXXXXXXXXXXXX
AWS Secret Access Key [None]: HTFqyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyyy
Default region name [None]: ap-northeast-1
Default output format [None]: json
cli53 準備
Route 53 をコマンドから操作するツール「cli53」を活用します。
Releases ページ から環境に適合したファイルを選んでダウンロードしてきます。
$ sudo wget -O /usr/local/bin/cli53 https://github.com/barnybug/cli53/releases/download/0.8.12/cli53-linux-amd64
$ sudo chmod +x /usr/local/bin/cli53
$ cli53 -v
cli53 version 0.8.12
先ほど登録した AWS プロファイルが利用できるかテストします。Route 53 で管理しているゾーンが取得できれば OK です。
$ cli53 list --profile route53-backup
ID Name Record count Comment
ZS5XXXXX yuu26.com. 16
Z2DXXXXX hoge.local. 3
バックアップスクリプト作成
全レコードをバックアップするためにスクリプトを作成します。
初めにゾーン一覧を取得した後、レコード内容をテキストファイルに書き出す仕様としました。
これらを S3 に転送するまでがスクリプトの処理です。
バックアップ先/
├ _zone-list.txt ←ゾーン一覧
├ yuu26.com. ← yuu26.com. の全レコード
└ hoge.local. ← hoge.local. の全レコード
S3 転送結果確認
スクリプト実行後、S3 に格納されたことを確認します。
問題がなければ cron 等で定期実行の設定をして完了となります。
参考リンク
まとめ
- Route 53 のバックアップを自動化しました
- Route 53 をコマンド操作するツール「cli53」を活用しました
- 取得したファイルは S3 に格納しています
冒頭に書きましたが Lambda 上で定期実行させたり、そもそも Route 53 の設定自体を Git 等でバージョン管理すると、よりスマートかもしれません。
ディスカッション
コメント一覧
まだ、コメントがありません
フォローする
カテゴリー
最近の投稿
ブログについて