[AWS] AWS BackupによるEFSの特定ファイルの復元手順

引き続きEFSネタです。

今まではEFSのバックアップにはEFS to EFSバックアップソリューションを使うことが一般的でした。

しかし最近ではAWS Backupの機能拡張により、定期的にEFSのバックアップを取得することが可能になりました。

EFS to EFSバックアップソリューションでは数十万件もの大量のファイルが保存されていた場合に、バックアップの作成に数日単位の時間を要する可能性もありました。

一方でAWS Backupでは大量のファイルが保存されているEFSであっても短い時間でバックアップを作成することができます。

さらに、今まではAWS Backupで作成したEFSのバックアップは完全な復元のみが対応可能で特定ファイルのみの復元などはサポートされていなかったのですが、2020年1月から特定ファイル単位の復元が可能になりました。

特定ファイルの破損のためにEFSの全てのデータをバックアップから復元する従来の仕様では、障害の対応に時間が掛かってしまいます。

今回のアップデートによってその問題が解決されたと言えるでしょう。

せっかくなので特定ファイルの復元手順を実際に試してみることにします。

AWS Backup


AWS Backupのコンソールを開いてください。
AWS Backupでは大雑把に3つの機能があります。

定期的なバックアップの作成を行うことができる[バックアッププラン]
手動でバックアップを作成する[オンデマンドバックアップ]
そしてバックアップからデータを復元する[復元]です。


今回は復元がメインの検証なので、オンデマンドバックアップを作成します。
リソースタイプをEFSとして、前回の記事で使用したEFSのファイルシステムIDをバックアップすることにしました。


バックアップの作成をリクエストすると、その1時間後がバックアップの開始予定と表示されます。
しかし実際にはもっと早くバックアップの作成が開始されることが多いです。
今回のケースでは、バックアップの作成をリクエストした5分後には完了していました。

バックアップを作成できたので検証環境の準備は完了です。

復元先のEFSの状態

復元先のEFSの状態は
/hogehoge/hoge.txt
/piyopiyo/piyo.txt

という2つのディレクトリ内にそれぞれテキストファイルが存在している状態でした。

復元の検証を行うために、hogehogeディレクトリの中にあるhoge.txtを削除しておきます。
$ rm hoge.txt

「hogehoge」というディレクトリにあったテキストドキュメントを削除したため、現在は空のディレクトリです。

特定ファイルの復元


さっそくAWS Backupのコンソールに戻り[復元]を実行します。


特定ファイルの復元を行う場合には[項目レベルの復元]を選択します。
この方法では一度に5個のパスが指定できるようです。


[項目レベルの復元]を実行してわずか10分で復元の状態が[完了]になりました。
さっそくEFSの中身を確認すると、「aws-backup-restore_2020-02-25T23-35-31-653Z」という見慣れないファイルが作成されていました。

この時点ではEFS内にある「hogehoge」ディレクトリは空のままです。

[項目レベルの復元]を実行すると、EFS内の復元対象のファイルが復元されることを期待していたのですが、どうやら一旦はaws-backup-restoreディレクトリの中に復元されるようです。

aws-backup-restore内のファイルに問題ないことを確認したため、cpコマンドで復元予定のファイルパスにコピーを行いました。

$ cp -r aws-backup-restore_2020-02-25T23-35-31-653Z/hogehoge/ hogehoge/

これで当初予定していた復元が完了です。

まとめ

AWS Backupの新規機能である[項目レベルの復元]を試しました。
触った感じではおおむね期待していた機能だと思います。

復元対象に指定したパスが直接書き換わることを期待していましたが、よく考えると事前確認もなしに上書きをしてしまう仕様だとかえって使い難いです。

そのためきちんと確認ができるように一時フォルダ内にリストアされる仕様で良かったのかもしれませんね。

高い堅牢性を誇るEFSですが、人の手によるエラーが起こればあっさりファイルが破壊されてしまいます。

そんな時のためにAWS Backupの[完全な復元][項目レベルの復元]をそれぞれ使えるように手順を確認しておくと良いかもしれませんね。

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

日本語が含まれない投稿は無視されますのでご注意ください。(スパム対策)