復元テスト - AWS Backup

復元テスト

AWS Backup が提供する復元テストの機能を使用すると、復元の実行可能性を自動的かつ定期的に評価できるほか、復元ジョブの所要時間をモニタリングすることもできます。

概要

まず、復元テストプランを作成します。復元テストプランには、プランの名前、復元テストの頻度、目標開始時間を指定します。次に、プランに含めるリソースを割り当てます。さらに、特定の復旧ポイントをテストに含めるか、ランダムな復旧ポイントを含めるかを選択します。AWS Backup のバックアップでは、復元ジョブを正常に実行するために必要なメタデータをインテリジェントに推測します。

プランでスケジュールされた時刻になると、AWS Backup はプランに基づいて復元ジョブを開始し、復元が完了するまでの時間をモニタリングします。

復元テストプランの実行が完了したら、その結果を使用して、復元テストのシナリオの正常な完了や復元ジョブの完了時間など、組織またはガバナンス上の要件に準拠しているかどうかを確認できます。

オプションで、復元テストの検証 を使用して復元テスト結果を確認できます。

オプションの検証が完了するか、検証ウィンドウが閉じると、AWS Backup は復元テストに関係するリソースを削除します。リソースはサービス SLA に従って削除されます。

テストプロセスが終了すると、テストの結果と完了時間を確認できます。

復元テストと復元プロセスの比較

復元テストでは、オンデマンド復元と同じ方法で復元ジョブを実行し、オンデマンド復元と同じ復旧ポイント (バックアップ) を使用します。復元テストによって開始された各ジョブについて、StartRestoreJob の呼び出しが CloudTrail に表示されます (オプトインされている場合)。

ただし、スケジュールされた復元テストとオンデマンドの復元のオペレーションには、いくつかの違いがあります。

復元テスト 復元

アカウント

推奨されるベストプラクティスは、復元テストに使用するアカウントを指定することです。

特定のアカウントのリソースを復元できます。

AWS Backup Audit Manager

コントロールを有効にして、復元テストが指定された復元目標を満たしているかどうかを確認できます。

頻度

スケジュール設定されているプランの一環として定期的に実行されます。

オンデマンド

リソース

テストプランに割り当てることができるリソースタイプには、Aurora、Amazon DocumentDB、Amazon DynamoDB、Amazon EBS、Amazon EC2、Amazon EFS、Amazon FSx (Lustre、ONTAP、OpenZFS、Windows)、Amazon Neptune、Amazon RDS、Amazon S3 があります。

すべてのリソースを復元できます。

結果

復元テストジョブが完了すると、復元されたリソースは復元テストの検証ウィンドウの終了後に削除されます。

復元ジョブが完了すると、復元されたバージョンのリソースはそのまま残ります。

タグ

復元時にタグをサポートするリソースタイプでは、テストに際して復元時にタグが適用されます。

サポートされているリソースでは、タグは省略可能です。

復元テストの管理

復元テストプランは AWS Backup コンソールで作成、表示、更新、削除できます。

AWS CLI を使用すると、復元テストプランの操作をプログラムによって実行できます。各 CLI は、その開始元の AWS サービスに固有です。コマンドの先頭には aws backup を付ける必要があります。

データの削除

復元テストが終了すると、AWS Backup はテストに関係するリソースの削除を開始します。この削除は即時には行われません。各リソースには、そのリソースの保存およびライフサイクル方法を決定する基本設定があります。例えば、Amazon S3 バケットが復元テストに含まれている場合、ライフサイクルルールがバケットに追加されます。ルールが実行され、バケットとそのオブジェクトが完全に削除されるまでに数日かかることがありますが、これらのリソースに対して課金されるのは、このライフサイクルルールが開始される日 (デフォルトでは 1 日) までです。削除の速さはリソースタイプによって異なります。

復元テストプランに含まれるリソースには、awsbackup-restore-test というタグが含まれています。ユーザーがこのタグを削除すると、AWS Backup はテスト期間の終了時にリソースを削除できなくなり、ユーザーが代わりに手動で削除する必要があります。

リソースが想定どおりに削除されなかった理由を確認するには、コンソールで失敗したジョブを検索するか、コマンドラインインターフェイスを使用して API リクエスト DescribeRestoreJob を呼び出し、削除ステータスメッセージを取得します。

バックアッププラン (非復元テストプラン) は、復元テストによって作成されたリソース (awsbackup-restore-test タグが付けられたリソース、または awsbackup-restore-test で始まる名前を持つリソース) を無視します。

コスト管理

復元テストでは復元テスト 1 回ごとにコストがかかります。復元テストプランに含まれるリソースによっては、プランに含まれる復元ジョブにもコストがかかる場合があります。詳細については、「AWS Backup の料金」を参照してください。

復元テストプランを初めて設定するときは、機能、プロセス、および関連する平均コストについて理解するために、最小限のリソースタイプと保護対象リソースを含めることをお勧めします。プランの作成後に、リソースタイプや保護対象リソースをさらに追加してプランを更新できます。

復元テストプランの作成

復元テストプランには、プランの作成とリソースの割り当ての 2 つのステップがあります。

コンソールを使用する場合、これらのステップは順番に行われます。最初の部分では、名前、頻度、開始時間を設定します。2 番目の部分では、テストプランにリソースを割り当てます。

AWS CLI と API を使用するときは、最初に create-restore-testing-plan を使用します。成功のレスポンスを受け取り、プランが作成されたら、プランに含めるリソースタイプごとに create-restore-testing-selection を使用します。

復元テストプランを作成すると、サービスリンクロールが作成されます。詳細については、「復元テストでロールを使用する」を参照してください。

Console
パート I: コンソールを使用して復元テストプランを作成する
  1. https://console.aws.amazon.com/backup で AWS Backup コンソールを開きます。

  2. 左側のナビゲーションで、[復元テスト] を選択します。

  3. [復元テストプランを作成] を選択します。

  4. 全般

    1. 名前: 新しい復元テストプランの名前を入力します。作成後にこの名前を変更することはできません。名前には英数字とアンダースコアのみを使用できます。

    2. テスト頻度: 復元テストを実行する頻度を選択します。

    3. 開始時間: テストを開始する時間 (時間と分) を設定します。復元テストプランを実行するローカルタイムゾーンを設定することもできます。

    4. 次の時間以内に開始: ここで指定した値 (時間単位) の間に復元テストを開始します。AWS Backup は、指定されたすべての復元ジョブを可能な限りこの時間内に開始し、開始時間をこの時間内でランダム化します。

  5. 回復ポイントの選択: ここでは、ソースボールト、復旧ポイントの範囲、およびプランに含める復旧ポイント (バックアップ) の選択基準を設定します。

    1. ソースボールト: 使用可能なすべてのボールトを含めるか、プランに追加する復旧ポイントを絞り込むために特定のボールトのみを含めるかを選択します。[特定のボールト] を選択した場合は、ドロップダウンメニューから目的のボールトを選択します。

    2. 対象となる復旧ポイント: 復旧ポイントを選択する期間を指定します。1~365 日、1 ~ 52 週間、1 ~ 12 か月、または 1 年を選択できます。

    3. 選択基準: 復旧ポイントの日付範囲を指定したら、直近の復旧ポイントをプランに含めるか、ランダムに 1 つの復旧ポイントを含めるかを選択できます。古いバージョンへの復元が必要になった場合に備えて、ランダムな選択によって復旧ポイントの全般的な状態をより定期的に測定することをお勧めします。

    4. ポイントインタイム復旧ポイント: 継続的バックアップ (ポイントインタイム復元/PITR) ポイント機能を持つリソースがプランに含まれている場合、このチェックボックスをオンにすると、対象とする復旧ポイントとして継続的バックアップをテストプランに含めることができます (この機能があるリソースタイプについては「リソースごとの機能の可用性」を参照)。

  6. (オプション) 復元テストプランに追加されたタグ: 復元テストプランには最大 50 個のタグを追加できます。各タグは個別に追加する必要があります。タグを追加するには、[新しいタグを追加] を選択します。

パート II: コンソールを使用してプランにリソースを割り当てる

このセクションでは、復元テストプランに含めるバックアップ済みのリソースを選択します。リソース割り当ての名前を選択し、復元テストに使用するロールを選択して、クリーンアップまでの保持期間を設定します。次に、リソースタイプと範囲を選択し、必要に応じてタグを使用して選択内容を絞り込みます。

ヒント

リソースを追加する復元テストプランに戻るには、AWS Backup コンソールに移動して [復元テスト] を選択し、目的のテストプランを見つけて選択します。

  1. 全般

    1. リソース割り当て名: このリソース割り当ての名前を、英数字とアンダースコアを使用して入力します。スペースは使用できません。

    2. IAM ロールを復元: テストでは、指定した Identity and Access Management (IAM) ロールを使用する必要があります。AWS Backup のデフォルトのロールを使用するか、別のロールを選択します。このプロセスの完了時に AWS Backup のデフォルトがまだ存在しない場合は、必要なアクセス許可を持つデフォルトのロールが AWS Backup によって自動的に作成されます。復元テスト用に選択する IAM ロールには、「AWSBackupServicePolicyForRestores」に記載されているアクセス許可が付与されている必要があります。

    3. クリーンアップ前の保持期間: 復元テストにおいて、バックアップデータは一時的に復元されます。デフォルトでは、このデータはテスト完了後に削除されます。復元に関する検証を実行する場合は、このデータの削除を遅らせることもできます。

      検証の実行を予定している場合は、[特定の時間数について保持] を選択し、1~168 時間の値を入力します。検証はプログラムで実行できますが、AWS Backup コンソールでは実行できないことに注意してください。

  2. 保護されたリソース

    1. リソースタイプを選択: 復元テストプランに含めるリソースタイプとそのタイプのバックアップの範囲を選択します。各プランには複数のリソースタイプを含めることができますが、各タイプのリソースを個別にプランに割り当てる必要があります。

    2. リソースの選択の範囲: タイプを選択したら、そのタイプの保護対象リソースをすべて含めるか、特定の保護対象リソースのみを含めるかを選択します。

    3. (オプション) タグを使用してリソースの選択を絞り込む: バックアップにタグが付いている場合は、タグでフィルタリングして特定の保護対象リソースを選択できます。タグキー、このキーを含めるか含めないかの条件、およびキーの値を入力します。次に、[タグを追加] ボタンを選択します。

      保護対象リソースが含まれるバックアップボールト内の直近の復旧ポイントのタグをチェックすることで、保護対象リソースのタグが評価されます。

  3. 復元パラメータ: 一部のリソースでは、復元ジョブの準備としてパラメータを指定する必要があります。ほとんどの場合、保存されているバックアップに基づいて AWS Backup が値を推定します。

    通常、これらのパラメータはそのままにしておくことをお勧めしますが、ドロップダウンメニューから別のパラメータを選択して値を変更することもできます。値の変更が適している例としては、暗号化キーの上書き、データを推定できない Amazon FSx 設定、サブネットの作成などがあります。

    例えば、復元テストプランに割り当てるリソースタイプの 1 つが RDS データベースである場合、アベイラビリティーゾーン、データベース名、データベースインスタンスクラス、VPC セキュリティグループなどのパラメータが推定値とともに表示され、必要に応じて値を変更できます。

AWS CLI

復元テストプランの作成には CLI コマンド CreateRestoreTestingPlan を使用します。

テストプランには以下が含まれている必要があります。

  • RestoreTestingPlan (固有の RestoreTestingPlanName が含まれている必要があります)

  • ScheduleExpression Cron 式

  • RecoveryPointSelection

    名前は類似していますが、これは RestoreTestingSelection と同じではありません

    RecoveryPointSelection には 5 つのパラメータがあります (3 つが必須、2 つはオプション)。指定した値によって、復元テストに含まれる復旧ポイントが決まります。SelectionWindowDays 内の最新の復旧ポイントが必要かどうか、またはランダムな復旧ポイントが必要かどうかを Algorithm に指定し、どのボールトから復旧ポイントを選択できるかを、IncludeVaults を通じて指定する必要があります。

選択には 1 つ以上の保護リソース ARN を含めることも、1 つ以上の条件を含めることもできますが、両方を含めることはできません。

以下を含めることもできます。

CLI コマンド create-restore-testing-plan を使用します。

プランが正常に作成されたら、create-restore-testing-selection を使用してプランにリソースを割り当てる必要があります

これは、RestoreTestingSelectionNameProtectedResourceType と、以下のいずれかで構成されます。

  • ProtectedResourceArns

  • ProtectedResourceConditions

保護対象リソースのタイプごとに値を 1 つ設定できます。復元テスト選択には、ProtectedResourceArns のワイルドカード値 (「*」) を ProtectedResourceConditions と併せて含めることができます。または、ProtectedResourceArns に保護対象リソースの ARN を最大 30 個まで含めることもできます。

復旧ポイントの決定

(指定した頻度と開始時間に応じて) テストプランを実行するたびに、選択している保護されたリソースごとに、対象となる 1 つの復旧ポイントが復元テストによって復元されます。いずれのリソースの復旧ポイントも、復旧ポイントの選択基準を満たしていない場合、そのリソースはテストに含まれません。

テスト選択で保護されたリソースの復旧ポイントは、指定された期間の基準を満たし、復元テストプランにボールトが含まれている場合、対象となります。

リソーステストの選択にリソースタイプが含まれ、次のいずれかの条件が満たされている場合、保護されたリソースが選択されます。

  • リソース ARN が、その選択で指定されている。または

  • その選択のタグ条件は、リソースの最新の復旧ポイントのタグと一致する。

復元テストプランの更新

コンソールまたは AWS CLI を使用して、復元テストプランの一部と、プランで指定されたリソースの選択内容を更新できます。

Console
コンソールで復元テストプランと選択内容を更新する

コンソールで復元テストプランの詳細ページを表示すると、プランの設定の多くを編集 (更新) できます。以下の手順に従ってください。

  1. https://console.aws.amazon.com/backup で AWS Backup コンソールを開きます。

  2. 左側のナビゲーションで、[復元テスト] を選択します。

  3. [編集] ボタンを選択します。

  4. 頻度、開始時間、選択した開始時間からテストを開始するまでの時間範囲を調整します。

  5. 変更を保存します。

AWS CLI
AWS CLI で復元テストプランと選択内容を更新する

UpdateRestoreTestingPlanUpdateRestoreTestingSelection のリクエストを使用して、特定のプランまたは選択内容に部分的な更新を送信できます。名前は変更できませんが、他のパラメーターは更新できます。各リクエストには変更するパラメータのみを含めてください。

更新リクエストを送信する前に、GetRestoreTestingPlanGetRestoreTestingSelection を使用して、RestoreTestingSelection に特定の ARN が含まれているのか、あるいはワイルドカードと条件を使用しているのかを判断します。

復元テストの選択で (ワイルドカードではなく) ARN が指定されていて、それを条件付きのワイルドカードに変更する場合は、更新リクエストに ARN のワイルドカードと条件の両方を含める必要があります。選択内容には、保護対象リソースの ARN を含めることも、条件付きのワイルドカードを使用することもできますが、両方を含めることはできません。

既存の復元テストプランの表示

Console
コンソールで既存の復元テストプランと割り当てられたリソースに関する詳細を表示する
  1. https://console.aws.amazon.com/backup で AWS Backup コンソールを開きます。

  2. 左側のナビゲーションで、[復元テスト] を選択します。ディスプレイに復元テストプランが表示されます。デフォルトでは、最後に実行されたプランから順に表示されます。

  3. プランからリンクを選択すると、プランの概要、名前、頻度、開始時間、開始までの時間範囲などの詳細が表示されます。

また、このプランに割り当てられている保護対象リソース、このプランに含まれる直近の 30 日間の復元テストジョブ、このテストプランの一部として作成されたタグも表示できます。

AWS CLI

コマンドラインを使用して、既存の復元テストプランとテストの選択内容に関する詳細を取得する

復元テストジョブの表示

Console
コンソールで既存の復元テストジョブを表示する

復元テストジョブは復元ジョブページに表示されます。

  1. https://console.aws.amazon.com/backup で AWS Backup コンソールを開きます。

  2. [ジョブ] ページに移動します。

    または、[復元テスト] を選択し、復元テストプランを選択すると、その詳細とプランに関連するジョブを確認できます。

  3. [復元ジョブ] タブを選択します。

    このページでは、復元ジョブのステータス、復元時間、復元タイプ、リソース ID、リソースタイプ、ジョブが属する復元テストプラン、作成時間、復旧ポイント ID を確認できます。

    復元テストプランに含まれるジョブは、復元タイプが [テスト] と表示されます。

復元テストジョブには複数のステータスカテゴリがあります。

  • 注意が必要なステータスタイプには下線が表示されており、ステータスにカーソルを合わせると、追加の詳細情報が表示されます (ある場合)。

  • 復元テストの検証 に対してテストが実施された場合は、検証ステータスが表示されます (コンソールでは確認できません)。

  • [削除ステータス] には、復元テストで生成されたデータのステータスが表示されます。削除ステータスには、[成功][削除中][失敗] の 3 つがあります。

    復元テストジョブの削除が失敗の場合、復元テストのフローでリソースが自動的に削除されていないないため、リソースを手動で削除する必要があります。多くの場合、awsbackup-restore-test のタグがリソースから削除されると、削除の失敗が起きる原因となります。

AWS CLI
コマンドラインから既存の復元テストジョブを表示する

復元テストプランの削除

Console
コンソールで復元テストプランを削除する
  1. 既存の復元テストプランの表示」に従って、既存の復元テストプランを確認します。

  2. 復元テストプランの詳細ページで、[削除] を選択してプランを削除します。

  3. [削除] を選択すると、プランを削除するかどうかを確認するポップアップ画面が表示されます。この画面には、特定の復元テストプランの名前が太字で表示されます。続行するには、このテストプランの正確な名前を、アンダースコア、ダッシュ、ピリオドをすべて含め、大文字と小文字を区別して入力します。

    [復元テストプランを削除] オプションが選択できない場合は、表示された名前と一致するまで名前を再入力します。名前が完全に一致すると、[復元テストプランを削除] オプションが選択可能になります。

AWS CLI
コマンドラインで復元テストプランを削除する

復元テスト選択を削除するには、CLI コマンド DeleteRestoreTestingSelection を使用します。リクエストには RestoreTestingPlanNameRestoreTestingSelectionName 含めます。

テストプランを削除する前に、テストプランに関連付けられているすべてのテスト選択を削除する必要があります。テスト選択をすべて削除したら、API リクエスト DeleteRestoreTestingPlan を使用して復元テストプランを削除できます。RestoreTestingPlanName を含める必要があります。

復元テストの監査

復元テストは AWS Backup Audit Manager に統合されているため、リソースの復元が目標の復元時間内に完了したかどうかを評価できます。

詳細については、「AWS Backup Audit Manager のコントロールと修正」の「リソースが目標に達するまでの復元時間」を参照してください。

復元テストのクォータとパラメータ

  • 復元テストプラン 100 個

  • 復元テストプランごとに 50 個のタグを追加可能

  • プランあたり 30 件の選択

  • 選択ごとに 30 個の保護対象リソース ARN

  • 選択ごとに 30 個の保護対象リソース条件 (StringEqualsStringNotEquals の両方に含まれるものを含む)

  • 選択ごとに 30 のボールト選択項目

  • 選択期間の最大日数: 365 日

  • 開始期間の時間範囲: 最小: 1 時間、最大: 168 時間 (7 日間)

  • プラン名の最大長: 50 文字

  • 選択名の最大長: 50 文字

制限に関する追加情報については、「AWS Backup のクォータ」を参照してください。

復元テスト失敗のトラブルシューティング

復元ステータスが Failed の復元テストジョブがある場合、次の理由が原因と対応方法の特定に役立つ場合があります。

エラーメッセージは、AWS Backup コンソールのジョブステータス詳細ページか、CLI コマンド list-restore-jobs-by-protected-resource または list-restore-jobs を使用して表示できます

  1. エラー: No default VPC for this user. GroupName is only supported for EC2-Classic and default VPC.

    解決策 1: 復元テストの選択を更新し、パラメータ SubnetId上書きします。AWS Backup コンソールには、このパラメータが「サブネット」として表示されます。

    解決策 2: デフォルトの VPC を再作成します。

    影響を受けるリソースタイプ: Amazon EC2

  2. エラー: No subnets found for the default VPC [vpc]. Please specify a subnet.

    解決策 1: 復元テストの選択を更新し、SubnetId 復元パラメータを上書きします。AWS Backup コンソールには、このパラメータが「サブネット」として表示されます。

    解決策 2: デフォルトの VPC にデフォルトのサブネットを作成します。

    影響を受けるリソースタイプ: Amazon EC2

  3. エラー: No default subnet detected in VPC. Please contact AWS Support to recreate default Subnets.

    解決策 1: 復元テストの選択を更新し、DBSubnetGroupName 復元パラメータを上書きします。AWS Backup コンソールには、このパラメータがサブネットグループとして表示されます。

    解決策 2: デフォルトの VPC にデフォルトのサブネットを作成します。

    影響を受けるリソースタイプ: Amazon Aurora、Amazon DocumentDB、Amazon RDS、Neptune

  4. エラー: IAM Role cannot be assumed by AWS Backup

    解決策: 復元ロールは、AWS Backup によって引き受け可能である必要があります。IAM でロールの信頼ポリシーを更新して "backup.amazonaws.com" が引き受けられるようにするか、復元テストの選択を更新して、AWS Backup が引き受けられるロールを使用します。

    影響を受けるリソースタイプ: すべて

  5. エラー: Access denied to KMS key. または The specified AWS KMS key ARN does not exist, is not enabled or you do not have permissions to access it.

    解決策: 以下を検証します。

    1. 復元ロールは、バックアップの暗号化に使用される AWS KMS キー、および該当する場合は復元されたリソースの暗号化に使用される KMS キーにアクセスできます。

    2. 上記の KMS キーのリソースポリシーにより、復元ロールがそれらにアクセスできるようになります。

    上記の条件がまだ満たされていない場合は、適切なアクセスのために復元ロールとリソースポリシーを設定します。次に、復元テストジョブを再度実行します。

    影響を受けるリソースタイプ: すべて

  6. エラー: User ARN is not authorized to perform action on resource because no identity based policy allows the action. または Access denied performing s3:CreateBucket on awsbackup-restore-test-xxxxxx

    解決策: 復元ロールに適切なアクセス許可がありません。復元ロールの IAM のアクセス許可を更新します。

    影響を受けるリソースタイプ: すべて

  7. エラー: User ARN is not authorized to perform action on resource because no resource-based policy allows the action. または User ARN is not authorized to perform action on resource with an explicit deny in a resource based policy.

    解決策: 復元ロールに、メッセージで指定されたリソースへの適切なアクセス許可がありません。前述のリソースのリソースポリシーを更新します。

    影響を受けるリソースタイプ: すべて