1. 背景
自分が担当している案件にてAWS Backupを用いたEC2のAMIバックアップを取得する機会がありました。コンテナ案件を中心にこなしていたため、あまりAWS Backupを触ることがなかったので、備忘も兼ねて自分なりに整理してみました。
本記事では、AWS Backup の基本機能を概説し、EC2 に特化したバックアップ取得方法、復元時の課題について記載したいと思います。
2. AWS Backupのざっくりとした概要
2.1. サービス概要
AWS BackupはAWS上で稼働する複数のサービスに対して、一元的かつ自動化されたバックアップ管理を提供するフルマネージドサービスです。
個別サービスごとにバックアップジョブを設定する必要がなく、統一されたポリシーやスケジュールで管理することができるため、運用負荷を大きく軽減できます。
2.2. AWS Backupの主な特徴
-
ポリシーベースのバックアップ管理
- バックアッププランを作成し、スケジュール・保存期間・ライフサイクルルールを定義することが可能です
-
クロスリージョンおよびクロスアカウントバックアップに対応
- DRの観点から別リージョンや別アカウントへバックアップを保管することが可能となります
-
取得済みバックアップのライフサイクル管理が可能
- バックアップの保存期間や移行先を設定することで、ストレージコストを最適化できます
2.3. 対応サービス例
AWS Buckupは幅広いAWSサービスに対応していて、代表的なものとしては下記のものがあります。
- EC2
- RDS、DynamoDB
- EFS、FSx
3. バックアップ整合性レベルと取得方式
バックアップには整合性レベルが存在していて、これを理解しないでバックアップを取得すると復元時にアプリケーションが正常に動作しない可能性があります。
3.1. バックアップ整合性の種類
-
クラッシュ整合性
- バックアップ取得時点でのディスク内容をそのまま保存する方式
- OS起動やファイル復元は可能だが、DBやトランザクション中にアプリは不整合が起こる可能性がある
- AWS Backupでは何も指定しない場合クラッシュ整合性でバックアップは取得される
-
ファイルシステム整合性
- バックアップ前にファイルシステムのキャッシュをフラッシュして取得
- Linuxではfsfreezeコマンドを利用することで実現可能
-
アプリケーション整合性
- バックアップ前にアプリケーションのI/Oを一時停止し、メモリ上のデータも含めて完全な一貫性を確保
- WindowsではVSS(Volume Shadows Copy Service)、Linuxの場合はアプリ固有のフリーズ機能やスクリプトを使用することで実現可能
3.2. Windows環境におけるVSSバックアップ
WindowsベースのEC2インスタンスでは、AWS BackupでVSSを利用できます。
-
VSSの仕組みとメリット
- Microsoftが提供するスナップショット機構で、ファイルシステムや対応アプリケーションを一時停止し、キャッシュをディスクにフラッシュ
- SQL ServerやADなどトランザクション中のデータも整合性を保って保存可能
- AWS Backupでの利用条件
-
VSS有効化時の注意点
- 全てのアプリケーションがVSSに対応しているわけではないので、事前検証は行うようにしましょう
- クラッシュ整合性と比較してバックアップ取得にかかる時間がやや伸びる傾向にあります
- VSSスナップショット作成に失敗するとクラッシュ整合性での取得になるので、リストア時に誤ったAMIでリストアをしないように注意してください
3.3 VSSのインストール
今回はSystems Manager Run Commandを利用した手順で実行します。
1. Systems Manager Run Commandの画面から「AWS-ConfigureAWSPackage」を選択する
2. 「コマンドのパラメータ」のName部に「AwsVssComponents」を入力する
3. 「ターゲット」にてインストール対象のインスタンスを指定する
4. 「実行」をクリック後、インストールが無事に完了することを確認する
5. 実機にRDPしてみるとVSSは手動起動になっているので自動起動にしておきましょう
これでVSSのインストールは完了です。
あとはバックアッププラン作成の時に忘れずVSSバックアップのチェックボックスにチェックを入れるだけです。
4. AWS BackupにおけるDR対策
AWS Backupにおいて実施可能なDR対策は下記の2つとなります。
-
クロスリージョンバックアップ
※事前にコピー先のリージョンにてバックアップボールトを作成する必要があるので注意してください※
-
クロスアカウントバックアップ
※事前にコピー先のアカウントにてバックアップボールトを作成する必要があるので注意してください※
クロスリージョンバックアップは一般的にリージョン障害や大規模災害に備えるイメージですが、クロスアカウントバックアップについては万が一のアカウント侵害やランサムウェア感染などによるデータ消失からの保護用途で使うイメージです。
5. まとめ
AWS Backupは、複数のAWSサービスに対して統一的なバックアップ管理を提供し、スケジュールやライフサイクルも一括で制御できる便利なサービスです。
特にEC2バックアップでは、デフォルトではクラッシュ整合性となるため、業務アプリケーションの整合性を確保したい場合はファイルシステム整合性やアプリケーション整合性を意識した設計が必要です。
Windows環境でのVSSバックアップは、アプリケーション整合性を確保する有力な手段ですが、対応していないアプリもあるため、事前の検証は欠かせません。
また、VSSはインストール後に手動起動となっていることが多いため、自動起動へ変更しておくことで、ジョブ実行時の失敗リスクを下げられます。
バックアップは「取得する」ことが目的ではなく、「復元して業務を再開できる」ことが本来の目的です。
そのため、要件に合った整合性レベルの選定、定期的なリストア検証、設定の自動化を組み合わせて、確実に復旧できるバックアップ運用を目指しましょう。