AWS RDSのバックアップとリカバリ設計|自動バックアップ・スナップショット・Point-in-Time Recovery

現場実践|RDSバックアップとリカバリ
AWS RDSのバックアップとリカバリ設計|自動バックアップ・スナップショット・Point-in-Time Recovery
「RDSのバックアップはどう設定すればいい?」「誤ってデータを削除した場合にどうリカバリするか?」——AWS RDSの自動バックアップ・手動スナップショット・Point-in-Time Recovery・クロスリージョンバックアップの実践を解説します。
💡 RDSのバックアップ設定はデータベース設計の最重要事項のひとつ。「バックアップを取っていなかった」「リカバリ手順を知らなかった」は本番環境では許されません。事前に設計・テストをすることが必須です。
1. RDSのバックアップの種類
| 種類 | 自動化 | 保持期間 | 特徴 |
|---|---|---|---|
| 自動バックアップ | 自動(毎日) | 1〜35日(設定可能) | Point-in-Time Recovery(任意の時点へのリストア)が可能 |
| 手動スナップショット | 手動 | 削除するまで無期限 | リリース前・大規模変更前に手動で取得する |
| クロスリージョンコピー | 設定で自動化可 | コピー先の設定による | リージョン障害(DR)対策として別リージョンにコピー |
2. 本番環境の推奨設定
resource "aws_db_instance" "production" {
// ... 基本設定 ...
// バックアップ設定
backup_retention_period = 7 // 7日分の自動バックアップを保持
backup_window = "19:00-20:00" // 日本時間深夜4時(UTC19時)
maintenance_window = "mon:20:00-mon:21:00"
// 削除保護(誤操作防止)
deletion_protection = true
skip_final_snapshot = false // 削除時にスナップショットを取得
final_snapshot_identifier = "production-final-snapshot"
// Performance Insights(クエリ分析)
performance_insights_enabled = true
}3. Point-in-Time Recoveryの手順
1
リカバリ対象の時刻を決める
「誤って削除されたのはいつか」を特定する。CloudTrail・アプリのログ・ユーザーからの報告で時刻を特定する。
2
新しいインスタンスにPoint-in-Time Restoreを実行
AWS ConsoleのRDS→「Restore to point in time」で指定した時刻のデータを新しいインスタンスに復元する(既存インスタンスに上書きはできない)。
3
データを検証してアプリを切り替える
復元したインスタンスのデータを検証してから、アプリケーションの接続先エンドポイントを切り替える。
4. バックアップのリカバリテストの重要性
⚠️ バックアップが取れていても「復元できるか」を定期的にテストすること
バックアップは「取ること」より「確実に復元できること」が重要です。年1回は実際にスナップショットから新しいインスタンスを起動してデータを検証するリカバリドリルを実施することを推奨します。
📌 この記事のポイント
- RDSバックアップは自動(PITR対応・35日まで)と手動スナップショット(無期限)の2種類を使い分ける
- backup_retention_period=7・deletion_protection=true・skip_final_snapshot=falseが本番の基本Terraform設定
- PITRは既存インスタンスへの上書きではなく新インスタンスへの復元。年1回のリカバリドリルで確実性を確認する
キャリアの疑問、一緒に解決しませんか?
Infra Academyでは、インフラ系ITエンジニアを目指す方への個別サポートを行っています。2026年7月からフリーランス講師として本格始動予定です。
ABOUT ME




