AWS Backup で EC2・RDS のバックアップを取得してみた

  • このエントリーをはてなブックマークに追加
  • Pocket

こんにちは、インフラエンジニアの綿引です。

今回は AWS Backup を使って EC2 と RDS のバックアップを取得してみました。
なかなか面白かったので、AWS Backup の概要も含めてアプトプットさせていただきます。

AWS Backup とは

AWS の各サービスのバックアップを一元的に管理できるサービス です。

今までのバックアップは各サービス毎に取得するしかなかったので、
一元管理できるのは嬉しいですね。

AWS Backup で現在までにサポートされているサービスとリソースは以下となっています。

サービス リソース
Amazon EFS Amazon EFS ファイルシステム
Amazon DynamoDB DynamoDB テーブル
Amazon EBS Amazon EBS ボリューム
Amazon RDS Amazon RDS データベース
AWS Storage Gateway AWS Storage Gateway ボリューム

RDS に関して、基本的に全てのエンジンがサポートされておりますが、
Amazon Aurora だけは対象外ですのでご注意ください。

AWS Backup の料金

料金に関しては、 バックアップにて取得されたストレージ量に対して月額費用 がかかります。
また復元した場合にも別料金が発生します。

料金

※ アジアパシフィック (東京) リージョン

リソースタイプ 料金
Amazon EFS File System バックアップ 0.06 USD/月 (GB あたり)
Amazon EBS ボリュームスナップショット 0.05 USD/月 (GB あたり)
Amazon RDS データベーススナップショット 0.095 USD/月 (GB あたり)
Amazon DynamoDB テーブルバックアップ 0.114 USD/月 (GB あたり)
AWS Storage Gateway ボリュームバックアップ 0.05 USD/月 (GB あたり)

また EFS のみ、上記のウォームストレージへのバックアップとは別に
[コールドストレージへの移行] が可能で、
有効にした場合に別で 0.012 USD/月(GB あたり) の料金が発生します。

使用する場合、コールドストレージに移行されたバックアップの保存期間は最低で 90 日間のため
90 日が経過する前にバックアップを削除しても、残りのストレージ料金が日割りで請求される。
とのことなので、予想外のコストがかからないように注意が必要です。

使ってみる

では実際に試してみたいと思います。

今回バックアップを取得するサービスは以下です。

・EC2
– aws-backup-test-ec2
・RDS
– aws-backup-test-rds

まずは [バックアッププランを管理] を選択します。

次に [バックアッププランを作成] を選択します。

起動オプション では [新しいプランを立てる] を選択し、 [バックアッププラン名] を入力します。
ここでは aws-backup-test としました。

続いてはバックアップルールの作成です。
ルール名 は今回 aws-backup-test-rule にしました。

スケジュール の 頻度 に関しては 12時間ごと毎日 などから選択できますが、
今回はデフォルトの [毎日] で進めていきます。
なお、個人的には カスタム cron 式 が嬉しかったです。

バックアップウィンドウ については時間帯をこちらで決めたいため、
[バックアップウィンドウをカスタマイズ] を選択しました。

バックアップウィンドウの開始時間AM 2:001時間以内 にしました。
UTC なので日本時間だと AM 11:00 から 1時間以内にバックアップが開始される想定です。

続いて、 ライフサイクル ですが、これはコールドストレージの設定です。

いつコールドストレージに移行されるか、いつ有効期限が切れるかを定義できますが、
上記でも記載した通り、現在は EFS のみ有効のため設定せずに進みます。

バックアップボールト はバックアップを整理するためのものです。

バックアップボールトの管理画面に行けば、
今まで取得したバックアップの一覧がわかりやすく見れたり、
それに対しての復元などが簡単に行えます。

設定に関して、今回はデフォルトの [Default] を使用しますが、
バックアップボールトを新規作成することで、
暗号化キーやアクセスポリシーを制御を自由に設定できます。

なお、 リージョンにコピー はデフォルトです。

バックアッププランに追加されたタグ も設定せず進み、
最後に [プランの作成] を押下します。

これで バックアッププラン の作成は完了です。

次に何をバックアップするかの バックアップリソースの追加 を行います。

バックアッププランの画面から、 [リソースの割り当て] を選択します。

リソース割り当て名aws-backup-test として、
IAM ロールは [デフォルトのロール] を選択しました。

リソースの割り当て単位 は、
リソースIDタグ を使ってでできるのですが、
今回は リソースID にしています。

EC2 はインスタンスID で、RDS はデータベース名で表示されます。
最後に [リソースを割り当てる] を押下します。

これでバックアッププランが完成しました。

後は バックアップウィンドウ で指定した時間になるとジョブが動き出します。
今回は AM 11:00 から 1時間以内 に指定しましたが、実際に動き出したのは AM 11:30 ぐらいでした。

完了するとステータスが更新されます。

最後に EC2 と RDS のコンソールからバックアップを確認してみます。

[EC2]

[RDS]

ちゃんと取得できているようです。

RDS のバックアップが失敗する

今回、RDS のバックアップ時に一度だけエラーに出くわしたので共有させていただきます。

AWS Backup ジョブが失敗し、以下のエラーが出力されました。

Can’t start a backup now. RDS DB Instance is close to enter RDS automated backup window.

の内容通り、
RDS の自動バックアップを有効にしていたため AWS Backup の時間と被ってしまったようです。
今後気をつけたいと思います。

最後に

Amazon Aurora がサポートされていないのは残念でしたが、
バックアップの一元管理という点では使いやすかったかなと思います。
機会があれば運用に入れてみようかと思いました。

エンジニア募集中

Wedding Parkでは一緒に技術のウエディングパークを創っていくエンジニアを募集しています。
興味のある方はぜひ一度気軽にオフィスに遊びにいらして頂ければと思います。
株式会社ウエディングパークwantedly

  • このエントリーをはてなブックマークに追加
  • Pocket

SNSでもご購読できます。