Upgrade to Pro
— share decks privately, control downloads, hide ads and more …
Speaker Deck
Features
Speaker Deck
PRO
Sign in
Sign up for free
Search
Search
第142回 雲勉 AWS Backupの復元テストで自動化できること・できないこと
Search
iret.kumoben
August 29, 2024
Technology
430
0
Share
Embed
Copy iframe code
Copy JS code
Copy link
Start on current slide
第142回 雲勉 AWS Backupの復元テストで自動化できること・できないこと
下記、勉強会での資料です。
https://youtu.be/uiZTxinkEtQ
iret.kumoben
August 29, 2024
More Decks by iret.kumoben
See All by iret.kumoben
第182回 雲勉 【Gemini 3.0 Pro】AI ベンチマーク徹底比較!他モデルに比べ優れている点まとめ
iret
0
98
第181回 雲勉 WEB制作者のちょっとした面倒をAWSで解決!Amazon S3とAWS Lambda活用術
iret
0
89
第180回 雲勉 Abuse report の調査・確認方法について
iret
0
110
第179回 雲勉 AI を活用したサポートデスク業務の改善
iret
0
150
第178回 雲勉 Amazon EKSをオンプレで! Amazon EKS Anywhere 実践構築ガイド
iret
1
120
第177回 雲勉 IdP 移行を楽に!Amazon Cognito でアプリへの影響をゼロにするアイデア
iret
0
110
第176回 雲勉 VPC 間サービス接続を考える!Private Service Connect 入門
iret
0
100
第175回 雲勉 Amazon ECS入門:コンテナ実行の基本を学ぶ
iret
0
140
第174回 雲勉 Google Agentspace × ADK Vertex AI Agent Engineにデプロイしたエージェントを呼び出す
iret
0
180
Other Decks in Technology
See All in Technology
GitHub Copilot app最速の発信の裏側
tomokusaba
1
190
【Snowflake Summit 2026 Recap!!】Snowflake Summit Deep Dive: Security & Governance
civitaspo
1
270
AIネイティブな開発のサプライチェーンリスク対策 〜激動の開発現場でリスクに立ち向かう〜【ZennFes】
cscengineer
PRO
2
140
現地で盛り上がった WWDC26 Keynote
zozotech
PRO
1
270
SteampipeとExcel Power QueryでAWS構成定義書の作成を自動化する
jhashimoto
0
160
Kiro Ambassador を目指す話
k_adachi_01
0
110
AIチャット検索改善の3週間
kworkdev
PRO
2
140
ロボティクスの技術 / Robotics Technology
ks91
PRO
0
110
AI駆動開発を通して感じた、 AI時代のデザイナーの役割変化
whisaiyo
4
2.3k
「勝手に広まる」人気 AI エージェントを爆速で作ろう!(AWS Summit Japan 2026講演資料)
minorun365
PRO
8
1.9k
10年間のブログ発信を振り返って見えたWebアプリケーションエンジニアとしての軌跡
stefafafan
0
160
Kubernetesにおける学習基盤とLLMOpsの概要
ry
1
320
Featured
See All Featured
A Tale of Four Properties
chriscoyier
163
24k
Designing Powerful Visuals for Engaging Learning
tmiket
1
420
Believing is Seeing
oripsolob
1
150
Code Review Best Practice
trishagee
74
20k
SEO Brein meetup: CTRL+C is not how to scale international SEO
lindahogenes
1
2.7k
ReactJS: Keep Simple. Everything can be a component!
pedronauck
666
130k
Groundhog Day: Seeking Process in Gaming for Health
codingconduct
0
210
Design and Strategy: How to Deal with People Who Don’t "Get" Design
morganepeng
133
19k
Heart Work Chapter 1 - Part 1
lfama
PRO
7
36k
Paper Plane (Part 1)
katiecoart
PRO
0
9.1k
Code Reviewing Like a Champion
maltzj
528
40k
Building a A Zero-Code AI SEO Workflow
portentint
PRO
0
600
Transcript
第142回 雲勉 AWS Backupの復元テストで 自動化できること・できないこと
講師自己紹介 2 畠山大治 ⚫ 所属:クラウドインテグレーション事業部 アイレット歴は1年ちょっと ⚫ 業務:インフラ構築、監視設計・設定 ⚫ 趣味:Perfumeを追いかける
読書、映画・アニメを見る ⚫ 認定:AWS Community Builders 2024 Japan AWS Top Engineers 2024 Japan AWS All Certifications Engineers iretテクニカルアンバサダー ご質問は YouTubeのコメント欄で受け付けております。 後日回答させていただきます!
アジェンダ 3 ⚫ AWS Backupの復元テストについて ➢ 復元テストとは ➢ オンデマンド復元との違い ⚫
実際に使ってみた ➢ 前提、検証で使った構成紹介 ➢ 復元テストの設定手順 ⚫ つまずきと解決策 ➢ 復元テストでできなかったこと ➢ 解決策と実装方法
AWS Backupの復元テストについて 4
復元テストとは 5 ⚫ AWS Backupで取得したバックアップの復元を自動化できる機能 ➢ バックアップボールトに保存されている復旧ポイントからの復元を スケジューリングできる ⚫ 作成されたリソースの削除まで自動で実行してくれる
➢ 復元時に自動的に付与されるタグを元に削除対象を判定 ⚫ 復元テストの成功/失敗は「復元ジョブ」の中で確認可能 ➢ EventBridgeを使うことで失敗した時の通知ができる
オンデマンド復元との違い 6 ⚫ アドホックに復元を実行する「オンデマンド復元」もある
オンデマンド復元との違い 7 ⚫ 復元するタイミング・頻度 ➢ 復元テスト:定期実行される ➢ オンデマンド復元:一時的な復元 ⚫ リージョン
➢ 復元テスト:一部リージョン(GovCloudリージョンや中国リージョン)で利用不可 ➢ オンデマンド復元:AWS Backupが提供されているリージョンなら使用可能 ⚫ 復元実行後の挙動 ➢ 復元テスト:復元されたリソースは削除される ➢ オンデマンド復元:復元されたリソースはそのまま残る
実際に使ってみた 8
前提、検証で使った構成紹介 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つのステップを踏むことで復元テストの設定が完了する ※バックアッププランやルール、ボールトの設定は完了済みの前提 ⚫ 復元テストプランの作成 ➢ スケジュール設定や、復元テストで使用するバックアップボールトの設定を行う ⚫ リソースの割り当て
➢ 作成した復元テストを適用するリソースを選択 ➢ 復元するために必要なパラメータもここで設定
復元テストの設定手順 12 AWS Backup の画面から 「復元テスト」をクリック 「復元テストプランを作成」 をクリック
復元テストの設定手順:復元テストプランの作成 13 復元テストプランの設定内容 ⚫ 復元テストプラン名 ⚫ テストのスケジュール設定 ➢ 復元テストを実施する頻度 ➢
開始する時刻 ➢ cron式での設定も可能
復元テストの設定手順:復元テストプランの作成 14 復元テストプランの設定内容 ⚫ 復元テストで使用するバックアップ ボールトの設定 ➢ どのボールトを使用するのか ➢ ボールトの中で復元テストの対象にする
復旧ポイントの範囲
復元テストの設定手順:リソースの割り当て 15 復元テストプランの作成が完了すると リソース割り当ての設定画面に遷移する ⚫ 保持期間 ➢ 復元されたリソースをどれくらいの期間 保持しておくかを設定 ⚫
復旧するリソースの種類の設定 ➢ ボールトにバックアップされているリソース の中で、どれを復元テストの対象にするか
復元テストの設定手順:リソースの割り当て 16 ⚫ 復元パラメータの設定 ➢ 復元するために必要なパラメータを設定 ➢ 復元するリソースの種類によって設定するパラ メータが変わる ➢
FSxの場合は… • ファイルシステムを作成するサブネット • 優先サブネット • Managed Microsoft Active Directory のID (該当する場合のみ設定) など
復元テストの設定手順 17 設定完了!
つまずきと解決策 18
復元テストでできなかったこと 19 復元テストの実行まで待機していると、なぜか復元ジョブが失敗…
復元テストでできなかったこと 20 復元ジョブを確認すると、何かしらのパラメータが足りないため失敗したと いうエラーが発生していた (翻訳) バックアップは、セルフマネージドADに結合されたファイルシステム用に作成されました。 そこからファイルシステムを作成するには、AWS directory ID または
SelfManagedActiveDirectoryConfiguration のいずれかを持つ WindowsConfiguration を 提供してください。
復元テストでできなかったこと 21 ほぼ同じ設定で実行したオンデマンド復元の復元パラメータと比較 “windowsconfigration” 配下の ”SelfManagedActiveDirectoryConfiguration” というパラメータがごっそり欠落していた 失敗した復元テスト 成功したオンデマンド復元
復元テストでできなかったこと 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 スケジューラー 復元ジョブの 成功
解決策と実装方法 29 1. オンデマンド復元の実行 SSM Parameter Storeに暗号化して 保存してあるADの認証情報を取得
解決策と実装方法 30 1. オンデマンド復元の実行 対象のバックアップボールトに 存在する復旧ポイント一覧を取得
解決策と実装方法 31 1. オンデマンド復元の実行 取得したリカバリポイント一覧の中で 一番最近取得されたものをピックアップ するLambda関数を呼び出す
解決策と実装方法 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" } }
解決策と実装方法 33 1. オンデマンド復元の実行 オンデマンド復元が開始したら、復元 ジョブのIDをパラメータストアに保存 (保存したIDは次の処理で使用)
解決策と実装方法 34 2. FSxにタグ付けする EventBridgeルールから渡されたジョブ IDを、前の処理でParameter Storeに 保存したジョブIDと比較
解決策と実装方法 35 2. FSxにタグ付けする 比較の結果によって処理を分岐 ・一致すればAdd Tagを実行 ・一致しなければEnd(何もせず終了)を実行
解決策と実装方法 36 2. FSxにタグ付けする 復元されたFSxに対してタグをつける
解決策と実装方法 37 3. FSxを削除する FSx一覧を取得し、特定のタグがついてる ファイルシステムの名前を抽出する
解決策と実装方法 38 3. FSxを削除する 抽出した結果によって処理を分岐 ・一つでも該当のリソースがあれば DeleteFileSystemsを実行 ・一つもなければNoFileSystemsToDelete を実行(何も処理せず終了)
解決策と実装方法 39 3. FSxを削除する 該当リソースに対してDeleteFileSystem アクションを実行 ※該当リソースが複数あることを想定して Mapステートを利用
まとめ 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