Share
Embed
第142回 雲勉 AWS Backupの復元テストで自動化できること・できないこと
下記、勉強会での資料です。
https://youtu.be/uiZTxinkEtQ
iret.kumoben
August 29, 2024
Transcript
41 slides
-
講師自己紹介 2 畠山大治 ⚫ 所属:クラウドインテグレーション事業部 アイレット歴は1年ちょっと ⚫ 業務:インフラ構築、監視設計・設定 ⚫ 趣味:Perfumeを追いかける
読書、映画・アニメを見る ⚫ 認定:AWS Community Builders 2024 Japan AWS Top Engineers 2024 Japan AWS All Certifications Engineers iretテクニカルアンバサダー ご質問は YouTubeのコメント欄で受け付けております。 後日回答させていただきます! -
アジェンダ 3 ⚫ AWS Backupの復元テストについて ➢ 復元テストとは ➢ オンデマンド復元との違い ⚫
実際に使ってみた ➢ 前提、検証で使った構成紹介 ➢ 復元テストの設定手順 ⚫ つまずきと解決策 ➢ 復元テストでできなかったこと ➢ 解決策と実装方法 -
復元テストとは 5 ⚫ AWS Backupで取得したバックアップの復元を自動化できる機能 ➢ バックアップボールトに保存されている復旧ポイントからの復元を スケジューリングできる ⚫ 作成されたリソースの削除まで自動で実行してくれる
➢ 復元時に自動的に付与されるタグを元に削除対象を判定 ⚫ 復元テストの成功/失敗は「復元ジョブ」の中で確認可能 ➢ EventBridgeを使うことで失敗した時の通知ができる -
オンデマンド復元との違い 7 ⚫ 復元するタイミング・頻度 ➢ 復元テスト:定期実行される ➢ オンデマンド復元:一時的な復元 ⚫ リージョン
➢ 復元テスト:一部リージョン(GovCloudリージョンや中国リージョン)で利用不可 ➢ オンデマンド復元:AWS Backupが提供されているリージョンなら使用可能 ⚫ 復元実行後の挙動 ➢ 復元テスト:復元されたリソースは削除される ➢ オンデマンド復元:復元されたリソースはそのまま残る -
前提、検証で使った構成紹介 9 実際の案件の要件に近い条件で検証を実施しました ⚫ 復元対象リソース:Amazon FSx for Windows File Server
⚫ Windows認証:自己管理型 Microsoft Active Directory ➢ ADDC(Active Directory Domain Controller)の機能を有効化、セットアップ済みの Windows Server(EC2)を別途作成 ※ADDCのセットアップ手順は割愛します ➢ 新しいフォレストを作成し、検証用ユーザーを作成 ➢ 検証用ユーザーを使い事前にFSxをADに参加させておく -
前提、検証で使った構成紹介 10 ⚫ 復元テストで復元したFSxは別のVPCで 起動させる ➢ 本番VPCにあるFSxのバックアップを AWS Backupで定期的に取得 ➢
取得済みのバックアップから復元テスト用 VPCに復元 ⚫ テストサーバーからFSxに接続 できることを確認 ➢ 構成簡略化のために、IP制限をかけた上で パブリックサブネットに配置 -
復元テストの設定手順 11 2つのステップを踏むことで復元テストの設定が完了する ※バックアッププランやルール、ボールトの設定は完了済みの前提 ⚫ 復元テストプランの作成 ➢ スケジュール設定や、復元テストで使用するバックアップボールトの設定を行う ⚫ リソースの割り当て
➢ 作成した復元テストを適用するリソースを選択 ➢ 復元するために必要なパラメータもここで設定 -
復元テストの設定手順:復元テストプランの作成 13 復元テストプランの設定内容 ⚫ 復元テストプラン名 ⚫ テストのスケジュール設定 ➢ 復元テストを実施する頻度 ➢
開始する時刻 ➢ cron式での設定も可能 -
復元テストの設定手順:リソースの割り当て 15 復元テストプランの作成が完了すると リソース割り当ての設定画面に遷移する ⚫ 保持期間 ➢ 復元されたリソースをどれくらいの期間 保持しておくかを設定 ⚫
復旧するリソースの種類の設定 ➢ ボールトにバックアップされているリソース の中で、どれを復元テストの対象にするか -
復元テストの設定手順:リソースの割り当て 16 ⚫ 復元パラメータの設定 ➢ 復元するために必要なパラメータを設定 ➢ 復元するリソースの種類によって設定するパラ メータが変わる ➢
FSxの場合は… • ファイルシステムを作成するサブネット • 優先サブネット • Managed Microsoft Active Directory のID (該当する場合のみ設定) など -
復元テストでできなかったこと 20 復元ジョブを確認すると、何かしらのパラメータが足りないため失敗したと いうエラーが発生していた (翻訳) バックアップは、セルフマネージドADに結合されたファイルシステム用に作成されました。 そこからファイルシステムを作成するには、AWS directory ID または
SelfManagedActiveDirectoryConfiguration のいずれかを持つ WindowsConfiguration を 提供してください。 -
復元テストでできなかったこと 22 仕様を確認してみると ⚫ 復元テストを使用するには、メタデータをパラメータとして渡す必要がある ⚫ AWS Backupが自動的に補完してくれるメタデータもあるが、FSxの場合は 補完が不完全 ⚫
メタデータを上書きすることも可能だが、上書き不可のメタデータもある https://docs.aws.amazon.com/ja_jp/aws-backup/latest/devguide/restore-testing-inferred-metadata.html -
復元テストでできなかったこと 23 仕様を確認してみると ⚫ 復元テストを使用するには、メタデータをパラメータとして渡す必要がある ⚫ AWS Backupが自動的に補完してくれるメタデータもあるが、FSxの場合は 補完が不完全 ⚫
メタデータを上書きすることも可能だが、上書き不可のメタデータもある https://docs.aws.amazon.com/ja_jp/aws-backup/latest/devguide/restore-testing-inferred-metadata.html -
復元テストでできなかったこと 24 仕様を確認してみると ⚫ 復元テストを使用するには、メタデータをパラメータとして渡す必要がある ⚫ AWS Backupが自動的に補完してくれるメタデータもあるが、FSxの場合は 補完が不完全 ⚫
メタデータを上書きすることも可能だが、上書き不可のメタデータもある https://docs.aws.amazon.com/ja_jp/aws-backup/latest/devguide/restore-testing-inferred-metadata.html “SelfManagedActiveDirectoryConfiguration” についての言及が無い。。。 -
復元テストでできなかったこと 25 ダメ元でAWS CLIから実行してみるとエラー発生 An error occurred (InvalidParameterValueException) when calling
the CreateRestoreTestingSelection operation: Restore metadata overrides are invalid: Restore metadata overrides contain an invalid or non- overridable nested key. Overridable nested keys: [deploymenttype, junctionpath, ontapvolumetype, logconfiguration, throughputcapacity, securitystyle, diskiopsconfiguration, activedirectoryid, sizeinmegabytes, storageefficiencyenabled, storagevirtualmachineid, tieringpolicy, preferredsubnetid]. 以下のキーしか上書きできないとのこと • deploymenttype • junctionpath • ontapvolumetype • logconfiguration • throughputcapacity • securitystyle • diskiopsconfiguration • activedirectoryid • sizeinmegabytes • storageefficiencyenabled • storagevirtualmachineid • tieringpolicy • preferredsubnetid つまり、Windows認証にセルフマネージドADを選択しているFSxは 復元テストが使用できない -
解決策と実装方法 26 3つのStep Functionsステートマシンを組み合わせて復元テストと同等の機能を実装 1. オンデマンド復元を実行するStep FunctionsワークフローをEventBridge スケジューラーで定期実行 2. AWS
Backupの復元ジョブをトリガーに、FSxにタグ付けをするStep Functions ワークフローを起動 3. 特定のタグがついているFSxを削除するStep FunctionsワークフローをEventBridge スケジューラーで定期実行 Step Functions, Lambda, EventBridgeを使ってスクラッチで実装 -
解決策と実装方法 27 Lambdaを主軸にすることも可能だが、今回はStep Functionsを主軸に実装 選定にあたっての背景: ⚫ Lambdaの保守コストを減らしたい ➢ Step Functionsの中で必要なLambdaは極力簡単なコードに
➢ ランタイム更新による影響を抑え、かつ引き継ぎコストも極力軽減させる ⚫ とはいえ、Step Functionsで完結させることにこだわらない ➢ Lambdaなしでも実装は可能だが、Step Functionsの定義が複雑になる -
解決策と実装方法 28 オンデマンド復元の実行 ステートマシンを 定期実行 EventBridge スケジューラー AWS Backupによる オンデマンド復元
FSxにタグ付けする EventBridge ルール ステートマシンを起動 FSxを削除する ステートマシンを 定期実行 EventBridge スケジューラー 復元ジョブの 成功 -
解決策と実装方法 32 1. オンデマンド復元の実行 ピックアップされた最新の復旧ポイント からの復元を実行 ※メタデータを挿入した上で StartRestoreJobアクションを実行 "Metadata": {
"kmskeyid": ”xxxxxxxxx", "securitygroupids": ["sg-xxxxxxxxxx"], "storagetype": "SSD", "subnetids": ["subnet-xxxxxxxxxx","subnet-xxxxxxxxxx"], "WindowsConfiguration": { "DeploymentType": "MULTI_AZ_1", "ThroughputCapacity": 16, "PreferredSubnetId": "subnet- xxxxxxxxxx ", "SelfManagedActiveDirectoryConfiguration": { "DomainName": " xxxxxxxxxx.local", "FileSystemAdministratorsGroup": "Domain Admins", "UserName": "xxxxxxxxxx", "Password.$": "$.password.Parameter.Value", "DnsIps": [”xx.xx.xx.xx"] }, "AutomaticBackupRetentionDays": "0" } } -
まとめ 40 ⚫ AWS Backupの復元テストを使用することで、取得しているバックアップ からの復元が正常にできるかどうかのテストを自動化できる ⚫ ただし、自己管理型ADをWindows認証に使用しているFSxでは復旧テス トが使用できない ⚫
Step Functions, Lambda, EventBridgeを組み合わせて代替手段を実装 することが可能 ⚫ 「他にこんな方法もあるよ」という意見あれば、ぜひ教えてください! -
参考資料 41 復元テスト | AWS Backup 開発者ガイド https://docs.aws.amazon.com/ja_jp/aws-backup/latest/devguide/restore-testing.html 復元テストの推定メタデータ |
AWS Backup 開発者ガイド https://docs.aws.amazon.com/ja_jp/aws-backup/latest/devguide/restore-testing-inferred- metadata.html FSX ファイルシステムの復元 | AWS Backup 開発者ガイド https://docs.aws.amazon.com/ja_jp/aws-backup/latest/devguide/restoring-fsx.html