目次
AWS Backup 完全ガイド v2.0
目次
- ドキュメントメタデータ
- 概要と課題
- アーキテクチャと設計原則
- 対応リソース
- バックアッププランの構成
- バックアップボールト
- クロスリージョン・クロスアカウント
- 増分バックアップと PITR
- Audit Manager とコンプライアンス
- 主要ユースケース
- 設定・操作の具体例
- 類似サービス比較
- ベストプラクティス
- トラブルシューティング
- 2025-2026 最新動向
- 学習リソース
- 実装例
- 導入ロードマップ
- まとめ
ドキュメントメタデータ
- 最終更新: 2026-04-26
- バージョン: v2.0
- 対象者: ストレージ管理者、クラウドセキュリティエンジニア、コンプライアンスマネージャー
- 難易度: 中級~上級
概要と課題
本質
AWS Backup は、「複数の AWS サービス(EC2、RDS、EFS、DynamoDB など)のバックアップをポリシーベースで一元管理するフルマネージドサービス」である。個別サービスのスナップショット機能を直接使うことも可能だが、コンプライアンス要件・保持期間の統制・クロスアカウント管理・改ざん防止が必要な場合は AWS Backup の導入が実質必須。
このサービスを選ぶ理由
なぜ AWS Backup でないといけないのか?
-
バックアップポリシーの一元管理
- EC2 スナップショット、RDS 自動バックアップ、DynamoDB テーブルバックアップを個別管理すると、スケール時に統一性が失われ、保持期間・リージョンコピー戦略が散在
- AWS Backup は単一のバックアッププランで複数サービスを統制
- タグベースの自動リソース割り当てで新規 EC2 インスタンス自動保護
-
コンプライアンス可視化と証拠収集
- SOC 2・ISO 27001・HIPAA・PCI DSS 監査でバックアップの証拠が必要
- Audit Manager が日次レポートを自動生成し、「全 RDS が 7 日以上保持されているか」を記録
- 個別サービスでは監査証跡の一元化が困難
-
ランサムウェア対策(Vault Lock)
- Compliance モード Vault Lock で「誰も削除・変更できないバックアップ」を強制実現
- 管理者権限で削除されても Vault Lock で阻止
- WORM(Write-Once-Read-Many)要件を満たす
-
クロスアカウント・クロスリージョン複製
- Organizations 全体の本番アカウントバックアップを中央管理アカウント + 別リージョンに自動複製
- 本番アカウント侵害時も別アカウントのバックアップから復旧可能
-
Organizations ガバナンス
- Backup Policies を Service Control Policy のように全アカウントに強制適用
- 新規アカウント作成時に自動的にバックアップ要件が適用される
このサービスを選ばない理由
- 単一サービスのクイック試験用(個別スナップショットで十分)
- バックアップ要件が全くない非本番環境
- 非常にシンプルな保持ルール(1 種類のみ)
アーキテクチャと設計原則
全体構成
┌─ Backup Plan(定義)
│ └─ Rules(スケジュール、保持期間、ライフサイクル、コピー)
│ └─ Resource Assignment(タグ or リソース ID)
│ └─ Backup Vault(保存先、KMS 暗号化)
│ └─ AWS リソース復元
│
└─ Monitoring & Compliance
├─ Audit Manager(日次コンプライアンスレポート)
├─ CloudWatch(メトリクス・アラーム)
└─ EventBridge(イベント駆動アクション)
mermaid ダイアグラム 1: バックアッププランの階層構造
graph TB
subgraph Org["AWS Organizations"]
Mgmt["管理アカウント<br/>Backup Central"]
Prod["本番アカウント<br/>Production"]
Dev["開発アカウント<br/>Development"]
end
subgraph BackupInfra["Backup Infrastructure"]
Plan1["Backup Plan: Daily"]
Rule1["Rule: 毎日 02:00"]
Vault1["Vault: Warm<br/>30日保持"]
Vault2["Vault: Cold<br/>365日保持"]
end
subgraph Resources["AWS Resources"]
EC2["EC2 インスタンス<br/>Tag: Backup=daily"]
RDS["RDS DB<br/>Tag: Backup=daily"]
EFS["EFS FS<br/>Tag: Backup=daily"]
end
subgraph Compliance["Compliance"]
Audit["Audit Manager<br/>日次レポート"]
Reports["コンプライアンス<br/>ダッシュボード"]
end
Prod --> Plan1
Dev --> Plan1
Plan1 --> Rule1
Rule1 --> Vault1
Vault1 -.->|30日後| Vault2
EC2 --> Plan1
RDS --> Plan1
EFS --> Plan1
Plan1 --> Audit
Audit --> Reports
mermaid ダイアグラム 2: クロスアカウント・クロスリージョン構成
graph LR
subgraph ProdAccount["本番アカウント<br/>(ap-northeast-1)"]
Resources["EC2, RDS, EFS<br/>本番データ"]
end
subgraph BackupCentral["バックアップ中央アカウント<br/>(ap-northeast-1)"]
Vault1["Vault: Primary<br/>Warm Storage"]
end
subgraph DRRegion["DR リージョン<br/>(eu-west-1)"]
Vault2["Vault: Replica<br/>Cold Storage"]
end
subgraph ComplianceAccount["コンプライアンスアカウント<br/>(ap-northeast-1)"]
VaultLock["Vault Lock<br/>Compliance Mode"]
end
Resources -->|自動複製| Vault1
Vault1 -->|クロスリージョン| Vault2
Vault1 -->|ファンイン| VaultLock
Vault2 -->|90日後| ColdStorage["Deep Archive"]
対応リソース
フルサポート対象(Backup ARN 発行)
| サービス | リソースタイプ | 特徴 |
|---|---|---|
| Compute | EC2(EBS ボリューム含む) | EBS-backed AMI の完全スナップショット |
| Storage | EBS、EFS、FSx(Windows/Lustre/ONTAP/OpenZFS)、S3 | ストレージ全体を保護 |
| Database | RDS(全エンジン)、Aurora、Aurora DSQL、DynamoDB、DocumentDB、Neptune、Redshift、Timestream | PITR 対応状況は各サービス依存 |
| Container | EKS(クラスタ + PV) | EBS/EFS PersistentVolume が対象 |
| Migration | Storage Gateway Volume Gateway | スナップショット自動取得 |
| その他 | CloudFormation スタック、VMware Cloud on AWS、SAP HANA | アプリレベルバックアップも可能 |
フル管理対象リソース(特別機能)
フルマネージド対象リソースでは以下が実現:
-
独立した暗号化
- ソースリソースの KMS キーとは別のボールトキーで暗号化
- キー侵害のリスク分離
-
Backup ARN
arn:aws:backup:*:*:backup:...で IAM ポリシーがソースリソース ARN と独立- バックアップアクセス制御の細粒度化
-
統合課金
- ストレージ、転送、復元、早期削除が「Backup」行に集約
- Cost Explorer での追跡が容易
バックアッププランの構成
バックアッププランの構造
BackupPlan:
BackupPlanName: "Enterprise-Daily"
Rules:
- RuleName: "DailyBackup"
TargetBackupVaultName: "vault-warm"
ScheduleExpression: "cron(0 2 ? * * *)" # 毎日 02:00 UTC
StartWindowMinutes: 60
CompletionWindowMinutes: 120
Lifecycle:
MoveToColdStorageAfterDays: 30
DeleteAfterDays: 90
CopyAction:
DestinationVaultArn: "arn:aws:backup:eu-west-1:...:backup-vault:..."
Lifecycle:
MoveToColdStorageAfterDays: 60
DeleteAfterDays: 2555 # 7年
RecoveryPointTags:
Environment: "Production"
BackupSchedule: "Daily"
- RuleName: "MonthlyRetention"
TargetBackupVaultName: "vault-warm"
ScheduleExpression: "cron(0 2 1 * ? *)" # 毎月1日 02:00 UTC
Lifecycle:
DeleteAfterDays: 2555 # 7年
AdvancedBackupSettings:
WindowsVSS: true # Windows 環境での VSS (Volume Shadow Copy)
代表的なパターン
パターン 1: コンプライアンス保持(医療・金融)
- 毎日 → 7日保持(Warm)
- 毎週 → 13週保持(Warm)
- 毎月 → 7年保持(Cold)
パターン 2: ホットスタンバイ + アーカイブ
- 毎時 → 24時間保持(Warm)
- 毎日 → 30日保持(Warm)
- 毎月 → 365日保持(Cold)
パターン 3: 開発環境(コスト最適化)
- 毎日 → 7日保持(Warm)
- (アーカイブなし)
バックアップボールト
Vault の種類
1. Standard Vault
一般的なバックアップ保存用。デフォルト設定。
aws backup create-backup-vault \
--backup-vault-name "standard-vault" \
--encryption-key-arn "arn:aws:kms:ap-northeast-1:...:key/..."
2. Logically Air-Gapped Vault
2025 新機能。ネットワークで隔離されたバックアップ格納。
aws backup create-backup-vault \
--backup-vault-name "airgapped-vault" \
--backup-vault-type "LOGICAL" \
--min-retention-days 30
特徴:
- バックアップへのアクセスに Multi-Party Approval が必須
- 本番アカウント侵害時も approval queue でアクセス阻止
- 2026 新機能: GuardDuty Malware Protection 統合
3. Vault Lock
WORM(Write-Once-Read-Many)実装。削除・変更を防止。
aws backup put-backup-vault-lock-configuration \
--backup-vault-name "compliant-vault" \
--min-retention-days 2555 \
--lock-configuration '{"ChangeableForDays": 30, "MaxRetentionDays": 3650}'
Governance vs Compliance モード:
| モード | 変更可能性 | 用途 |
|---|---|---|
| Governance | 30 日チェーンジウィンドウで管理者が変更可能 | テスト環境 |
| Compliance | 変更不可(有効期限中) | 本番・コンプライアンス |
Vault ポリシー(アクセス制御)
{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {
"AWS": "arn:aws:iam::ACCOUNT-ID:role/BackupRole"
},
"Action": [
"backup:DescribeBackupVault",
"backup:StartRestoreJob"
],
"Resource": "*"
},
{
"Effect": "Deny",
"Principal": "*",
"Action": [
"backup:DeleteBackupVault",
"backup:PutBackupVaultLockConfiguration"
],
"Resource": "*"
}
]
}
クロスリージョン・クロスアカウント
クロスリージョンコピー
本番リージョン(ap-northeast-1)
↓ 自動複製(Backup Plan で指定)
DR リージョン(eu-west-1)
↓ 90日後に Cold Storage 移行
Glacier Deep Archive(eu-west-1)
実装:
aws backup create-backup-plan \
--backup-plan '{
"BackupPlanName": "MultiRegionPlan",
"Rules": [
{
"RuleName": "DailyWithCR",
"TargetBackupVaultName": "vault-ap",
"ScheduleExpression": "cron(0 2 ? * * *)",
"CopyActions": [
{
"DestinationVaultArn": "arn:aws:backup:eu-west-1:123456789012:backup-vault:vault-eu",
"Lifecycle": {
"MoveToColdStorageAfterDays": 90,
"DeleteAfterDays": 2555
}
}
]
}
]
}'
クロスアカウント(Organizations 統合)
前提条件
- AWS Organizations が構成されていること
- 中央管理アカウント側で Backup 委任アカウントを設定
実装フロー
1. 管理アカウント → ポリシー定義(Backup Policy)
└─ 全メンバーアカウントに「バックアップが必須」を強制
2. 委任アカウント(Backup Central)
└─ バックアッププラン作成
└─ 全アカウントリソースを自動認識・保護
3. メンバーアカウント(Production)
└─ 自動的にバックアップ対象に
└─ Backup Central の Vault に自動複製
4. 復旧時
└─ Backup Central から復旧許可を得て実施
Organizations Policy の設定:
aws organizations put-policy \
--content file://backup-policy.json \
--type BACKUP_POLICY \
--name "RequireBackup"
{
"BackupPolicy": {
"Version": "2021-06-04",
"Statement": [
{
"Sid": "RequireBackup",
"Effect": "Allow",
"Action": [
"backup:CreateBackupPlan",
"backup:StartBackupJob"
],
"Resource": "*",
"Condition": {
"StringEquals": {
"backup:BackupVaultName": "central-vault"
}
}
}
]
}
}
増分バックアップと PITR
増分バックアップ
初回フル、以降は差分のみ保存。ストレージコスト・転送時間削減。
対応リソース:
- EC2(EBS-backed)
- EBS ボリューム
- RDS
- EFS
- FSx
- DynamoDB(PITR)
仕組み:
Day 1: Full Backup (100 GB)
Day 2: Incremental (5 GB only) - 差分のみ
Day 3: Incremental (3 GB only) - 差分のみ
...
Total Storage: 108 GB(変分全体)instead of 300 GB (100×3)
PITR(Point-in-Time Recovery)
特定の時点のスナップショットに復元。トランザクションログで秒単位精度。
リソース別 PITR サポート
| リソース | PITR 対応 | 保持期間 | 用途 |
|---|---|---|---|
| RDS | ✅ | 35 日 | 誤削除・データ破損からの復旧 |
| Aurora | ✅ | 35 日 | クエリエラーからの復旧 |
| DynamoDB | ✅ | 35 日 | 突然の削除行動からの復旧 |
| S3 | ✅(Batch) | 35 日 | バージョニング + Lifecycle |
| DocumentDB | ✅ | 35 日 | データベースレベルロールバック |
RDS PITR 復旧例:
aws rds restore-db-instance-to-point-in-time \
--source-db-instance-identifier "prod-db" \
--target-db-instance-identifier "prod-db-recovered" \
--restore-time "2026-04-25T14:30:00Z" \
--availability-zone "ap-northeast-1a"
Audit Manager とコンプライアンス
Audit Manager 概要
日次で自動的にバックアップコンプライアンスをチェック、証拠を収集。
組み込みコントロール例
| コントロール | チェック内容 | 失敗条件 |
|---|---|---|
BackupEnabled |
リソースがバックアップ対象か | バックアップなし |
MinRetentionDays |
最小保持日数の遵守 | < 指定日数 |
BackupVaultLock |
Vault Lock の有効化 | ロックなし |
EncryptionEnabled |
KMS 暗号化の有効化 | 暗号化なし |
CrossRegionCopy |
クロスリージョン複製 | 複製なし |
コンプライアンスレポート生成
# 日次レポートを S3 に出力
aws backup-audit-manager get-compliance-summary \
--region ap-northeast-1
# 出力:
# {
# "ComplianceSummary": {
# "CompliantResourceCount": {
# "CoveragePercentage": 95.0
# },
# "NonCompliantResourceCount": {
# "CoveragePercentage": 5.0
# }
# },
# "LastUpdatedTime": "2026-04-26T10:30:00Z"
# }
2025 新機能: Multi-Party Approval
Logically Air-Gapped Vault でのバックアップアクセスに複数承認者の署名が必要。
# Approval Request の確認
aws backup get-recovery-point-restore-metadata \
--backup-vault-name "airgapped-vault" \
--recovery-point-arn "arn:aws:backup:..." \
--require-approval-count 2
主要ユースケース
1. エンタープライズ全社バックアップ基盤
要件:
- 全 AWS リソース(EC2、RDS、DynamoDB)の一元管理
- コンプライアンス(SOC 2、ISO 27001)対応
- クロスアカウント・クロスリージョン複製
Solution:
- Organizations Backup Policy で全メンバーアカウントに強制
- 委任アカウントで中央管理
- Vault Lock (Compliance Mode) で改ざん防止
- Audit Manager で日次レポート自動生成
結果: バックアップ管理工数 90% 削減、監査証拠の一元化達成
2. ランサムウェア対策
要件:
- バックアップの削除・変更防止
- 本番アカウント侵害時の隔離復旧
Solution:
- Vault Lock (Compliance Mode) で削除防止
- Logically Air-Gapped Vault でネットワーク隔離
- 別アカウントでのバックアップ保管
- GuardDuty Malware Protection で悪意ある復旧検知
結果: ランサムウェア攻撃後も 99.9% データ復旧率
3. 医療データの 7 年保持要件
要件:
- HIPAA 準拠(医療データ 7 年保持)
- 監査証拠の自動収集
Solution:
- バックアッププラン: 日次 → 7 年保持
- Vault Lock で保持期間を技術的に強制
- Audit Manager で「全バックアップが 7 日以上保持」を証明
結果: 監査時に 1 クリックで証拠提出、監査対応期間 60% 短縮
4. 開発環境の経済的バックアップ
要件:
- 低コスト
- 開発効率向上
Solution:
- 日次バックアップのみ 7 日保持
- Cold Storage への移行なし
- タグベースで Dev タグ付きリソースを自動対象化
結果: バックアップコスト 80% 削減
5. マルチテナント SaaS 環境
要件:
- テナント別のバックアップ分離
- テナント別の復旧権限制御
Solution:
- テナント ID でタグ付け
- テナント別 Vault を作成
- Vault ポリシーでテナント間アクセス禁止
- IAM ロールでテナント別アクセス制御
結果: テナント間のデータ漏洩リスク排除
6. DynamoDB テーブルの世界規模レプリケーション
要件:
- グローバル Replication
- リージョン障害時の高速復旧
Solution:
- PITR で秒単位の復旧精度
- 複数リージョンのバックアップ自動複製
- DynamoDB Global Tables と併用
結果: RPO 5 分、RTO 15 分達成
7. マイグレーション前後の安全性確保
要件:
- オンプレから AWS へのスムーズな切り替え
- ロールバック可能性の確保
Solution:
- Source: オンプレミス DB バックアップ(3 日保持)
- During: AWS RDS バックアップ開始
- After: オンプレミス バックアップ保持(30 日)
- 問題発生時は 30 日以内にロールバック可能
結果: マイグレーション失敗リスク低減、ビジネス継続性確保
設定・操作の具体例
AWS CLI / SDK 実装
1. 基本的なバックアッププラン作成
# Step 1: Backup Vault を作成
aws backup create-backup-vault \
--backup-vault-name "production-vault" \
--encryption-key-arn "arn:aws:kms:ap-northeast-1:123456789012:key/..."
2. バックアッププラン定義
# backup-plan.json の作成
cat > backup-plan.json << 'EOF'
{
"BackupPlanName": "Production-Daily",
"Rules": [
{
"RuleName": "DailySnapshot",
"TargetBackupVaultName": "production-vault",
"ScheduleExpression": "cron(0 2 ? * * *)",
"StartWindowMinutes": 60,
"CompletionWindowMinutes": 120,
"Lifecycle": {
"MoveToColdStorageAfterDays": 30,
"DeleteAfterDays": 90
},
"CopyActions": [
{
"DestinationVaultArn": "arn:aws:backup:eu-west-1:123456789012:backup-vault:dr-vault",
"Lifecycle": {
"MoveToColdStorageAfterDays": 60,
"DeleteAfterDays": 2555
}
}
],
"RecoveryPointTags": {
"Environment": "Production",
"ScheduleType": "Daily"
}
}
]
}
EOF
# バックアッププラン作成
aws backup create-backup-plan --backup-plan file://backup-plan.json
3. リソース割り当て(タグベース)
# タグベースの割り当て
aws backup create-backup-selection \
--backup-plan-id "plan-abcd1234" \
--backup-selection '{
"SelectionName": "TagBasedSelection",
"Type": "TAGS",
"ListOfTags": [
{
"ConditionType": "STRINGEQUALS",
"ConditionKey": "Backup",
"ConditionValue": "Daily"
}
],
"Resources": ["arn:aws:ec2:*:*:instance/*", "arn:aws:rds:*:*:db/*"]
}'
4. Vault Lock の設定(Compliance)
aws backup put-backup-vault-lock-configuration \
--backup-vault-name "production-vault" \
--min-retention-days 2555 \
--lock-configuration '{
"ChangeableForDays": 30,
"MaxRetentionDays": 3650
}'
# Lock を有効化(確定)
aws backup delete-backup-vault-lock-configuration \
--backup-vault-name "production-vault" # 実際には confirm が必要
5. Logically Air-Gapped Vault(2025)
aws backup create-backup-vault \
--backup-vault-name "airgapped-vault" \
--backup-vault-type "LOGICAL" \
--min-retention-days 30
# Multi-Party Approval の設定
aws backup put-backup-vault-access-policy \
--backup-vault-name "airgapped-vault" \
--policy '{
"Version": "2012-10-17",
"Statement": [
{
"Effect": "Allow",
"Principal": {"AWS": "arn:aws:iam::123456789012:role/RecoveryRole"},
"Action": ["backup:DescribeRecoveryPoint", "backup:StartRestoreJob"],
"Resource": "*",
"Condition": {
"StringEquals": {"backup:recoveryPointRequiresApproval": "true"}
}
}
]
}'
6. Python SDK でのバックアップ復旧
import boto3
from datetime import datetime, timedelta
backup = boto3.client('backup', region_name='ap-northeast-1')
# 直近 7 日のリカバリーポイント一覧を取得
recovery_points = backup.list_recovery_points_by_backup_vault(
BackupVaultName='production-vault',
ByBackupType='SNAPSHOT',
ByResourceType='EBS'
)
print(f"Found {len(recovery_points['RecoveryPoints'])} recovery points")
# 特定のリカバリーポイントから復旧
latest_rp = recovery_points['RecoveryPoints'][0]
restore_job = backup.start_restore_job(
RecoveryPointArn=latest_rp['RecoveryPointArn'],
IamRoleArn='arn:aws:iam::123456789012:role/RestoreRole',
Metadata={
'availabilityZone': 'ap-northeast-1a',
'encrypted': 'true'
}
)
print(f"Restore Job ID: {restore_job['RestoreJobId']}")
# 復旧ジョブの状態確認(ポーリング)
while True:
job_status = backup.describe_restore_job(
RestoreJobId=restore_job['RestoreJobId']
)
status = job_status['RestoreJob']['Status']
print(f"Status: {status}")
if status in ['COMPLETED', 'FAILED', 'ABORTED']:
break
time.sleep(10)
7. Terraform による完全な IaC 構成
# 1. Backup Vault の作成
resource "aws_backup_vault" "production" {
name = "production-vault"
kms_key_arn = aws_kms_key.backup.arn
force_destroy = false
tags = {
Environment = "Production"
}
}
# 2. Vault Lock(Compliance Mode)
resource "aws_backup_vault_lock_configuration" "production" {
backup_vault_name = aws_backup_vault.production.name
min_retention_days = 30
max_retention_days = 3650
changeable_for_days = 30 # Governance モードなら指定
}
# 3. バックアッププラン
resource "aws_backup_plan" "production" {
name = "Production-Daily"
rule {
rule_name = "DailySnapshot"
target_backup_vault_name = aws_backup_vault.production.name
schedule = "cron(0 2 ? * * *)" # 毎日 02:00 UTC
start_window = 60
completion_window = 120
lifecycle {
move_to_cold_storage_after = 30
delete_after = 90
}
copy_action {
destination_vault_arn = "arn:aws:backup:eu-west-1:123456789012:backup-vault:dr-vault"
lifecycle {
move_to_cold_storage_after = 60
delete_after = 2555 # 7年
}
}
recovery_point_tags = {
Environment = "Production"
ScheduleType = "Daily"
}
}
tags = {
Environment = "Production"
}
}
# 4. バックアップセレクション(タグベース)
resource "aws_backup_selection" "production" {
name = "TagBasedSelection"
plan_id = aws_backup_plan.production.id
iam_role_arn = aws_iam_role.backup.arn
selection_tag {
type = "STRINGEQUALS"
key = "Backup"
value = "Daily"
}
resources = [
"*" # タグでフィルタリングされる
]
}
# 5. IAM ロール
resource "aws_iam_role" "backup" {
name = "AWSBackupRole"
assume_role_policy = jsonencode({
Version = "2012-10-17"
Statement = [
{
Action = "sts:AssumeRole"
Effect = "Allow"
Principal = {
Service = "backup.amazonaws.com"
}
}
]
})
}
# 6. IAM ポリシー(AWS 管理ポリシー)
resource "aws_iam_role_policy_attachment" "backup" {
role = aws_iam_role.backup.name
policy_arn = "arn:aws:iam::aws:policy/service-role/AWSBackupServiceRolePolicyForBackup"
}
# 出力
output "backup_vault_arn" {
value = aws_backup_vault.production.arn
}
output "backup_plan_id" {
value = aws_backup_plan.production.id
}
類似サービス比較
| 項目 | AWS Backup | EBS Snapshots | RDS Backups | AWS DataSync |
|---|---|---|---|---|
| 対象 | 複数サービス統合 | EBS のみ | RDS のみ | ファイル同期 |
| 保持管理 | ポリシーベース一元化 | 手動管理 | 自動バックアップ | N/A |
| ライフサイクル | ✅(Cold Storage) | ✅(古いスナップショット削除) | ✅(自動削除) | N/A |
| クロスリージョン | ✅ 自動 | △ 手動コピー | ✅ 手動コピー | ✅ |
| Vault Lock | ✅(WORM) | ❌ | ❌ | ❌ |
| Audit Manager | ✅(コンプライアンス可視化) | ❌ | ❌ | ❌ |
| コスト | ストレージ + 転送 | ストレージのみ | ストレージのみ | 転送量 |
選択基準
- 複数サービス一元管理 + コンプライアンス: AWS Backup
- 単純なスナップショット: 個別サービス(EBS、RDS)
- ファイル転送・同期: AWS DataSync
- ランサムウェア対策必須: AWS Backup + Vault Lock
ベストプラクティス
✅ 推奨事項
-
タグベースの自動割り当て
- リソース作成時に自動的にバックアップ対象化
- 例: Backup: Daily, Backup: Weekly, Backup: None
-
ポリシーベースの保持期間管理
- 保持期間をコード化
- 手動削除リスク排除
-
Vault Lock による保護
- 本番環境は Compliance Mode で変更防止
- 開発環境は Governance Mode で柔軟対応
-
クロスアカウント・クロスリージョン複製
- 本番アカウント侵害時の復旧経路確保
- 地理的分散による災害対応
-
Audit Manager による日次監視
- コンプライアンス自動チェック
- 監査証拠の自動収集
-
IAM ポリシーの最小権限設定
- 復旧権限と削除権限の分離
- リソース毎のアクセス制御
-
定期的なリストア演習
- テスト環境で復旧手順検証
- RTO/RPO 要件の確認
-
CloudWatch アラーム設定
- バックアップ失敗時の通知
- Cold Storage 移行状況の監視
❌ アンチパターン
-
バックアップ計画なしの個別スナップショット → 保持期間・リージョン戦略が散在 → 改善: AWS Backup の導入
-
Vault Lock なしの長期保持 → 誤削除やランサムウェアリスク → 改善: Compliance Mode Vault Lock 必須
-
単一リージョンのみの保管 → リージョン障害時にデータロス → 改善: クロスリージョン複製設定
-
復旧計画がない → 障害時に復旧方法が不明 → 改善: 定期的なリストア演習実施
-
コンプライアンスレポートなし → 監査対応が困難 → 改善: Audit Manager 有効化
トラブルシューティング
| 症状 | 原因 | 対策 |
|---|---|---|
| バックアップ失敗 | IAM ロール権限不足 | ポリシー確認、AWSBackupServiceRolePolicyForBackup アタッチ |
| リソース自動割り当てなし | タグが正しくない | リソースタグ確認、バックアップセレクション再設定 |
| Cold Storage 移行遅い | ライフサイクル設定なし | ルールの MoveToColdStorageAfterDays を確認 |
| クロスリージョンコピー失敗 | DR リージョンの Vault なし | Destination Vault ARN を確認・作成 |
| 復旧ジョブ失敗 | リソースが削除済み | リソース存在確認、新規リソースへの復旧 |
| Vault Lock 設定失敗 | Lock 期間中の再設定 | ChangeableForDays ウィンドウを待機 |
| Multi-Party Approval 承認遅い | 承認者の反応不足 | 承認プロセスの SLA 確認 |
2025-2026 最新動向
1. Logically Air-Gapped Vault(2025 実装済)
概要: バックアップへのアクセスを物理的にネットワーク隔離。Multi-Party Approval で承認必須化。
用途: ランサムウェア対策のデファクトスタンダード化
2. GuardDuty Malware Protection 統合(2025-11)
概要: バックアップの復旧時に自動的にマルウェア検査を実行。悪意ある復旧を防止。
対応リソース: EC2 EBS スナップショット、RDS データベース
3. Audit Manager 拡張(6 リージョン対応)
2025: Audit Manager がアジアパシフィック地域(ap-northeast-1, ap-southeast-1)で利用可能化
4. Backup Plan API の充実(2025-10)
新機能: Backup Jobs API で Vault Lock 状態、暗号化キー情報、計画名・ルール名を取得可能に
学習リソース
公式ドキュメント
AWS ブログ
相互比較・ベンダー
- Veeam Backup & Replication: ハイブリッド統合バックアップ
- Commvault: エンタープライズバックアッププラットフォーム
- Rubrik: API-first バックアップ&復旧
- Cohesity: ハイパースケールバックアップ
実装例
小規模(スモールビジネス)
構成: 1 つのバックアップボールト、日次バックアップ、30 日保持
# バックアップボールト作成
aws backup create-backup-vault \
--backup-vault-name "small-business-vault"
# バックアッププラン(単純)
aws backup create-backup-plan --backup-plan '{
"BackupPlanName": "SimpleDailyBackup",
"Rules": [{
"RuleName": "Daily",
"TargetBackupVaultName": "small-business-vault",
"ScheduleExpression": "cron(0 2 ? * * *)",
"Lifecycle": {"DeleteAfterDays": 30}
}]
}'
# monthly costs: $1-5 storage + minimal backup charges
中規模(成長企業)
構成: 複数ボールト(Warm/Cold)、クロスリージョン、Audit Manager
# Terraform による完全構成
resource "aws_backup_vault" "warm" {
name = "warm-vault"
}
resource "aws_backup_vault" "cold" {
name = "cold-vault"
}
resource "aws_backup_plan" "enterprise" {
name = "Enterprise-MultiRegion"
rule {
rule_name = "Daily"
target_backup_vault_name = aws_backup_vault.warm.name
schedule = "cron(0 2 ? * * *)"
lifecycle {
move_to_cold_storage_after = 30
delete_after = 90
}
copy_action {
destination_vault_arn = "arn:aws:backup:eu-west-1:...:backup-vault/dr"
}
}
}
# monthly costs: $500-2000 depending on data volume
大規模エンタープライズ
構成: Organizations 全体管理、Vault Lock、Logically Air-Gapped、GuardDuty
#!/bin/bash
# 全アカウント統合バックアップ
# 1. Organizations Backup Policy
aws organizations put-policy \
--name "RequireBackup" \
--type BACKUP_POLICY \
--content file://backup-policy.json
# 2. 中央委任アカウントでのボールト作成
for region in ap-northeast-1 eu-west-1; do
aws backup create-backup-vault \
--backup-vault-name "central-vault-$region" \
--region $region
# Vault Lock (Compliance)
aws backup put-backup-vault-lock-configuration \
--backup-vault-name "central-vault-$region" \
--min-retention-days 2555 \
--region $region
done
# 3. Audit Manager 有効化
aws backup-audit-manager enable \
--region ap-northeast-1
# monthly costs: $5,000-50,000+ depending on organization size
導入ロードマップ
Phase 1: 計画・設計(2-4 週間)
- [ ] 現行バックアップ構成の棚卸し
- [ ] RTO/RPO 要件の確認
- [ ] コンプライアンス要件の整理
- [ ] アーキテクチャ設計(Vault 数、保持ルール)
- [ ] Cost 見積もり
Phase 2: パイロット(1-2 か月)
- [ ] テスト環境でバックアップ実施
- [ ] リストア手順の検証
- [ ] パフォーマンス・コスト確認
- [ ] チーム トレーニング
Phase 3: 本番展開(2-4 か月)
- [ ] 本番環境でのバックアップ実装
- [ ] タグベースのリソース自動割り当て
- [ ] Vault Lock 有効化
- [ ] Audit Manager 有効化
- [ ] 個別バックアップ機能の廃止検討
Phase 4: 最適化・継続運用
- [ ] コスト最適化(Cold Storage 活用)
- [ ] リストア演習の定期実施
- [ ] ポリシーの見直し
- [ ] 新機能(Logically Air-Gapped など)の導入
まとめ
AWS Backup は 複数の AWS サービスのバックアップをコード化・自動化・監査可能にするエンタープライズ基盤。
主な価値
- ポリシーベース管理: 保持期間・リージョン戦略の統制
- コンプライアンス自動化: Audit Manager による日次証拠収集
- ランサムウェア対策: Vault Lock + Logically Air-Gapped による二重防御
- コスト最適化: Cold Storage ライフサイクル で長期保持コスト削減
- Organizations 統合: 全アカウント一元管理
次のステップ
- PoC: テスト環境でバックアップ実施
- 設計: RTO/RPO・保持期間・リージョン戦略確定
- 実装: 本番環境でのバックアップ展開
- 最適化: Cold Storage・Vault Lock・Audit Manager の活用
注意事項
- Vault Lock 設定後は変更に時間がかかる(ChangeableForDays)
- 定期的なリストア演習で実運用検証を実施
- 2026年以降の新機能(GuardDuty 統合など)の活用
最終更新: 2026-04-26 バージョン: v2.0