バックアップと復元
スナップショット、S3クロスリージョンレプリケーション、AWS Backupポリシーを自動化して最も低コストのDRティアを実装し、復元訓練を行います。
「バックアップと復元」はCoddyKit上の無料AWS Solutions Architectレッスンです。 これはレッスン2/4です。 下記で完全なレッスンを無料で読むことができます。その後、ブラウザ内の組み込みコードエディタと24時間対応のAIチューターでハンズオン演習できます。 これはAWS Solutions Architect学習パスの一部であり、ウェブとCoddyKitアプリ全体で進捗が同期されます。 AWS Solutions Architectコースには全4レッスンが含まれています。
Backup and Restore の基礎
Backup and Restore は、最もシンプルで費用対効果の高いディザスタリカバリ戦略です。データとインフラストラクチャを定期的にバックアップし、耐久性の高い場所(通常は別リージョンの S3)に保存します。災害が発生した場合は、そのバックアップから復元します。維持費は安い一方で、RTO は最も長く(数時間)、RPO も大きくなる可能性があります(最後にバックアップしてからの経過時間)。数時間のダウンタイムが許容される、重要度の低いワークロードに適しています。
# Backup and Restore workflow:
# 1. Create snapshots/backups on a schedule
# 2. Replicate backups to a secondary region
# 3. On disaster:
# a. Launch new infrastructure in DR region
# b. Restore data from most recent backup
# c. Update DNS to point to DR region
# 4. Failback when primary is restoredAWS Backup:バックアップ管理の一元化
AWS Backup は、AWS サービス全体のデータ保護を一元化および自動化するフルマネージドサービスです。EBS ボリューム、RDS データベース、DynamoDB テーブル、EFS ファイルシステム、FSx、EC2 インスタンス、Aurora クラスター、S3 をサポートしています。スケジュール、保持期間、バックアップボールトの保存先を指定したバックアッププランを定義します。AWS Backup は、AWS Organizations を通じて複数アカウントにバックアップポリシーを適用できるため、エンタープライズのバックアップ管理に最適なサービスです。
# Create AWS Backup vault
aws backup create-backup-vault \
--backup-vault-name production-dr-vault \
--encryption-key-arn arn:aws:kms:us-east-1:123:key/abc
# Assign resources to backup plan
aws backup create-backup-selection \
--backup-plan-id <plan-id> \
--backup-selection '{
"SelectionName": "all-production",
"IamRoleArn": "arn:aws:iam::123:role/BackupRole",
"ListOfTags": [{"ConditionType":"STRINGEQUALS","ConditionKey":"Environment","ConditionValue":"production"}]
}'RDS の自動バックアップ
Amazon RDS は、ポイントインタイムリカバリ(PITR)を可能にするため、毎日のスナップショットを自動的に作成し、トランザクションログを取得します。バックアップの保持期間(1~35 日)の範囲内で、任意の秒数時点までデータベースを復元できます。自動バックアップは S3 に保存されます(AWS によって管理されるため、S3 コンソールには表示されません)。クロスリージョン DR では、コンソールまたは CLI を使用してDB スナップショットを別のリージョンにコピーします。このコピーを使用して、災害発生時に新しい RDS インスタンスを起動できます。
# Copy RDS snapshot to DR region
aws rds copy-db-snapshot \
--source-db-snapshot-identifier arn:aws:rds:us-east-1:123:snapshot:rds:mydb-2026-06-21-05-00 \
--target-db-snapshot-identifier mydb-dr-2026-06-21 \
--region us-west-2 \
--copy-tags
# Restore in DR region from copied snapshot
aws rds restore-db-instance-from-db-snapshot \
--db-instance-identifier mydb-dr \
--db-snapshot-identifier mydb-dr-2026-06-21 \
--region us-west-2バックアップのための S3 クロスリージョンレプリケーション
S3 Cross-Region Replication(CRR) は、ソースバケットの新しいオブジェクトを別リージョンの送信先バケットに自動的にレプリケートします。バックアップ用途では、CRR を有効にした S3 バケットにバックアップジョブが書き込むように設定します。バックアップは数分以内に DR リージョンへ自動的にコピーされます。CRR に必要なため、両方のバケットでバージョニングを有効にし、以前のバックアップバージョンを保持できるようにします。さらにS3 Object Lockと組み合わせることで、バックアップを変更不能にし、ランサムウェアから保護できます。
# Enable S3 bucket versioning (required for CRR)
aws s3api put-bucket-versioning \
--bucket my-backups-us-east-1 \
--versioning-configuration Status=Enabled
# Configure Cross-Region Replication
aws s3api put-bucket-replication \
--bucket my-backups-us-east-1 \
--replication-configuration '{
"Role": "arn:aws:iam::123:role/replication-role",
"Rules": [{
"Status": "Enabled",
"Destination": {
"Bucket": "arn:aws:s3:::my-backups-us-west-2",
"StorageClass": "STANDARD_IA"
}
}]
}'EC2 AMI のバックアップとインスタンスの復旧
DR リージョンで EC2 を復旧できるようにするには、本番 EC2 インスタンスからAmazon Machine Images(AMI)をあらかじめ作成し、DR リージョンにコピーします。AMI には、ルートボリューム、インスタンス設定、および必要に応じてデータボリュームが含まれます。災害発生時には、DR リージョンの AMI から新しい EC2 インスタンスを起動し、復元した EBS ボリュームをアタッチします。AWS Backup EC2 resource typeまたはEC2 Image Builderを使用して、ゴールデンイメージのパイプラインで AMI 作成を自動化できます。
# Create AMI from running EC2 instance
aws ec2 create-image \
--instance-id i-1234567890abcdef0 \
--name 'prod-web-server-$(date +%Y%m%d)' \
--no-reboot
# Copy AMI to DR region
aws ec2 copy-image \
--source-region us-east-1 \
--source-image-id ami-12345678 \
--region us-west-2 \
--name 'prod-web-server-dr'DynamoDB のバックアップ:オンデマンドと PITR
DynamoDB には 2 種類のバックアップ方式があります。On-Demand backups は、パフォーマンスに影響を与えずに完全バックアップを即時作成します。無期限に保持でき、数分で復元できます。Point-In-Time Recovery(PITR)を有効にすると、テーブルが過去 35 日間にわたって継続的にバックアップされ、その期間内の任意の秒数時点に復元できます。どちらのバックアップも、クロスリージョンバックアップや AWS Backup との統合のために S3 へエクスポートできます。本番テーブルでは PITR を強く推奨します。
# Enable DynamoDB PITR
aws dynamodb update-continuous-backups \
--table-name Orders \
--point-in-time-recovery-specification PointInTimeRecoveryEnabled=true
# Restore to a specific point in time
aws dynamodb restore-table-to-point-in-time \
--source-table-name Orders \
--target-table-name Orders-DR-Restored \
--restore-date-time '2026-06-21T10:30:00.000Z'AWS Backup による EFS のバックアップ
Amazon EFS は AWS Backup と統合して、毎日のバックアップを自動化できます。EFS のバックアップは増分方式です。初回バックアップ後は変更されたデータのみがコピーされるため、ストレージを効率的に使用できます。バックアップからファイルシステム全体または個別のファイルを復元できます。クロスリージョン DR では、AWS Backup Cross-Region Copy を使用して、EFS のバックアップを DR リージョンのボールトに自動的にコピーします。EFS 自体はすでにリージョン内で Multi-AZ 構成になっているため、クロスリージョンバックアップはリージョン障害のシナリオに備えるものだという点に注意してください。
# AWS Backup plan with cross-region copy for EFS
{
'Rules': [{
'RuleName': 'daily-efs-backup',
'TargetBackupVaultName': 'primary-vault',
'ScheduleExpression': 'cron(0 5 ? * * *)',
'Lifecycle': {'DeleteAfterDays': 7},
'CopyActions': [{
'DestinationBackupVaultArn': 'arn:aws:backup:us-west-2:123:backup-vault:dr-vault',
'Lifecycle': {'DeleteAfterDays': 30}
}]
}]
}バックアップの保持期間とライフサイクルポリシー
すべてのバックアップを永久に保持する必要はありません。RPO とコンプライアンス要件に基づいて、保持戦略を設計してください。一般的なパターンは、毎日のバックアップを 7 日間、週次バックアップを 4 週間、月次バックアップを 12 か月、年次バックアップを 7 年間保持する方法です(Grandfather-Father-Son 方式)。AWS Backup のライフサイクルルールによって、これを自動化できます。S3 に保存するバックアップでは、S3 Lifecycle policies を使用して、古いバックアップを S3 Glacier または Deep Archive に移行すると、ストレージコストを大幅に削減できます。
# S3 lifecycle policy for backup files
aws s3api put-bucket-lifecycle-configuration \
--bucket my-backups \
--lifecycle-configuration '{
"Rules": [{
"ID": "backup-tiering",
"Status": "Enabled",
"Transitions": [
{"Days": 30, "StorageClass": "STANDARD_IA"},
{"Days": 90, "StorageClass": "GLACIER"},
{"Days": 365, "StorageClass": "DEEP_ARCHIVE"}
]
}]
}'バックアップボールトロックと不変性
AWS Backup Vault Lock は WORM(Write Once, Read Many)ポリシーを実装し、ルートユーザーを含む誰もが、期限が切れる前にバックアップを削除したりロックを変更したりできないようにします。これにより、ランサムウェア攻撃や内部脅威からバックアップを保護できます。一度適用すると、Vault Lock を無効にすることはできません。この機能は、不変バックアップを義務付ける規制(SOC 2、PCI DSS、HIPAA)への準拠に不可欠です。バックアップが早期に削除されないように、最小保持期間と最大保持期間を設定してください。
# Apply Backup Vault Lock
aws backup put-backup-vault-lock-configuration \
--backup-vault-name production-dr-vault \
--min-retention-days 7 \
--max-retention-days 365
# Note: Once locked, cannot be unlocked
# Use --changeable-for-days N during initial setup
# for a grace period to change configurationバックアップの復元テスト
バックアップの作成は作業の半分にすぎません。復元が正しく行われ、RTO 以内に完了することを定期的にテストする必要があります。AWS Backup は、スケジュールに従ってバックアップをテスト環境に自動復元し、復元が成功したことを検証する復元テストプランをサポートしています。定期的な復元テストを行わないと、実際の災害時になって初めて、バックアップが破損している、不完全である、または想定より復元に時間がかかることに気付く可能性があります。実際の RTO を示すデータとして、復元にかかった時間を記録してください。
# AWS Backup restore testing (available in newer API)
# Steps to manually test restore:
# 1. Identify most recent successful backup
aws backup list-recovery-points-by-backup-vault \
--backup-vault-name production-dr-vault \
--by-resource-type RDS
# 2. Start restore job
aws backup start-restore-job \
--recovery-point-arn arn:aws:rds:us-east-1:123:snapshot:mydb-recovery \
--iam-role-arn arn:aws:iam::123:role/BackupRestoreRole \
--resource-type RDS \
--metadata RecoveryPointId=...バックアップの監視とアラート
バックアップの失敗は直ちに検知する必要があります。バックアップジョブが失敗すると、次の災害時に最近の復旧ポイントが存在しないことになるためです。AWS Backup notifications を SNS 経由で設定し、バックアップジョブの失敗を通知します。NumberOfBackupJobsFailed などのCloudWatch metricsを使用してアラームを作成します。AWS Config の BACKUP_PLAN_MIN_FREQUENCY_AND_MIN_RETENTION_CHECK などのルールを使用して、リソースに適切なバックアッププランが割り当てられていることを継続的に確認します。バックアップの失敗を、コンプライアンス違反の可能性がある事象として扱ってください。
# SNS notification for backup failures
aws backup put-backup-vault-notifications \
--backup-vault-name production-dr-vault \
--sns-topic-arn arn:aws:sns:us-east-1:123:backup-alerts \
--backup-vault-events \
BACKUP_JOB_FAILED \
RESTORE_JOB_FAILED \
COPY_JOB_FAILEDクイックチェック
このレッスンで学んだ AWS Solutions Architect(SAA-C03)の概念について、理解度を確認しましょう。
レッスンのまとめ
このレッスンでは、AWS Backup は RDS、DynamoDB、EFS、EC2 などのバックアップ管理を一元化すること、S3 Cross-Region Replication はバックアップを DR リージョンへ自動的にコピーすること、そしてBackup Vault Lock はコンプライアンス対応とランサムウェア対策のための不変バックアップを提供することを学びました。実際の RTO を検証するため、必ず復元テストを行ってください。次は Pilot Light と Warm Standby の戦略について見ていきます。
よくある質問
「バックアップと復元」レッスンは無料ですか?
はい。「バックアップと復元」の完全なテキストはこのウェブで無料で読めます。インタラクティブに演習し(組み込みコードエディタと24時間対応のAIチューター)、AWS Solutions Architectコースの残りをアンロックするには、CoddyKit PROにアップグレードしてください。 AWS Solutions Architectコースには全4レッスンが含まれています。
「バックアップと復元」で何を学びますか?
スナップショット、S3クロスリージョンレプリケーション、AWS Backupポリシーを自動化して最も低コストのDRティアを実装し、復元訓練を行います。 ブラウザで直接実行するハンズオンコードでAWS Solutions Architectを演習し、24時間対応のAIチューターがレッスンを進める中での質問に答えます。
AWS Solutions Architectを始めるのに経験は必要ですか?
事前経験は必要ありません。CoddyKitのAWS Solutions Architectは初級者から上級者向けに構成されているため、ここから始めるか最初から始めて、自分のペースで進むことができます。 これはレッスン2/4です。
「バックアップと復元」レッスンにはどのくらい時間がかかりますか?
ほとんどのCoddyKitレッスンは約5~10分かかります。各レッスンはコンパクトでインタラクティブなので、着実に進歩し、ウェブとアプリ全体で正確に前回の場所から再開できます。
このAWS Solutions Architectレッスンでコードを書いて実行できますか?
はい。すべてのAWS Solutions Architectレッスンに組み込みコードエディタが含まれているため、ブラウザでリアルコードを書いて実行し、即座のAIフィードバックを取得できます。ローカル設定は不要です。