【AWS】RDSのバックアップ設定とリストア手順!保存先・保持期間も解説
生徒
「先生、AWS RDSのバックアップって自動で取ってくれるんですか?あと、リストアの手順も知りたいです。」
先生
「良い質問ですね。AWS RDSでは、自動バックアップ機能が用意されていて、設定することで簡単にデータを保護できますよ。」
生徒
「なるほど!でも、バックアップの保存先とか、どれくらい保持されるのかも気になります。」
先生
「では、AWS RDSのバックアップ設定から、保存先や保持期間、そしてリストアの手順まで、丁寧に解説していきましょう。」
1. AWS RDSのバックアップとは?
AWS RDS(アールディーエス)は、マネージドなリレーショナルデータベースサービスです。バックアップ機能を活用することで、データの消失リスクを最小限に抑えることができます。
RDSのバックアップには、次の2種類があります。
- 自動バックアップ
- スナップショット(手動バックアップ)
それぞれの特徴を理解して使い分けることが重要です。
2. 自動バックアップの設定と保持期間
自動バックアップは、インスタンス作成時に有効化される機能で、指定した保持期間にわたってバックアップが自動的に保存されます。保持期間は1日〜35日の範囲で設定できます。
自動バックアップは、Amazon S3に保存され、ストレージ料金が発生しますが、インスタンスサイズと同容量までは無料で利用可能です。
設定はマネジメントコンソール、CLI、APIのいずれでも可能です。以下はコンソールでの設定例です。
自動バックアップの設定手順(AWSマネジメントコンソール)
- RDSのダッシュボードを開く
- 対象のインスタンスを選択
- [変更] をクリック
- [バックアップ] セクションで保持期間と開始時間を設定
- [続行] → [変更の適用]
3. 手動バックアップ(スナップショット)の特徴と使い方
スナップショットは、任意のタイミングで作成する手動バックアップです。保持期間の制限がなく、削除するまで保存され続けます。
スナップショットの用途としては、リリース前の状態保存や定期バックアップに使われます。作成手順もシンプルです。
スナップショットの作成手順
- RDSダッシュボードでインスタンスを選択
- [スナップショットの作成] をクリック
- 名前を指定し [スナップショットの作成]
4. バックアップの保存先はどこ?
自動バックアップもスナップショットも、保存先はAmazon S3(エスリー)になります。S3は耐久性の高いストレージサービスで、AWSが内部的に利用してバックアップデータを管理しています。
ユーザーが直接S3のバケットにアクセスするわけではなく、RDSの操作を通して管理する形式です。
5. バックアップからのリストア方法(復元手順)
AWS RDSでは、バックアップから新しいインスタンスとしてリストア(復元)することが可能です。既存のデータベースを上書きすることはありません。
以下に、復元の手順を示します。
自動バックアップからのリストア手順
- RDSのダッシュボードで「データベース」から[アクション] → [ポイントインタイムの復元]
- リストア元となる時間を指定
- 新しいインスタンス名などを設定
- [データベースの復元] を実行
スナップショットからのリストア手順
- [スナップショット] タブを開く
- 対象のスナップショットを選び [スナップショットから復元]
- インスタンス設定を入力
- [データベースの作成]
6. バックアップの費用と注意点
RDSの自動バックアップは、インスタンスと同じサイズのバックアップまでは無料で提供されます。ただし、保持期間が長くなると超過分に料金がかかる点に注意しましょう。
また、スナップショットについても保存する容量に応じて課金されます。不要になったスナップショットは定期的に削除するようにしましょう。
7. CLIでのバックアップ確認と復元操作
AWS CLIを使えば、より細かいバックアップ管理が可能になります。例えば、以下のコマンドでスナップショット一覧を取得できます。
aws rds describe-db-snapshots --db-instance-identifier your-db-instance
スナップショットから復元するには、次のようにします。
aws rds restore-db-instance-from-db-snapshot \
--db-instance-identifier new-db-instance \
--db-snapshot-identifier snapshot-id
8. 自動バックアップとスナップショットの違い
違いを簡単に表にまとめると、以下のようになります。
| 項目 | 自動バックアップ | スナップショット |
|---|---|---|
| 作成タイミング | 自動(指定時間帯) | 手動 |
| 保持期間 | 最大35日 | 無制限(削除まで) |
| 用途 | 障害対応・自動復旧 | 任意の状態保存 |
| コスト | インスタンスと同量までは無料 | 使用容量に応じて課金 |
まとめ
AWS RDSのバックアップとリストアの仕組みを全体的にふり返ると、クラウド上でデータベースを安全に運用するための多くの工夫が用意されていることが改めて理解できます。とくに「自動バックアップ」と「スナップショット」という二つの方法を適切に使い分けることで、障害発生時にすばやく復旧し、任意の時点へ復元する柔軟なデータ管理が可能になります。保持期間を自由に設定できる自動バックアップは日常的な保護に向き、永続的に残せるスナップショットは重要なリリース前後の保護やテンポラリ環境の作成にも活用できます。こうした仕組みにより、RDSは初心者でも安心してリレーショナルデータベースを扱える環境を提供しているといえるでしょう。
また、バックアップの保存先としてAmazon S3が内部的に利用されている点は、RDSが高い耐久性と信頼性を実現している理由の一つです。ユーザーが意識しなくてもS3の堅牢なストレージに保管されるため、データ消失のリスクを大幅に下げることができます。さらに、リストア時には既存のインスタンスを上書きせず「新しいインスタンス」として復元される仕様になっているため、元のデータベースを保持したまま検証環境を作るといった柔軟な運用も可能です。障害対応、検証用途、開発サイクルの効率化など、多くの実務で役立つ仕組みがそろっています。
自動バックアップでは保持期間の設定がとくに重要で、システム規模や運用ポリシーに合わせて1~35日の中から適切な期間を選ぶことが求められます。保持期間が長ければバックアップを遡れる範囲が広くなりますが、その分ストレージコストも増えるため、運用とコストのバランスも考える必要があります。スナップショットの場合は無制限に保存できますが、自動削除されないため、不要なスナップショットが膨らんでいないか定期的に確認する運用も重要です。こうしたルールを決めておくことで、RDSを長期的に安定運用できる基盤が整います。
RDSのバックアップやリストアは、AWSマネジメントコンソールから簡単に操作できますが、AWS CLIやAPIを利用することで、より自動化された運用や定型作業の効率化も可能になります。たとえば、定期的にスナップショット一覧を取得したり、自動で検証環境を構築したりする場合には、CLIによるスクリプト化が有効です。次の例は、CLIでスナップショット一覧を取得し、必要に応じて復元を行う基本的な操作です。
aws rds describe-db-snapshots --db-instance-identifier sample-db
aws rds restore-db-instance-from-db-snapshot \
--db-instance-identifier restored-db \
--db-snapshot-identifier sample-snapshot
このようにRDSのバックアップとリストアを理解し、コンソールとコマンドの両方を使いこなせると、データベース運用の自由度は大きく広がります。特に本番環境の障害対応では迅速な判断が求められるため、どのバックアップから復元できるのか、どのスナップショットが最新なのかなど、普段から把握しておくことが重要になります。システムの規模が大きくなるほどバックアップ管理も複雑になるため、RDSの仕組みを理解し、適切なタイミングでバックアップを見直す習慣をつけておくことがクラウド運用における大きな強みとなります。
実際のデータベース接続を行うプログラムからも、バックアップ環境への接続は通常のRDSと同じ操作で行えます。たとえば復元したインスタンスへJavaから接続するサンプルコードを以下に示します。エンドポイントを変更するだけで済むため、バックアップ復元後の動作確認も容易に行えます。
import java.sql.Connection;
import java.sql.DriverManager;
public class RdsBackupTest {
public static void main(String[] args) throws Exception {
String url = "jdbc:mysql://restored-endpoint.rds.amazonaws.com:3306/appdb";
String user = "admin";
String password = "mypassword";
Connection conn = DriverManager.getConnection(url, user, password);
System.out.println("バックアップから復元したRDSへ接続できました");
}
}
このようにAWS RDSのバックアップとリストアの仕組みを理解しておくことで、万が一の障害時でも迅速に対応できるだけでなく、開発環境や検証環境を柔軟に構築するうえでも大きなメリットがあります。初心者の段階では「バックアップは自動」「スナップショットは手動」「復元は新しいインスタンスとして作成される」という3点をまず押さえ、操作に慣れていくことでより高度な運用設計にも応用できるようになります。
生徒
「バックアップとスナップショットの違いがやっと理解できました。リストアするときに新しいインスタンスになるのも便利ですね!」
先生
「そうですね。既存のデータベースを壊さずに復元できるので、検証にも活用しやすいんですよ。保持期間や費用のことも理解しておくと、より安全に運用できます。」
生徒
「CLIでバックアップ一覧を取れるのも便利だと思いました。スクリプト化したら作業も効率化できそうです!」
先生
「その通りです。自動化を取り入れるとクラウド運用はもっと快適になります。次は実際にバックアップ設定を触って、どんな動作になるのか確かめてみましょう。」