こんな状況は、世代管理の設定が不十分な場合によく起きます。
Azureのプライベートクラウド(VNet内のVM)でも、Azure Backupを使えばデイリー・ウィークリー・マンスリーの世代管理を体系的に構成できます。
この記事では、Recovery ServicesコンテナーとAzure Backupを使い、VMバックアップの世代管理ポリシーを設定する手順を解説します。
プライベートエンドポイントを使ってバックアップ通信をVNet内に閉じる構成も取り上げます。
想定環境は、Azure VNet上のLinux VM(Ubuntu 22.04 LTS ~ RHEL 9系)です。
この記事のポイント
・Recovery Servicesコンテナーの作成からVMの保護設定まで手順を解説
・デイリー・ウィークリー・マンスリーの世代管理ポリシーをJSONで定義できる
・プライベートエンドポイントでバックアップ通信をVNet内に閉じる方法も説明
・よくある失敗エラーと対処法もまとめて紹介
でも安心してください。プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
Azure BackupとRecovery Servicesコンテナーの基本
Azure Backupは、VMのバックアップデータをRecovery Servicesコンテナーで管理するサービスです。スナップショット方式とは異なり、バックアップデータをAzure管理のストレージに長期保持できる点が特徴です。
Azureのプライベートクラウド構成では、VMはVNet内に配置され、パブリックなエンドポイントへの通信を制限していることが多くあります。
そのため、Azure Backupをプライベートクラウドで使う場合は、プライベートエンドポイントの設定を合わせて行うことが推奨されています。
コスト設計に不安がある場合は、Azureの実践セミナーで料金体系の全体像から学ぶのも有効です。
Recovery Servicesコンテナーを作成する
1. リソースグループとコンテナーの作成
az CLI(Azure CLI)でRecovery Servicesコンテナーを作成します。事前に `az login` でサインインしておいてください。
# リソースグループを作成する az group create \ --name rg-backup-demo \ --location japaneast # Recovery Servicesコンテナーを作成する az backup vault create \ --resource-group rg-backup-demo \ --name rsv-backup-demo \ --location japaneast
{ "name": "rsv-backup-demo", "type": "Microsoft.RecoveryServices/vaults", "location": "japaneast", "properties": { "provisioningState": "Succeeded" } }
2. バックアップポリシーの設定(世代管理)
Azure Backupの世代管理は、バックアップポリシーで定義します。デイリー・ウィークリー・マンスリーの保持期間を組み合わせたカスタムポリシーを作成します。
まず、既定のポリシー一覧を確認します。
# 既定ポリシーの一覧を確認する az backup policy list \ --resource-group rg-backup-demo \ --vault-name rsv-backup-demo \ --query "[].name" \ --output tsv
DefaultPolicy EnhancedPolicy
本番環境では、週次・月次の世代も保持するカスタムポリシーの作成をお勧めします。
次のJSONファイル(policy.json)を作成してから、カスタムポリシーを登録します。
# policy.json を作成する cat > policy.json << 'EOF' { "schedulePolicy": { "schedulePolicyType": "SimpleSchedulePolicy", "scheduleRunFrequency": "Daily", "scheduleRunTimes": ["2026-01-01T23:00:00Z"] }, "retentionPolicy": { "retentionPolicyType": "LongTermRetentionPolicy", "dailySchedule": { "retentionTimes": ["2026-01-01T23:00:00Z"], "retentionDuration": { "count": 30, "durationType": "Days" } }, "weeklySchedule": { "daysOfTheWeek": ["Sunday"], "retentionTimes": ["2026-01-01T23:00:00Z"], "retentionDuration": { "count": 12, "durationType": "Weeks" } }, "monthlySchedule": { "retentionScheduleFormatType": "Weekly", "retentionScheduleWeekly": { "daysOfTheWeek": ["Sunday"], "weeksOfTheMonth": ["First"] }, "retentionTimes": ["2026-01-01T23:00:00Z"], "retentionDuration": { "count": 12, "durationType": "Months" } } } } EOF # カスタムポリシーを登録する az backup policy create \ --resource-group rg-backup-demo \ --vault-name rsv-backup-demo \ --name CustomRetentionPolicy \ --policy @policy.json \ --backup-management-type AzureIaasVM
・デイリー: 毎日バックアップ、30日間保持
・ウィークリー: 毎週日曜日バックアップ、12週間保持
・マンスリー: 毎月第1日曜日バックアップ、12ヶ月保持
3. VMにバックアップポリシーを適用する
作成したポリシーを対象のVMに適用します。# バックアップ対象VMのリソースIDを取得する VM_ID=$(az vm show \ --resource-group rg-vm-demo \ --name vm-linux-demo \ --query id \ --output tsv) # VMのバックアップを有効にする az backup protection enable-for-vm \ --resource-group rg-backup-demo \ --vault-name rsv-backup-demo \ --vm "$VM_ID" \ --policy-name CustomRetentionPolicy
{ "properties": { "entityFriendlyName": "vm-linux-demo", "operation": "ConfigureBackup", "status": "Completed", "startTime": "2026-11-11T05:30:00Z" } }
バックアップの実行と世代確認
1. 初回バックアップをオンデマンドで実行する
ポリシーを適用しただけでは、スケジュール時刻まで初回バックアップは実行されません。初回は手動で実行して、バックアップが正常に動作することを確認してください。
# コンテナー内のバックアップアイテム名を確認する az backup item list \ --resource-group rg-backup-demo \ --vault-name rsv-backup-demo \ --workload-type VM \ --query "[].name" \ --output tsv # オンデマンドバックアップを実行する # --item-name と --container-name は上記の出力を参照 az backup protection backup-now \ --resource-group rg-backup-demo \ --vault-name rsv-backup-demo \ --item-name "vm;iaasvmcontainerv2;rg-vm-demo;vm-linux-demo" \ --container-name "iaasvmcontainerv2;rg-vm-demo;vm-linux-demo" \ --retain-until 2027-01-01 \ --backup-management-type AzureIaasVM
2. バックアップジョブの完了を確認する
バックアップジョブの状態を確認します。# 最新のバックアップジョブを確認する az backup job list \ --resource-group rg-backup-demo \ --vault-name rsv-backup-demo \ --query "[0].{Status:properties.status,Operation:properties.operation}" \ --output table
Status Operation --------- --------- Completed Backup
3. 復元ポイントの一覧を確認する
世代管理が正しく機能しているか、復元ポイントの一覧で確認します。# 復元ポイントの一覧を確認する az backup recoverypoint list \ --resource-group rg-backup-demo \ --vault-name rsv-backup-demo \ --item-name "vm;iaasvmcontainerv2;rg-vm-demo;vm-linux-demo" \ --container-name "iaasvmcontainerv2;rg-vm-demo;vm-linux-demo" \ --workload-type VM \ --query "[].{Name:name, RecoveryPointTime:properties.recoveryPointTime}" \ --output table
Name RecoveryPointTime --------------------- ------------------------- 7391572481697 2026-11-11T05:32:10+00:00
プライベートエンドポイントでバックアップ通信を閉じる
プライベートクラウド構成では、バックアップ通信をVNet内に閉じるためにプライベートエンドポイントを設定します。NSGでインターネット向き通信をブロックしている環境では、この設定が必要になります。
# Recovery ServicesコンテナーのリソースIDを取得する VAULT_ID=$(az backup vault show \ --resource-group rg-backup-demo \ --name rsv-backup-demo \ --query id \ --output tsv) # プライベートエンドポイントを作成する az network private-endpoint create \ --name pe-backup-demo \ --resource-group rg-backup-demo \ --vnet-name vnet-demo \ --subnet subnet-private \ --private-connection-resource-id "$VAULT_ID" \ --group-id AzureBackup \ --connection-name backup-pe-connection
作成後、プライベートDNSゾーン(privatelink.backup.windowsazure.com)の登録も必要です。
Portalの「プライベートエンドポイント」→「DNS の設定」から自動構成できます。
トラブルシューティング
1. バックアップジョブが「Failed」になる
バックアップジョブが失敗した場合は、ジョブ詳細でエラーコードを確認します。# 失敗ジョブのエラー詳細を確認する az backup job list \ --resource-group rg-backup-demo \ --vault-name rsv-backup-demo \ --status Failed \ --query "[0].properties.errorDetails" \ --output json
・`UserErrorGuestAgentStatusUnavailable`:VM内のAzure Guest Agentが停止しています。VMにSSHしてサービスの状態を確認し、再起動してください
・`ExtensionSnapshotFailedNoNetwork`:NSGやファイアウォールでバックアップ用エンドポイントへの通信がブロックされています。プライベートエンドポイントの設定を確認してください
2. 復元ポイントが期待どおりに保持されない
世代管理ポリシーの設定後、復元ポイントがすぐに複数件表示されないことがあります。スケジュール時刻(`scheduleRunTimes`)はUTC表記で指定するため、JSTとの9時間の差に注意してください。
UTC 23:00はJST換算で翌日08:00です。
「翌朝08:00ごろにバックアップが完了する」と把握しておくと分かりやすいです。
本記事のまとめ
AzureプライベートクラウドでVMバックアップの世代管理を構成する手順をまとめます。| やりたいこと | コマンド |
|---|---|
| Recovery Servicesコンテナーを作成する | az backup vault create |
| 世代管理ポリシーを登録する | az backup policy create --policy @policy.json |
| VMにポリシーを適用する | az backup protection enable-for-vm |
| オンデマンドバックアップを実行する | az backup protection backup-now |
| バックアップジョブの状態を確認する | az backup job list |
| 復元ポイントの一覧を確認する | az backup recoverypoint list |
まずは検証環境でカスタムポリシーを構成し、復元ポイントが正しく作成されることを確認してから本番環境に適用してください。
Azure環境でのLinuxサーバー構築から運用管理まで体系的に学べるセミナーを開催しています。
詳細はこちら>> Azureハンズオンセミナー
3,100名以上が実践した「型」を無料で公開中
プロのエンジニアはコマンドを暗記していません。
「現場で使える型」を効率よく使いこなしているだけです。
その「型」を図解60Pにまとめた入門マニュアルを、完全無料でプレゼントしています。
姓・名・メールの3つだけ/30秒/解除は3秒 / 詳細はこちら
- 前のページへ:azure高速ネットワーク有効化後のDPDKをLinux VMで設定する|SR-IOVとethtoolで動作確認
- この記事の属するカテゴリ:Azureへ戻る

無料メルマガで学習を続ける
Linuxの実践スキルをメールで毎週お届け。
登録は30秒、解除もいつでも可。
登録無料・いつでも解除できます