プロンプトとコンテキスト
あなたの担当するB2B SaaSで、顧客が誤ってデータを削除する事象が頻発していますが、プラットフォームにはデータベース全体のバックアップしかありません。テナント単位のポイントインタイムリストアを提供しますか?ユーザー、境界、リスク、メトリクス、段階的なローンチ計画を説明してください。
AWSは、マルチテナントのパーティショニングモデルがテナントの分離性と選択的リストアの複雑さに直接影響すると指摘しています。CISAは、オフラインで暗号化されたバックアップと定期的な復旧テストを推奨しています。この面接では、すべてのタイムスタンプを無損失で復元できるという約束ではなく、プロダクトとしての判断力が試されます。
面接官が確認しているポイント
面接官は、真の受益者と高価値なシナリオを特定できるか、エクスポート、アンドゥ、ゴミ箱、ポイントインタイムリストアを明確に区別できるか、データと権限の境界を定義できるか、そしてRPO、RTO、コスト、サポート負荷、セキュリティリスクをトレードオフできるかを見ています。単にボタンを表示するだけでなく、復旧の品質をどのように証明するかを説明する必要があります。
最初に確認すべき明確化のための質問
- 削除によって影響を受けるオブジェクト、テナント規模、ワークフロー、コンプライアンス義務は何か?
- 顧客が必要としているのはテナント全体か、オブジェクトのサブセットか、それとも数件のレコードか?
- 現在のバックアップ粒度、保持期間、テナントパーティション、ログ、復旧訓練の状況はどのようになっているか?
- リストア後、新規データ、外部同期、権限、監査、検索インデックスはどのように動作するか?
- 目標とするRPO、RTO、許容される競合、支払い意欲(WTP)はどの程度か?
- 誰がリストアをリクエストでき、二重承認やサポートの関与が必要か?
30秒での回答
「まず、削除が頻発しており、コストが大きく、エクスポートやゴミ箱では解決できないことを確認します。実施する価値がある場合は、管理者がリクエストする分離プレビューから開始します。本番環境を上書きするのではなく、指定した日時のテナントスコープの一時空間を作成し、顧客が差異を確認した上でインポートを選択できるようにします。リストア成功率、RTO、競合率、分離イベント、コスト、サポートチケット数で価値を検証します。セルフサービスを開放する前に、制御されたテナント、明示的な復元不可オブジェクト、承認、監査、ロールバック境界を備えた単一のパーティションモデルでパイロット運用を行います」
ステップごとの詳細な回答
ステップ1:課題と代替案の検証
削除インシデント、サポートチケット、エクスポートの利用状況、ビジネス損失を分析します。ゴミ箱、オブジェクトのバージョン管理、監査証跡によるアンドゥ、エクスポートと再インポート、ポイントインタイムリストアを、カバー範囲とコストの観点から比較します。インシデントの大部分が直近の少数のオブジェクトに関するものであれば、テナント全体の復旧を製品化する前に、リスクの低い代替案を改善します。
ステップ2:顧客と提供価値(プロミス)の定義
復旧の責任者が明確な管理者、コンプライアンスチーム、または高価値なオペレーターから始めます。提供価値は、測定可能なRPO、RTO、保持期間、オブジェクトスコープとして表現します。外部システム、リアルタイムのコラボレーション状態、または完全にパージされたデータは自動的に復元されない可能性があることを明記します。
ステップ3:リストア粒度とインタラクションの選択
テナント全体のリストアは実装がシンプルですが破壊的です。オブジェクト単位のリストアは安全ですが、依存関係グラフ、競合ルール、より多くの実装が必要になります。デフォルトでは、タイムスタンプ、オブジェクト数、参照関係、権限の変更、推定所要時間を表示する読み取り専用プレビューを提供し、その後管理者がインポートのスコープを選択できるようにします。
ステップ4:分離性と一貫性の設計
リストアスナップショットは本番環境から分離されている必要があり、他のテナントがその一時空間に侵入してはなりません。インポート前に、ユニークキー、バージョン、削除状態、オブジェクト間参照、検索インデックス、非同期ジョブ、外部Webhookをチェックします。一貫して復元できないオブジェクトは、サイレントに破棄または上書きするのではなく、リスト化して明示します。
ステップ5:認可と二重確認の処理
明示的に認可されたテナント管理者のみが復旧をリクエストできるようにします。高リスクなリストアには、2回目の確認、クーリング期間、または2名による承認を必須とします。イミュータブルな監査イベントを記録し、テナントオーナーおよびセキュリティ担当者に通知し、実行者、タイムスタンプ、スコープ、ソーススナップショット、結果のサマリーを保持します。
ステップ6:コストとキャパシティのモデリング
スナップショットストレージ、トランザクションログのリプレイ、一時データベース、リージョン間転送、同時リストア数、人的サポートを試算します。テナントごとのクォータ、レート制限、有効期限切れ時のクリーンアップを設定します。無料プランでは期間を短くするか手動リクエストにするなどの差をつけますが、実現不可能な復旧の約束を価格設定の背後に隠してはなりません。
ステップ7:訓練によるリストア品質の証明
代表的なテナントを分離環境で定期的に復元し、オブジェクト数、チェックサム、権限、検索、レポート、外部同期を比較します。成功率、所要時間、競合、人的介入、失敗の原因、クリーンアップ時間を追跡します。CISAはバックアップの可用性と完全性を継続的にテストすることを強調しています。セールスデモは復旧訓練ではありません。
ステップ8:段階的なローンチと終了ゲートの定義
単一のパーティションモデル、限定された期間、サポート支援による復旧から開始し、その後より多くのテナントやセルフサービスへと拡大します。ゲートには、リストア成功率、RTO、競合率、分離イベント、復旧単価、チケット削減数が含まれます。メトリクスがゲートを満たさない場合は、より多くのタイムスタンプを約束するのではなく、リクエストを一時停止するかスコープを狭めます。
トレードオフと境界
セルフサービス対支援付き復旧
セルフサービスはサポートコストを削減しますが、ミスや認可のリスクを高めます。支援付き復旧は複雑な競合に対応できますが、スケールしません。まずはプレビュー、承認、監査コントロールを採用し、低リスクでの実績に基づいてセルフサービスの範囲を広げます。
テナント全体対オブジェクトリストア
テナント全体のリストアは迅速に構築できますが、顧客の新規データを上書きする可能性があります。オブジェクトリストアは意図により合致しますが、参照関係と順序の処理が必要です。デフォルトで現在のデータを保護し、明示的なスコープ確認を必須とします。
保持期間対コスト
保持期間を長くすると復旧性は向上しますが、ストレージ、ログ、コンプライアンスのコストが増加します。顧客のリスクとプランに応じて階層化し、利用可能な範囲と価格を公開し、営業上の約束がエンジニアリングのキャパシティ内に収まるようにします。
障害訓練と進化計画
リストア後に新規データが上書きされる
デフォルトで一時空間にリストアし、インポート前に差異を表示して競合を報告します。マージが安全でない場合は両方のバージョンを保持するか、人間による選択を要求します。本番環境を直接上書きしてはなりません。
スナップショットに他テナントのデータが含まれている
テナントフィルター、権限、エクスポート、ログを分離環境でテストし、任意のIDで隣接テナントのデータを読み取れないことを証明するネガティブテストを含めます。情報漏洩が発生した場合は、リストアのエントリポイントを停止し、直ちにセキュリティ対応を開始します。
リストアは成功したが検索とレポートが一致しない
インデックス、キャッシュ、マテリアライズドビュー、非同期ジョブをリストアチェックリストに含め、再構築ステータスと利用可能性のメッセージを提供します。データベースの行数だけでは、使用可能な復旧が行われた証明にはなりません。
よくある間違いとフォローアップ
間違い1:ポイントインタイムリストアをアンドゥボタンとして扱う
フォローアップ:指定した日時以降に作成されたデータはどうなりますか?プレビュー、差異、競合、明示的なインポートについて説明してください。
間違い2:テナント分離に触れずにバックアップについて議論する
フォローアップ:共有テーブル、個別データベース、シャーディングモデルによって、リストアの境界はどのように変化しますか?クロステナントのデータが表示されないことをどのように証明しますか?
間違い3:平均RTOを用いて価値を証明する
フォローアップ:テール所要時間、失敗率、人的介入、ユニットコストをどのように測定しますか?
間違い4:外部システムと権限を無視する
フォローアップ:Webhook、検索インデックス、ロールの変更、監査記録はどうなりますか?明示的に復元できないオブジェクトは何ですか?
フォローアップの質問と回答
どのような場合にポイントインタイムリストアの前にゴミ箱を構築すべきか?
インシデントの大部分が直近に削除された少数のオブジェクトに関わるものであり、ゴミ箱でその損失をカバーできる場合は、ゴミ箱の方が迅速で検証しやすく、競合も発生しにくくなります。オブジェクトやタイムスタンプを横断する場合や、ゴミ箱のスコープを超える高価値なユースケースに対してポイントインタイムリストアを検討してください。
リストアが「時間を巻き戻す」ことではないとどう説明するか?
ソース、タイムスタンプ、オブジェクトスコープ、競合ルール、復元不可オブジェクト、所要時間を説明し、実行前にプレビューを提示します。曖昧な「完全復旧」の約束を、測定可能なRPO、RTO、監査証跡に置き換えます。
どのようなメトリクスがあればローンチを一時停止するか?
クロステナントの分離イベントが発生した場合は、直ちに機能を停止すべきです。継続的なRTO違反、高い競合率、リストア後のインデックスの不整合、または制御不能なユニットコストが発生した場合も、原因とゲートが修正されるまで展開を一時停止する必要があります。