Amazon WorkSpacesの自動バックアップについて調べてみました

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

Amazon WorkSpacesは日本語対応している、AWSフルマネージドのサービスです。
簡単にデスクトップ環境を構築することが可能で、マルチデバイス(Windows/Mac/iPad/Kindle Fire/Androidタブレット等)で使用できます。

今回はAWSのドキュメントにも情報が少ない、WorkSpacesの自動バックアップについて検証しました。

WorkSpacesについての詳細は過去のAWS Black Beltのレポート記事をご参照ください。
Black Belt上で行われたQ&Aも記載されているため、AWSのドキュメントに載っていない情報もあります。

「AWS Black Belt Tech Webinar 2014 - Amazon WorkSpaces」レポート

WorkSpacesの自動バックアップを知る

WorkSpacesのバックアップについてはAWSのドキュメントやよくある質問にも載っていますが、情報が少ないです。

AWSドキュメント WorkSpace の再構築から抜粋
データドライブの自動スナップショットは 12 時間ごとに作成されるため、スナップショットは作成後、最大で 12 時間経過している場合があります。 ・Amazon WorkSpaces よくある質問から抜粋
Q: ユーザーのデータはどのようにバックアップされますか?
>WorkSpace のユーザーボリューム(D:)が 12 時間おきにバックアップされます。WorkSpace に障害が発生した場合、AWS はバックアップからそのボリュームを復旧します。 ・Amazon WorkSpaces 製品の詳細から抜粋
WorkSpace にアタッチされた「ユーザー」ボリュームにユーザーが保存した他のデータは、定期的に Amazon S3 に自動バックアップされます。

WorkSpace上のDドライブについては、12時間ごとにAmazon S3上にスナップショットでバックアップされています。
自動バックアップはWorkSpaceに障害が発生した場合やWorkSpaceを再構築する際に使用されます。

尚、WorkSpacesの自動バックアップについて留意しておきたい点があります。

  • 自動スナップショットではCドライブはバックアップされない
  • 任意でWorkSpaceのスナップショットは取れない
  • WorkSpaceの再構築や障害が発生した場合に自動バックアップからDドライブが復元されるが、12時間以内に作成されている自動バックアップからのみ復元される(スナップショットを選んで復元したりはできない)

残念ながら現時点ではEC2やRDSのようなスナップショットの運用はできないですね。

自動バックアップの検証設定

自動バックアップの挙動を確認するための設定をしてきます。

今回はWindowsのタスクとWindows PowerShellを使い、毎時59分にテキストファイルを作成、約12時間ごとにWorkSpaceの再構築をすることで、どのタイミングでバックアップされているかを確認します。

尚、WorkSpaceにはデフォルトでWindows PowerShell、Windows PowerShell for AWSがインストールされています。
WorkSpaceにインストールされているWindows PowerShellのバージョンは3.0でした。

PS > $PSVersionTable

Name Value
---- -----
PSVersion 3.0
WSManStackVersion 3.0
SerializationVersion 1.1.0.1
CLRVersion 4.0.30319.34209
BuildVersion 6.2.9200.16481
PSCompatibleVersions {1.0, 2.0, 3.0}
PSRemotingProtocolVersion 2.2

Windows PowerShellでテキストを作成します。スクリプト名は「backuptest.ps1」としました。
ファイル名には年月日と時刻を指定をします。

$filename = Get-Date -Format "yyyyMMdd-HHmm"
"" > D:\temp\BackupTest\$filename.txt

Windows PowerShellはデフォルトではスクリプトの実行が禁止されていますので、
「Set-ExecutionPolicy」コマンド管理者権限でポリシーを変更しています。
これでタスクで実行するスクリプトの用意ができましたので、タスクへ登録します。

タスク設定

  • プログラム/スクリプト %SystemRoot%\System32\WindowsPowerShell\v1.0\powershell.exe
  • 引数の追加 -Command .\backuptest.ps1
  • 開始 d:\temp

WorkSpacesTest001

タスクに登録したスクリプトが正常に動作するか確認し、問題ありませんでした。

WorkSpacesTest002

結果

3月19日(木) 12時00分~3月22日(日) 00時00分 までの自動バックアップの挙動です。

■3月20日(金) 0時~1時までの間に確認

再構築前(再構築1回目)
WorkSpacesTest003

再構築後(再構築1回目)
3月19日(木) 19時59分までのデータが残っており、20時59分のデータは復元されていません。
上記から3月19日(木) 19時59分~20時58分の間に自動バックアップされ、その自動バックアップから復元されたことが確認できます
WorkSpacesTest004

■3月20日(金) 12時~13時までの間に確認

再構築前(再構築2回目)
WorkSpacesTest005

再構築後(再構築2回目)
3月19日(木) 23時59分までのデータが残っており、3月20日(金) 0時59分のデータは復元されていません。
上記から3月19日(木) 23時59分~3月20日(金) 0時58分の間に自動バックアップされ、その自動バックアップから復元されたことが確認できます
WorkSpacesTest006

■3月21日(土) 0時~1時までの間に確認

再構築前(再構築3回目)
WorkSpacesTest007

再構築後(再構築3回目)
3月20日(金) 11時59分までのデータが残っており、12時59分のデータは復元されていません。
上記から3月20日(金) 11時59分~12時58分の間に自動バックアップされ、その自動バックアップから復元されたことが確認できます
WorkSpacesTest008

■3月21日(土) 12時~13時までの間に確認

再構築前(再構築4回目)
WorkSpacesTest009

再構築後(再構築4回目)
3月21日(土) 11時59分までのデータが残っており、再構築前と同様のデータとなりました。
再構築直前に自動バックアップされていたと思われます。
WorkSpacesTest010

■3月22日(日) 0時~1時までの間に確認

再構築前(再構築5回目)
WorkSpacesTest011

再構築後(再構築5回目)
3月21日(土) 23時59分までのデータが残っており、再構築前と同様のデータとなりました。
再構築直前に自動バックアップされていたと思われます。
WorkSpacesTest012

まとめ

3月19日(木) 12時00分~3月22日(日) 00時00分 までの自動バックアップの結果を図でまとめました。(クリックで拡大します)

WorkSpacesTestResult

  • 12時間以内のデータに関しては消える可能性が確認できた
    • 自動バックアップおよびWorkSpace再構築のタイミングにより、以下データが消えてしまった時間帯があった
      • 3月19日(木) 20時59分~3月19日(木) 23時59分
      • 3月20日(金) 12時59分~3月20日(金) 23時59分
  • 再構築直前までのデータに復元する可能性があることも確認できた
  • 自動バックアップは決まった時間に行われていないことが判明した

12時間以内に保存したDドライブのファイルは自動バックアップ対象外となりうる可能性があるため、WorkDocsの同期機能を使用する、(接続されていれば)ファイルサーバに保存する等、特にWorkSpaceの再構築前には任意のバックアップが必要と実感しました。
WorkSpacesユーザーは50GBまで無料でWorkDocsを利用できるため、重要なファイルはWorkDocsと同期しておくことをオススメします。