PowerShellでAzure Site Recoveryの保護グループを作成し自動フェイルオーバーを構築する方法

Azure Site Recovery(ASR)は、企業の災害対策(DR:Disaster Recovery)として利用されるAzureのサービスです。システム障害や災害時に、業務の継続性を確保するために、仮想マシン(VM)や物理サーバーを別のリージョンへレプリケーションし、必要に応じて迅速にフェイルオーバーを実施することができます。

本記事では、PowerShellを活用してAzure Site Recoveryの保護グループを作成し、自動フェイルオーバーを構築する方法について詳しく解説します。GUI(ポータル)を使用せずにPowerShellスクリプトを用いることで、効率的にASRを導入・管理することが可能になります。また、スクリプトを活用することで、手作業によるミスを防ぎ、複数環境への適用を簡単にすることができます。

記事の流れとしては、以下のポイントを押さえながら、ASRの導入と設定方法を解説します。

  1. Azure Site Recoveryの概要
  2. PowerShellを活用するメリット
  3. ASRの前提条件と準備
  4. 保護グループの作成
  5. レプリケーション設定とポリシーの構成
  6. 自動フェイルオーバーの設定
  7. フェイルオーバーのテストと運用管理

これらの手順を理解し、実際にPowerShellスクリプトを適用することで、Azure環境での可用性を高め、業務継続性を向上させることが可能となります。それでは、Azure Site Recoveryの概要から順番に見ていきましょう。

目次

Azure Site Recoveryとは


Azure Site Recovery(ASR)は、Microsoft Azureが提供する災害復旧(Disaster Recovery, DR)ソリューションです。企業のIT環境を障害や災害から保護し、システムのダウンタイムを最小限に抑えるための重要なツールとなります。ASRは、オンプレミス環境やAzure上の仮想マシン(VM)を別のリージョンにレプリケートし、必要に応じて迅速なフェイルオーバーを実行することで、業務継続を可能にします。

Azure Site Recoveryの主な機能


Azure Site Recoveryには、以下のような主要機能があります。

1. 自動レプリケーション


ASRを利用すると、オンプレミスのサーバーやAzure VMを他のAzureリージョンへ定期的にレプリケートすることができます。これにより、データの最新状態を維持しながら、障害発生時にも素早く復旧が可能です。

2. フェイルオーバーとフェイルバック


障害発生時には、レプリケートされた環境へ自動的または手動でフェイルオーバーが可能です。フェイルオーバー後、元の環境が復旧すれば、フェイルバック(元の環境への復旧)もスムーズに行うことができます。

3. ポリシーベースのレプリケーション管理


レプリケーションの頻度や保存期間を設定することで、業務要件に合わせた柔軟なDR構成が可能です。例えば、15分おきにバックアップを取得するポリシーや、30日分のスナップショットを保存するポリシーを設定できます。

4. 統合された監視と管理


AzureポータルやPowerShell、Azure Monitorを活用し、フェイルオーバーの状態やレプリケーションの健全性を一元管理できます。これにより、障害発生時に迅速な対応が可能となります。

Azure Site Recoveryの活用シナリオ

1. オンプレミス環境の災害対策


オンプレミスのWindows/LinuxサーバーをAzureへレプリケートし、障害発生時にクラウド環境へフェイルオーバーすることで、BCP(事業継続計画)を強化できます。

2. Azure VMの冗長化


Azure上の仮想マシンを別のリージョンへレプリケートし、リージョン障害に備えることが可能です。これにより、Azure環境内での高可用性を確保できます。

3. アプリケーションのテスト環境構築


ASRを活用してレプリケートされた環境をアプリケーションのテストやアップデート検証のための一時的な環境として使用することも可能です。フェイルオーバー後の影響を事前に確認することで、トラブルを未然に防ぐことができます。

Azure Site Recoveryの料金体系


ASRは、レプリケーション対象の仮想マシン単位で課金されます。Azure VMにASRを適用する場合、次のような費用が発生します。

  • ASRの利用料(1 VMあたり月額課金)
  • レプリケーションに伴うストレージコスト(レプリケートされたデータの保存にかかる費用)
  • フェイルオーバー実施時の追加コスト(フェイルオーバー先のVM起動時の従量課金)

コストを最適化するためには、レプリケーションの頻度や保存期間を適切に設定し、必要最小限のリソースで構成することが重要です。

まとめ


Azure Site Recovery(ASR)は、業務の継続性を確保するための災害復旧ソリューションであり、オンプレミス環境・Azure VMのどちらにも対応可能です。自動レプリケーションやポリシーベースの管理機能により、企業のIT環境を効果的に保護できます。次のセクションでは、GUIではなくPowerShellを使用してASRを構成するメリットについて詳しく解説します。

PowerShellを使うメリット


Azure Site Recovery(ASR)は、AzureポータルのGUIを使って設定することも可能ですが、PowerShellを活用することで、より効率的かつ柔軟な管理が可能となります。ここでは、PowerShellを使う利点について詳しく解説します。

1. 自動化と運用効率の向上


PowerShellを利用する最大のメリットは、設定作業をスクリプト化し、自動化できることです。

スクリプトの再利用

  • 一度作成したスクリプトを再利用できるため、同じ設定を複数の環境に適用する際に効率的です。
  • 例えば、新しいVMを追加する際に手作業で設定を行う必要がなく、スクリプトを実行するだけで同じ設定を適用できます。

スケジュール実行が可能

  • WindowsのタスクスケジューラやAzure Automationと組み合わせることで、定期的なバックアップやレプリケーションの設定を自動的に実行することができます。

2. ヒューマンエラーの削減


GUIで手作業を行うと、入力ミスや設定ミスのリスクが発生します。PowerShellを使用することで、スクリプトに基づいた正確な設定が可能となり、ヒューマンエラーを防ぐことができます。

一貫性のある設定

  • スクリプトを使用することで、どの環境でも同じ設定を適用でき、環境ごとの違いを防ぐことができます。
  • 設定内容の記録(スクリプトログ)を残すことができ、トラブルシューティング時に役立ちます。

3. 大規模環境での管理が容易


PowerShellは、大量のVMやサーバーを一括管理する際に特に有効です。

一括設定と管理

  • 多数のVMに対して一括でASRの設定を適用できます。
  • 例えば、100台のVMに対してASRを設定する場合でも、スクリプトを実行するだけで全てのVMに適用されます。

リモート管理

  • PowerShellはAzure上のリソースにリモートからアクセスして操作できるため、オンプレミスのサーバーや異なるリージョンのVMを管理する際にも便利です。

4. 詳細なカスタマイズが可能


AzureポータルのGUIでは、あらかじめ用意されたオプションしか選択できませんが、PowerShellを使うと細かい設定を自由にカスタマイズできます。

ポリシーの柔軟な設定

  • レプリケーションポリシーのレプリケーション頻度や保持期間を細かく設定可能。
  • ASRのネットワーク設定やストレージのカスタマイズも容易に実施できます。

トラブルシューティング

  • PowerShellを使用すると、エラー発生時の詳細なログを取得でき、問題の原因を迅速に特定できます。
  • エラー発生時に自動で通知を送信するスクリプトを組み込むことも可能です。

5. コスト最適化


PowerShellを活用することで、不要なリソースの作成を防ぎ、クラウドコストを削減することができます。

使用状況の監視とレポート

  • PowerShellを使って稼働していない不要なリソースを自動で特定し、削除することで、コストの最適化が可能です。
  • レプリケーションに必要なストレージ使用量をスクリプトで定期的に監視し、適切な管理を行うことができます。

まとめ


PowerShellを使用することで、Azure Site Recoveryの設定を自動化し、効率的に管理することができます。
特に、大規模環境や長期的な運用を考慮する場合、PowerShellを活用することで、作業時間の短縮・設定の一貫性確保・コスト削減といったメリットを享受できます。
次のセクションでは、Azure Site Recoveryを利用するための前提条件と準備手順について詳しく解説します。

Azure Site Recoveryの前提条件と準備


PowerShellを使用してAzure Site Recovery(ASR)を構成する前に、必要な前提条件と準備手順を確認することが重要です。本セクションでは、Azure環境の要件、ASRの設定に必要な権限、PowerShellのセットアップ方法について詳しく解説します。

1. Azure Site Recoveryを利用するための前提条件

1.1. Azure サブスクリプション

  • ASRを利用するにはAzureの有効なサブスクリプションが必要です。
  • 「従量課金」または「Enterprise Agreement(EA)」 などの課金プランが適用されていることを確認してください。
  • サブスクリプションにASRが含まれているかをチェックし、必要であればAzure Recovery Services Vaultを作成しておきます。

1.2. 必要なAzureリソース


ASRを利用するには、以下のAzureリソースが必要です。

必要なリソース説明
Recovery Services VaultASRの管理に必要なストレージボックス
レプリケーション対象のVM保護対象となる仮想マシン
Azure Storageレプリケーションデータの保存先
仮想ネットワーク(VNet)フェイルオーバー後の接続に必要
Azure Site Recovery エージェントレプリケーション対象のVMにインストール

1.3. Azure ADと権限の設定


PowerShellを使用する場合、適切なアクセス権限が必要になります。以下のロールベースアクセス制御(RBAC)の権限を持つアカウントを使用してください。

ロール説明
所有者(Owner)すべての操作が可能
共同作成者(Contributor)リソース作成・管理が可能
バックアップオペレーター(Backup Operator)バックアップ・リストアが可能

サービスプリンシパルを利用する場合は、Azure Active Directory(Azure AD)で適切な権限を持つアプリケーションを作成し、APIアクセスを許可する必要があります。

2. PowerShellのセットアップと環境準備

2.1. PowerShellのインストール


Azureの管理には、Azure PowerShellモジュールが必要です。以下のコマンドを実行し、最新のAzure PowerShellモジュールをインストールしてください。

# PowerShell用Azureモジュールのインストール
Install-Module -Name Az -AllowClobber -Force

また、すでにインストールされている場合は、以下のコマンドで更新できます。

# 最新バージョンに更新
Update-Module -Name Az

2.2. Azureへのログインとサブスクリプションの設定


Azureに接続するには、以下のコマンドを使用してログインします。

# Azureサインイン
Connect-AzAccount

複数のサブスクリプションを利用している場合は、対象のサブスクリプションを設定します。

# 利用可能なサブスクリプション一覧を表示
Get-AzSubscription

# 使用するサブスクリプションを選択
Set-AzContext -SubscriptionId "サブスクリプションID"

2.3. Azure Site Recoveryモジュールの確認


ASRを操作するためのAzure PowerShellモジュールが正しくインストールされているか確認します。

# Azure Site Recoveryモジュールの確認
Get-Module -ListAvailable -Name Az.RecoveryServices

インストールされていない場合は、以下のコマンドで追加します。

# ASR用モジュールのインストール
Install-Module -Name Az.RecoveryServices -Force

3. ASRに必要なネットワーク設定

3.1. ASRで必要なネットワーク構成


Azure Site Recoveryの正常な動作には、適切な仮想ネットワーク(VNet)とパブリックIPの設定が必要です。

  • レプリケーション対象VMとASRストレージは同じリージョン内にあること
  • フェイルオーバー後にVMが接続可能な仮想ネットワーク(VNet)を事前に準備
  • パブリックIPを利用する場合、事前にASRで許可されているIPアドレス範囲を確認

3.2. 必要なポートとURLのホワイトリスト設定


ASRでは、以下の通信ポートとURLのアクセスが必要になります。ファイアウォールやネットワーク制限がある環境では、以下のホワイトリスト設定を適用してください。

ポートプロトコル用途
443TCPAzure Site Recoveryサービスとの通信
9443TCPレプリケーションデータの送信
443, 5985, 5986TCPVMの管理と制御

また、以下のドメインへのアクセスを許可する必要があります。

*.hypervrecoverymanager.windowsazure.com
*.backup.windowsazure.com
*.blob.core.windows.net

まとめ


本セクションでは、Azure Site Recoveryの導入に必要な前提条件と環境設定について説明しました。適切なAzureリソースの準備、必要なPowerShellモジュールのインストール、ネットワークの設定を行うことで、ASRをスムーズに導入し、PowerShellを活用した自動化環境を構築することが可能になります。
次のセクションでは、実際にPowerShellを使用してAzure Site Recoveryをインストールし、構成する手順について解説します。

PowerShellを使用したAzure Site Recoveryのインストールと構成


本セクションでは、PowerShellを活用してAzure Site Recovery(ASR)をインストールし、構成する方法について解説します。手順としては、以下のステップに分けて進めていきます。

  1. Azure Recovery Services Vaultの作成
  2. ASRプロバイダーのインストール
  3. レプリケーションポリシーの作成
  4. フェイルオーバーポリシーの設定

1. Azure Recovery Services Vaultの作成


Azure Site Recoveryを使用するには、Recovery Services Vaultを作成する必要があります。このVaultは、バックアップデータやレプリケーション情報を保存する役割を持っています。

以下のPowerShellコマンドを使用して、Vaultを作成します。

# 必要な変数を定義
$resourceGroup = "ASR-ResourceGroup"
$location = "East US"
$vaultName = "MyRecoveryVault"

# リソースグループの作成(既存の場合はスキップ)
New-AzResourceGroup -Name $resourceGroup -Location $location

# Recovery Services Vaultの作成
New-AzRecoveryServicesVault -ResourceGroupName $resourceGroup -Name $vaultName -Location $location

作成後、Vaultのストレージレプリケーションの種類を設定します(ローカル冗長 or 地理冗長)。

# Recovery Services Vaultのプロパティ設定
$vault = Get-AzRecoveryServicesVault -ResourceGroupName $resourceGroup -Name $vaultName
Set-AzRecoveryServicesBackupProperties -Vault $vault -BackupStorageRedundancy GeoRedundant

2. ASRプロバイダーのインストール


オンプレミスの環境や別リージョンのAzure VMをAzure Site Recoveryに登録するために、ASRプロバイダーをインストールする必要があります。

以下のコマンドで、Azure Site Recoveryのコンポーネントをダウンロードし、インストールします。

# ASRエージェントのダウンロードURLを取得
$downloadURL = "https://aka.ms/ASRUnifiedSetup"

# エージェントのダウンロード(手動でダウンロードが必要)
Start-Process $downloadURL

ダウンロード後、インストーラを実行し、セットアップを完了させます。

3. レプリケーションポリシーの作成


Azure Site Recoveryでは、レプリケーションポリシーを作成して、どのVMをどのストレージにレプリケートするかを定義します。

# レプリケーションポリシーの作成
$policyName = "ASR-Replication-Policy"
$replicationCycle = 15  # レプリケーションの間隔(分単位)
$recoveryPoint = 24      # 保持するリカバリポイントの数

New-AzRecoveryServicesAsrPolicy -Name $policyName -VaultId $vault.Id -ReplicationIntervalInMinutes $replicationCycle -RecoveryPointRetentionInHours $recoveryPoint

レプリケーションポリシーを適用することで、指定したVMのデータが定期的にバックアップされるようになります。

4. フェイルオーバーポリシーの設定


次に、障害発生時のフェイルオーバーポリシーを設定します。フェイルオーバー時に、どのVNetへ切り替えるか、起動オーダーはどうするかを定義します。

# フェイルオーバー時に使用するVNetを取得
$vnet = Get-AzVirtualNetwork -ResourceGroupName $resourceGroup -Name "MyVNet"

# フェイルオーバーポリシーの作成
$failoverPolicy = New-AzRecoveryServicesAsrRecoveryPlan -Name "ASR-Failover-Policy" -VaultId $vault.Id -PrimaryLocation $location -RecoveryLocation "West US"

# フェイルオーバー時にVMを復元するVNetを設定
Set-AzRecoveryServicesAsrRecoveryPlanNetworkMapping -RecoveryPlan $failoverPolicy -SourceNetworkId $vnet.Id -TargetNetworkId $vnet.Id

この設定により、障害が発生した際に自動で別リージョンにフェイルオーバーが行われるようになります。

まとめ


本セクションでは、PowerShellを活用してAzure Site Recoveryのインストールと構成を行う手順について解説しました。具体的には、以下の内容をカバーしました。

  1. Azure Recovery Services Vaultの作成
  2. ASRプロバイダーのインストール
  3. レプリケーションポリシーの設定
  4. フェイルオーバーポリシーの作成

次のセクションでは、PowerShellを使用して保護グループを作成する方法について詳しく解説します。

保護グループの作成手順


Azure Site Recovery(ASR)では、保護グループ(Protection Group)を作成することで、レプリケーション対象のVMをグループ化し、一括管理できます。PowerShellを活用することで、保護グループの作成とVMの追加を効率的に行うことができます。本セクションでは、PowerShellを使用した保護グループの作成手順を詳しく解説します。

1. 保護グループとは


保護グループは、以下の役割を担います。

  • 複数のVMを一括で管理し、レプリケーションポリシーを適用できる
  • 一貫したフェイルオーバー設定を適用し、障害発生時の復旧作業を容易にする
  • VMごとの個別設定を最小限に抑え、管理を簡素化

Azure Site Recoveryでは、Recovery Services Vaultの配下に保護グループを作成し、その中にレプリケートするVMを追加するという構成になります。

2. PowerShellを使用した保護グループの作成


保護グループを作成するには、以下の手順を実施します。

2.1. 必要な変数を定義


まず、作成するリソースの情報を変数として定義します。

# リソースグループ、Vault名、リージョンを指定
$resourceGroup = "ASR-ResourceGroup"
$vaultName = "MyRecoveryVault"
$protectionGroupName = "MyASRProtectionGroup"
$location = "East US"

2.2. Recovery Services Vaultの取得


保護グループを作成するために、既存のRecovery Services Vaultを取得します。

# Recovery Services Vaultを取得
$vault = Get-AzRecoveryServicesVault -ResourceGroupName $resourceGroup -Name $vaultName

2.3. 保護グループの作成


次に、保護グループを作成します。

# 保護グループの作成
New-AzRecoveryServicesAsrProtectionContainer -Vault $vault -Name $protectionGroupName

このコマンドを実行することで、新しい保護グループが作成されます。

3. 保護グループにVMを追加


保護グループを作成したら、対象となるVMを追加します。

3.1. レプリケーション対象のVMを取得


対象のVMを特定するために、リソースグループ内の仮想マシンを取得します。

# レプリケーション対象のVMを取得
$vmName = "MyVirtualMachine"
$vm = Get-AzVM -ResourceGroupName $resourceGroup -Name $vmName

3.2. VMを保護グループに追加


以下のコマンドで、取得したVMを保護グループに追加します。

# 保護グループにVMを追加
New-AzRecoveryServicesAsrReplicationProtectedItem -Vault $vault -ProtectionContainerName $protectionGroupName -VM $vm

この設定により、指定したVMが保護グループの管理下に入り、自動的にレプリケーションが開始されます。

4. 保護グループの状態を確認


作成した保護グループの状態を確認するには、以下のコマンドを実行します。

# 保護グループの一覧を取得
Get-AzRecoveryServicesAsrProtectionContainer -Vault $vault

# 指定した保護グループの詳細を表示
Get-AzRecoveryServicesAsrReplicationProtectedItem -Vault $vault -ProtectionContainerName $protectionGroupName

このコマンドを実行すると、保護グループに含まれるVMのリストや、レプリケーションの進行状況を確認できます。

5. 保護グループの削除(オプション)


不要になった保護グループを削除する場合は、以下の手順を実行します。

5.1. 保護グループ内のVMを削除


まず、保護グループ内のVMを削除します。

# 保護対象のVMを削除
Remove-AzRecoveryServicesAsrReplicationProtectedItem -Vault $vault -ProtectionContainerName $protectionGroupName -Name $vm.Name -Force

5.2. 保護グループの削除


すべてのVMを削除した後、保護グループを削除できます。

# 保護グループの削除
Remove-AzRecoveryServicesAsrProtectionContainer -Vault $vault -Name $protectionGroupName -Force

まとめ


本セクションでは、PowerShellを使用してAzure Site Recoveryの保護グループを作成し、VMを追加する方法について解説しました。具体的には、以下のステップを実施しました。

  1. Recovery Services Vaultを取得
  2. 保護グループを作成
  3. 保護グループにVMを追加
  4. 保護グループの状態を確認
  5. 保護グループの削除(オプション)

保護グループを作成することで、レプリケーション対象のVMを効率的に管理できるようになります。次のセクションでは、レプリケーションの設定とポリシーの構成について詳しく解説します。

レプリケーションの設定とポリシーの構成


Azure Site Recovery(ASR)を利用するためには、レプリケーションの設定とポリシーの構成が必要です。本セクションでは、PowerShellを用いてVMのレプリケーションを設定し、ポリシーを適用する方法について解説します。

1. レプリケーションポリシーとは


レプリケーションポリシーは、レプリケートする頻度や復旧時のリカバリポイントを管理するための設定です。ポリシーの主な要素は以下の通りです。

設定項目説明
レプリケーション頻度どのくらいの間隔でデータを同期するか(15分、30分、1時間 など)
保持する復旧ポイント過去にさかのぼれるリカバリポイントの数(例: 24時間分)
アプリケーション整合性チェックポイントOSやアプリケーションの整合性を確保するためのスナップショット

これらを適切に設定することで、障害発生時に確実に復旧できる環境を構築できます。

2. PowerShellを用いたレプリケーションポリシーの作成


PowerShellを利用して、レプリケーションポリシーを作成し、適用する方法を紹介します。

2.1. 必要な変数を定義


まず、レプリケーションポリシーを作成するために、必要な変数を設定します。

# 変数の定義
$resourceGroup = "ASR-ResourceGroup"
$vaultName = "MyRecoveryVault"
$policyName = "MyASRReplicationPolicy"
$replicationCycle = 15  # レプリケーションの間隔(分単位)
$recoveryPointRetention = 24  # 保持するリカバリポイントの数(時間単位)
$appConsistency = 60  # アプリケーション整合性スナップショットの間隔(分単位)

2.2. Recovery Services Vaultの取得


次に、対象となるRecovery Services Vaultを取得します。

# Recovery Services Vaultの取得
$vault = Get-AzRecoveryServicesVault -ResourceGroupName $resourceGroup -Name $vaultName

2.3. レプリケーションポリシーの作成


以下のコマンドを実行して、レプリケーションポリシーを作成します。

# レプリケーションポリシーの作成
New-AzRecoveryServicesAsrPolicy -VaultId $vault.Id -Name $policyName `
    -ReplicationIntervalInMinutes $replicationCycle `
    -RecoveryPointRetentionInHours $recoveryPointRetention `
    -ApplicationConsistentSnapshotFrequencyInMinutes $appConsistency

このポリシーを適用することで、VMのデータが15分ごとに同期され、過去24時間分の復旧ポイントが保持されるようになります。

3. レプリケーションポリシーをVMに適用


作成したポリシーを特定のVMに適用し、レプリケーションを有効にします。

3.1. レプリケーション対象のVMを取得


レプリケーション対象となるVMを取得します。

# レプリケーション対象のVMの取得
$vmName = "MyVirtualMachine"
$vm = Get-AzVM -ResourceGroupName $resourceGroup -Name $vmName

3.2. レプリケーションポリシーを適用


取得したVMに対して、レプリケーションポリシーを適用します。

# VMにレプリケーションポリシーを適用
Start-AzRecoveryServicesAsrReplicationProtectedItem -VaultId $vault.Id -VM $vm -PolicyName $policyName

このコマンドを実行することで、VMのレプリケーションが開始され、ポリシーに基づいた同期とバックアップが行われるようになります。

4. レプリケーションの状態を確認


レプリケーションの進行状況を確認するには、以下のコマンドを実行します。

# レプリケーションのステータスを取得
Get-AzRecoveryServicesAsrReplicationProtectedItem -Vault $vault -ResourceGroupName $resourceGroup

このコマンドにより、VMのレプリケーション状態や同期状況を確認できます。

5. レプリケーションの無効化(オプション)


レプリケーションを無効化し、ポリシーを削除する場合は、以下のコマンドを使用します。

5.1. レプリケーションを無効化


特定のVMのレプリケーションを無効化するには、以下のコマンドを実行します。

# レプリケーションを無効化
Stop-AzRecoveryServicesAsrReplicationProtectedItem -Vault $vault -Name $vm.Name -Force

5.2. レプリケーションポリシーの削除


不要になったレプリケーションポリシーを削除するには、以下のコマンドを実行します。

# レプリケーションポリシーの削除
Remove-AzRecoveryServicesAsrPolicy -VaultId $vault.Id -Name $policyName -Force

まとめ


本セクションでは、PowerShellを使用してAzure Site Recoveryのレプリケーションポリシーを作成し、VMに適用する手順について解説しました。具体的には、以下の手順を実施しました。

  1. レプリケーションポリシーの作成(同期頻度や復旧ポイントを設定)
  2. レプリケーションポリシーの適用(VMに対してポリシーを適用)
  3. レプリケーションの状態確認(同期状況をチェック)
  4. レプリケーションの無効化(オプション)(不要な場合に解除・削除)

これにより、VMのレプリケーションを自動化し、障害発生時に迅速な復旧が可能な環境を構築できます。次のセクションでは、自動フェイルオーバーの設定について詳しく解説します。

自動フェイルオーバーの設定


Azure Site Recovery(ASR)を利用することで、障害発生時に自動でフェイルオーバーを実行し、ダウンタイムを最小限に抑えることが可能です。本セクションでは、PowerShellを使用して、自動フェイルオーバーの設定方法について解説します。

1. フェイルオーバーとは?


フェイルオーバーとは、システム障害時に自動的にバックアップ環境へ切り替える仕組みです。ASRでは、事前に設定したレプリケーションポリシーに基づき、対象のVMを別リージョンやオンプレミス環境へフェイルオーバーさせることができます。

フェイルオーバーには以下の2種類があります。

フェイルオーバーの種類説明
計画フェイルオーバー(Planned Failover)事前に計画的に実施するフェイルオーバー。メンテナンス時やテスト時に使用。
非計画フェイルオーバー(Unplanned Failover)災害発生時など、緊急時に実施するフェイルオーバー。

PowerShellを活用することで、自動フェイルオーバーの設定や手動フェイルオーバーの実行をスクリプト化できます。

2. PowerShellを使用したフェイルオーバーの自動化


以下の手順で自動フェイルオーバーを設定します。

2.1. 必要な変数の定義


まず、対象のリソースを取得するための変数を設定します。

# 変数の定義
$resourceGroup = "ASR-ResourceGroup"
$vaultName = "MyRecoveryVault"
$protectionGroupName = "MyASRProtectionGroup"
$recoveryPlanName = "MyRecoveryPlan"
$vmName = "MyVirtualMachine"

2.2. Recovery Services Vaultの取得


フェイルオーバーを設定するために、Recovery Services Vaultを取得します。

# Recovery Services Vaultの取得
$vault = Get-AzRecoveryServicesVault -ResourceGroupName $resourceGroup -Name $vaultName

2.3. フェイルオーバーポリシーの作成


フェイルオーバーの順序やネットワーク設定を指定するリカバリプラン(Recovery Plan)を作成します。

# リカバリプランの作成
New-AzRecoveryServicesAsrRecoveryPlan -VaultId $vault.Id -Name $recoveryPlanName -PrimaryLocation "East US" -RecoveryLocation "West US"

このリカバリプランでは、East USリージョンのVMをWest USリージョンにフェイルオーバーさせる設定となります。

2.4. フェイルオーバー時のネットワーク設定


次に、フェイルオーバー先の仮想ネットワーク(VNet)を指定します。

# フェイルオーバー先のVNetを取得
$vnet = Get-AzVirtualNetwork -ResourceGroupName $resourceGroup -Name "MyVNet"

# リカバリプランにネットワーク設定を適用
Set-AzRecoveryServicesAsrRecoveryPlanNetworkMapping -RecoveryPlan $recoveryPlanName -SourceNetworkId $vnet.Id -TargetNetworkId $vnet.Id

これにより、フェイルオーバー後のVMが適切なネットワークに接続されるようになります。

3. 手動フェイルオーバーの実行


自動フェイルオーバーのテストや災害時の手動フェイルオーバーを実行する場合は、以下のコマンドを使用します。

3.1. 計画フェイルオーバー(テスト用)


計画フェイルオーバーは、実際の障害発生前に動作を確認するために実施されます。

# 計画フェイルオーバーの実行
Start-AzRecoveryServicesAsrPlannedFailoverJob -VaultId $vault.Id -RecoveryPlanName $recoveryPlanName -FailoverDirection PrimaryToSecondary -Commit

このコマンドを実行すると、事前に設定したフェイルオーバーポリシーに基づいてVMが切り替わります。

3.2. 非計画フェイルオーバー(災害発生時)


災害発生時に実行する場合は、非計画フェイルオーバーを実施します。

# 非計画フェイルオーバーの実行
Start-AzRecoveryServicesAsrUnplannedFailoverJob -VaultId $vault.Id -RecoveryPlanName $recoveryPlanName -FailoverDirection PrimaryToSecondary

このコマンドを実行すると、障害が発生した場合に自動でフェイルオーバーが実行されます。

4. フェイルバック(元の環境への復旧)


フェイルオーバー後に元の環境に戻す(フェイルバック)には、以下のコマンドを実行します。

# フェイルバックの実行
Start-AzRecoveryServicesAsrFailbackJob -VaultId $vault.Id -RecoveryPlanName $recoveryPlanName

このコマンドにより、フェイルオーバーしたVMを元のAzureリージョンに復旧することができます。

5. フェイルオーバーの状態確認


フェイルオーバーの進行状況を確認するには、以下のコマンドを実行します。

# フェイルオーバーステータスの確認
Get-AzRecoveryServicesAsrJob -VaultId $vault.Id

このコマンドを実行すると、フェイルオーバーが正常に完了したか、進行中のジョブがあるかを確認できます。

まとめ


本セクションでは、PowerShellを使用してAzure Site Recoveryの自動フェイルオーバーを設定し、手動フェイルオーバーを実行する方法について解説しました。具体的には、以下の手順を実施しました。

  1. リカバリプランの作成(フェイルオーバーの対象とネットワーク設定)
  2. フェイルオーバーポリシーの適用(VMの切り替え順序を指定)
  3. 計画フェイルオーバーの実施(テスト時の切り替え)
  4. 非計画フェイルオーバーの実施(災害時の自動切り替え)
  5. フェイルバックの実施(元の環境へ復旧)

PowerShellを活用することで、手作業を省略し、システム障害時に迅速に対応できる環境を構築できます。次のセクションでは、テストフェイルオーバーと運用管理について詳しく解説します。

テストフェイルオーバーと運用管理


Azure Site Recovery(ASR)を運用する際には、定期的にテストフェイルオーバーを実施し、障害時の復旧プロセスが正常に機能するか確認することが重要です。また、運用中の監視や管理のベストプラクティスを確立することで、可用性を高め、問題発生時に迅速に対応できます。本セクションでは、PowerShellを使用したテストフェイルオーバーの実施方法や、運用管理のポイントについて解説します。

1. テストフェイルオーバーとは?


テストフェイルオーバー(Test Failover)とは、実際の障害を発生させることなく、本番環境に影響を与えずにフェイルオーバーの動作確認を行う手順です。これにより、以下のようなポイントを事前に検証できます。

  • レプリケーションされたVMが正常に起動するか
  • ネットワーク接続やアプリケーションの動作が問題ないか
  • 復旧後のデータ整合性に問題がないか

2. PowerShellを使用したテストフェイルオーバーの実施


テストフェイルオーバーを実施するには、以下の手順をPowerShellで実行します。

2.1. 必要な変数の定義


まず、テスト対象のリソースを指定します。

# 変数の定義
$resourceGroup = "ASR-ResourceGroup"
$vaultName = "MyRecoveryVault"
$recoveryPlanName = "MyRecoveryPlan"

2.2. Recovery Services Vaultの取得


対象のRecovery Services Vaultを取得します。

# Recovery Services Vaultの取得
$vault = Get-AzRecoveryServicesVault -ResourceGroupName $resourceGroup -Name $vaultName

2.3. テストフェイルオーバーの実施


以下のコマンドを実行すると、指定したリカバリプランに基づき、テストフェイルオーバーが実施されます。

# テストフェイルオーバーの実行
Start-AzRecoveryServicesAsrTestFailoverJob -VaultId $vault.Id -RecoveryPlanName $recoveryPlanName -FailoverDirection PrimaryToSecondary

このコマンドにより、フェイルオーバー用の一時環境が作成され、本番環境に影響を与えずにVMの復旧テストが可能になります。

2.4. テストフェイルオーバーの結果確認


テストの進行状況や結果を確認するには、以下のコマンドを実行します。

# フェイルオーバーステータスの確認
Get-AzRecoveryServicesAsrJob -VaultId $vault.Id

実行結果が Completed となっていれば、テストフェイルオーバーが正常に完了しています。

2.5. テストフェイルオーバーのクリーンアップ


テストが完了したら、一時環境を削除し、本番環境に影響を与えないようにします。

# テストフェイルオーバーのクリーンアップ
Stop-AzRecoveryServicesAsrTestFailoverJob -VaultId $vault.Id -RecoveryPlanName $recoveryPlanName

このコマンドを実行することで、作成されたテストVMが削除され、リカバリプランがリセットされます。

3. 運用管理のベストプラクティス


Azure Site Recoveryを継続的に運用するためには、以下のポイントを意識すると良いでしょう。

3.1. 定期的なテストフェイルオーバーの実施

  • 重要なシステムについては少なくとも年1回、可能であれば四半期ごとにテストフェイルオーバーを実施
  • 新しいVMやアプリケーションを追加した際にも、復旧が正常に行えるか確認

3.2. フェイルオーバープロセスのドキュメント化

  • フェイルオーバー時にどのチームがどの作業を担当するかを明確化
  • 実行するPowerShellスクリプトや操作手順をドキュメント化し、迅速に対応できる体制を整備

3.3. Azure Monitorを活用した監視

  • Azure MonitorとLog Analyticsを利用して、レプリケーション状態を監視
  • 異常が検知された際にはアラート通知を設定し、即時対応を行えるようにする

3.4. コストの最適化

  • フェイルオーバー用のストレージやVMサイズを適切に選定し、不要なコストを削減
  • 使用状況を分析し、本当に必要なVMのみをレプリケーション対象にする

まとめ


本セクションでは、PowerShellを活用したテストフェイルオーバーの実施方法と、運用管理のベストプラクティスについて解説しました。具体的には、以下の手順を紹介しました。

  1. テストフェイルオーバーの実施(リカバリプランに基づくシミュレーション)
  2. フェイルオーバーの状態確認(PowerShellでの進行状況の確認)
  3. テストフェイルオーバーのクリーンアップ(一時環境の削除)
  4. 運用管理のベストプラクティス(監視、コスト最適化、ドキュメント化)

Azure Site Recoveryを適切に運用することで、障害時にも迅速な対応が可能になり、ビジネスの継続性を確保できます。次のセクションでは、本記事のまとめを行います。

まとめ


本記事では、PowerShellを使用してAzure Site Recovery(ASR)を構成し、自動フェイルオーバーを実装する方法について解説しました。

具体的には、以下の手順を実施しました。

  1. Azure Site Recoveryの概要(ASRの基本概念と利点)
  2. PowerShellを使用するメリット(自動化、エラー削減、大規模環境の管理)
  3. 環境準備と前提条件(Azureリソースと必要な権限の設定)
  4. Azure Recovery Services Vaultの作成と構成
  5. 保護グループの作成(レプリケーション対象のVMを管理)
  6. レプリケーションポリシーの適用(データの同期間隔や保持期間を設定)
  7. 自動フェイルオーバーの設定(リカバリプランの作成と適用)
  8. テストフェイルオーバーと運用管理(定期的なテストと監視)

PowerShellを活用することで、ASRの導入と管理を効率化し、手作業のミスを防ぎながら、自動化による可用性の向上を実現できます。特に、フェイルオーバーの自動化や、レプリケーションポリシーの最適化を行うことで、クラウド環境の耐障害性を強化できます。

今後、運用を最適化するためには、定期的なテストフェイルオーバーの実施、監視の強化、コスト管理を行いながら、適切な運用体制を構築することが重要です。

本記事の内容を活用し、Azure Site Recoveryを最大限に活用した災害復旧戦略を構築してみてください。

この記事を書いた人

実務の現場で詰まりがちなポイントを地図にするITブログ「IT trip」を運営。Windows/Office(Teams・Excel)からSQL、サーバ運用、ガジェットまで、再現性のある手順と“なぜそうなるか”を丁寧に解説します。読んだらすぐ試せること、そして迷った人の次の一歩が見えることを大切にしています。

コメント

コメントする

目次