Azure Site Recoveryを活用したオンプレミスDR計画とテスト

Tech

本記事はGeminiの出力をプロンプト工学で整理した業務ドラフト(未検証)です。

Azure Site Recoveryを活用したオンプレミスDR計画とテスト

企業の事業継続計画(BCP)において、災害復旧(DR)は不可欠な要素です。Azure Site Recovery(ASR)は、オンプレミス環境で稼働するVMware仮想マシン、Hyper-V仮想マシン、物理サーバーをAzureクラウドにレプリケートすることで、信頼性の高いDRaaS(Disaster Recovery as a Service)を提供します。本記事では、ASRを用いたオンプレミスDRの計画、設定、運用、セキュリティ、コスト最適化、そして一般的な落とし穴について解説します。

アーキテクチャ

Azure Site Recoveryを利用したオンプレミスからAzureへの災害復旧アーキテクチャは、オンプレミス側のコンポーネントとAzure側のコンポーネントで構成されます。オンプレミス環境では、保護対象の仮想マシンや物理サーバーにモビリティエージェントがインストールされ、データの変更を追跡します。これらの変更データは、プロセスサーバーによってキャッシュ、圧縮、暗号化された後、構成サーバーに送信されます。構成サーバーは、AzureのRecovery Services Vaultと連携し、レプリケーションの調整、構成の管理を行います。

Azure側では、Recovery Services Vaultがレプリケーションポリシーと回復計画の中心となり、レプリケートされたデータはキャッシュストレージアカウントを経由してレプリカマネージドディスクとして保存されます。災害発生時には、回復計画に従ってレプリカディスクからターゲット仮想ネットワーク内にDR用Azure VMが起動され、サービスが継続されます。

以下に、このアーキテクチャのフローチャートを示します。

flowchart LR
    OnPremise["オンプレミスデータセンター"]
    SubGraph_OnPremise["オンプレミスコンポーネント"]
      VMWareVM["VMware VM / Hyper-V VM / 物理サーバー"]
      MobilityAgent["モビリティエージェント"]
      ProcessServer["プロセスサーバー"]
      ConfigServer["構成サーバー"]
    End
    Azure["Azureクラウド"]
    SubGraph_Azure["Azureコンポーネント"]
      RSVault["Recovery Services Vault"]
      StorageAccount["キャッシュストレージアカウント"]
      ManagedDisk["レプリカマネージドディスク"]
      TargetVNet["ターゲット仮想ネットワーク"]
      TargetVM["DR用Azure VM(\"停止中\")"]
    End

    OnPremise --> |ホスト| SubGraph_OnPremise
    SubGraph_OnPremise --> |保護対象| VMWareVM
    VMWareVM -- |データ変更を追跡| MobilityAgent
    MobilityAgent -- |データをプロセス| ProcessServer
    ProcessServer -- |暗号化・圧縮・送信| ConfigServer
    ConfigServer -- |レプリケーションポリシー管理| RSVault
    ConfigServer -- |初期レプリケーション| StorageAccount
    ConfigServer -- |差分レプリケーション| StorageAccount
    StorageAccount -- |データ変換| ManagedDisk
    RSVault -- |レプリケーション調整| ManagedDisk
    RSVault -- |回復計画実行| TargetVNet
    TargetVNet -- |フェールオーバー先| TargetVM

設定手順

Azure Site Recoveryの設定は、主に以下のステップで進行します。計画段階では、2024年4月3日に更新されたMicrosoft LearnのドキュメントAzure Site Recovery Deployment Plannerに記載されているように、デプロイメントプランナーツールを使用して帯域幅、ストレージ、VM要件を評価することが推奨されます。

  1. Azureの準備:

    • Recovery Services Vaultの作成。

    • ターゲット仮想ネットワークとサブネットの計画と作成。

    • ストレージアカウント(キャッシュ用)の準備。

  2. オンプレミスの準備:

    • 構成サーバーの展開(VMware/物理サーバーの場合はOVAテンプレート、Hyper-Vの場合はプロバイダーのインストール)。

    • 保護対象マシンへのモビリティエージェントのインストール。

  3. レプリケーションの有効化:

    • レプリケーションポリシーの作成(RPO目標、復旧ポイントの保持期間など)。

    • 仮想マシンの保護を有効化。

以下に、Azure PowerShellを用いたRecovery Services Vaultの作成とレプリケーションポリシーの設定例を示します。これらのコマンドレットは、2024年5月2日に更新されたMicrosoft LearnのAzure PowerShellによるVMware VMの災害復旧構成で詳細が確認できます。

# Recovery Services Vault の作成


# 前提条件: Azure PowerShellモジュールがインストールされ、Azアカウントにログイン済みであること。


#           必要な権限 (例: Subscription Contributor) が付与されていること。

# 変数の定義

$resourceGroupName = "asr-dr-rg-prod"
$location = "japaneast" # Azureリージョンを指定 (例: japaneast, westus2)
$vaultName = "asr-onprem-vault-prod"
$policyName = "OnPremToAzurePolicy-Prod"
$replicationFrequencyInSeconds = 300 # レプリケーション頻度 (5分 = 300秒)
$recoveryPointRetentionInHours = 24 # 復旧ポイントの保持期間 (24時間)
$appConsistentFrequencyInHours = 4 # アプリケーション整合性スナップショットの頻度 (4時間)

# 1. リソースグループが存在しない場合は作成

Write-Host "リソースグループ '$resourceGroupName' を確認/作成中..."
if (-not (Get-AzResourceGroup -Name $resourceGroupName -ErrorAction SilentlyContinue)) {
    New-AzResourceGroup -Name $resourceGroupName -Location $location | Out-Null
    Write-Host "リソースグループ '$resourceGroupName' を作成しました。"
} else {
    Write-Host "リソースグループ '$resourceGroupName' は既に存在します。"
}

# 2. Recovery Services Vault を作成

Write-Host "Recovery Services Vault '$vaultName' を作成中..."
try {
    $vault = New-AzRecoveryServicesVault -Name $vaultName -ResourceGroupName $resourceGroupName -Location $location
    Write-Host "Recovery Services Vault '$vaultName' が作成されました。"
} catch {
    Write-Host "Recovery Services Vault '$vaultName' の作成中にエラーが発生しました: $($_.Exception.Message)"

    # 既に存在する場合などのエラーハンドリング

    $vault = Get-AzRecoveryServicesVault -Name $vaultName -ResourceGroupName $resourceGroupName
    Write-Host "既存のRecovery Services Vault '$vaultName' を取得しました。"
}

# 3. Site Recovery コンテキストの設定 (重要: Vaultを指定してASR操作のコンテキストを確立)

Write-Host "Recovery Services Vault コンテキストを設定中..."
Set-AzRecoveryServicesAsrVaultContext -Vault $vault
Write-Host "Recovery Services Vault コンテキストが設定されました。"

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

Write-Host "レプリケーションポリシー '$policyName' を作成中..."
try {
    $policy = New-AzRecoveryServicesAsrPolicy -Name $policyName `
        -ReplicationFrequencyInSeconds $replicationFrequencyInSeconds `
        -RecoveryPointRetentionInHours $recoveryPointRetentionInHours `
        -ApplicationConsistentSnapshotFrequencyInHours $appConsistentFrequencyInHours
    Write-Host "レプリケーションポリシー '$policyName' が作成されました。"
    Write-Host "ポリシーID: $($policy.ID)"
} catch {
    Write-Host "レプリケーションポリシー '$policyName' の作成中にエラーが発生しました: $($_.Exception.Message)"

    # 既に存在する場合などのエラーハンドリング

    $policy = Get-AzRecoveryServicesAsrPolicy -Name $policyName
    Write-Host "既存のレプリケーションポリシー '$policyName' を取得しました。"
}

# 後続のステップ (構成サーバーの登録、保護対象マシンの検出と保護の有効化など) は


# 環境に応じた追加のPowerShellコマンドまたはAzure Portalでの操作が必要です。

運用監視

ASRの運用においては、レプリケーションの状態監視、災害復旧訓練の実施、および回復計画の管理が重要です。 2024年5月2日に更新されたMicrosoft LearnのドキュメントVMware VMの災害復旧訓練の実行で詳述されているように、以下の項目に注力します。

  • Azure MonitorとLog Analytics: レプリケーションエラー、保護対象アイテムの健全性、構成サーバーの状態などを監視するためにAzure Monitorを活用します。診断設定を通じて、ASRのログをLog Analyticsワークスペースに送信し、カスタムクエリで詳細な分析やアラート設定を行います。

  • レプリケーション状態: Recovery Services Vault内で各保護対象VMのレプリケーション状態(同期率、最新の回復ポイント)を定期的に確認します。

  • 回復計画(Recovery Plans): フェールオーバー時に複数のVMをグループ化し、起動順序、スクリプトの実行、手動アクションなどを定義します。これにより、複雑なアプリケーションのフェールオーバーを自動化・オーケストレーションできます。

  • 災害復旧訓練(テストフェールオーバー): 2024年5月2日の情報によると、テストフェールオーバーは、本番環境に影響を与えることなくDRプロセスを検証する唯一の方法です。定期的に実施し、RTO(目標復旧時間)とRPO(目標復旧時点)の目標値が達成可能かを確認します。テスト後は必ず作成されたリソースをクリーンアップし、不要なコスト発生を防ぎます。

セキュリティ

ASRを用いたDR環境におけるセキュリティは、Azure全体のセキュリティプラクティスに準拠しつつ、特定の要素を強化する必要があります。2024年1月4日に更新されたMicrosoft LearnのAzure Site RecoveryのAzureロールには、ロールと権限に関する詳細が記載されています。

  • Azure Active Directory(現:Microsoft Entra ID)とRBAC:

    • ASR関連操作を実行するユーザーやサービスプリンシパルには、最小特権の原則に基づき、適切な組み込みロールを割り当てます。

    • Site Recovery Contributor:レプリケーションの有効化、回復計画の作成/管理、テストフェールオーバーの実行など、ASRの主要な操作を許可します。

    • Site Recovery Operator:フェールオーバーと再保護の操作のみを許可し、構成の変更は制限します。

    • Site Recovery Reader:ASR構成の読み取り専用アクセスを提供します。

    • 構成サーバーのAzureへの認証には、マネージドIDを利用することで、認証情報の管理負担を軽減し、セキュリティを向上させます。

  • ネットワークセキュリティグループ(NSG): オンプレミスとAzure間のレプリケーション通信、およびAzureにフェールオーバーされたVM間の通信を制御するためにNSGを設定します。必要なポート(HTTPS 443など)のみを開放し、不正なアクセスをブロックします。

  • Azure Defender for Cloud: フェールオーバー後のAzure VMの脅威検出と保護を強化するために、Azure Defender for Cloud(旧Azure Security Center)を統合します。

  • 暗号化: データは転送中(HTTPS)および保存時(Azure Storage Service Encryption)に暗号化されます。必要に応じて、Azure Key Vaultと連携し、独自の暗号化キーを管理することも可能です。

  • 条件付きアクセス: ASRの管理にアクセスする管理者アカウントに対して、多要素認証(MFA)や特定の場所からのアクセスなどの条件を強制します。

コスト

Azure Site Recoveryのコストは、主に以下の要素で構成されます。2024年6月15日時点で確認できるAzure Site Recoveryの料金ページによると、初回の31日間は無料で保護インスタンスが提供されますが、それ以降は料金が発生します。

  1. Azure Site Recoveryの料金: 保護対象の仮想マシンまたは物理サーバーの数に基づいて、月額料金が発生します。

  2. Azureコンピューティング費用: フェールオーバー時やテストフェールオーバー時に、Azure上で起動する仮想マシン(DR用Azure VM)のコンピューティング費用が発生します。DR訓練時以外は通常停止しているため、この費用は最小限に抑えられます。

  3. ストレージ費用: レプリケートされたデータが保存されるAzure Managed Disks(レプリカディスク)と、キャッシュストレージアカウントの費用が発生します。ディスクのサイズや種類(Standard HDD/SSD、Premium SSDなど)によって異なります。

  4. データ転送費用: オンプレミスからAzureへの初期レプリケーションおよび差分レプリケーションに伴うデータ転送費用(アウトバウンド)が発生します。

コスト最適化のポイント:

  • DR用Azure VMの停止: 本番フェールオーバー時や計画的なテストフェールオーバー時を除き、DR用Azure VMは停止状態に保つことでコンピューティング費用を削減します。

  • Azure Hybrid Benefitの活用: Windows ServerやSQL Serverの既存ライセンスをAzureに持ち込むことで、DR用Azure VMのソフトウェアコストを大幅に削減できます。

  • リザーブドインスタンスの検討: DR用Azure VMがフェールオーバー後、長期間稼働することが予想される場合、Azureリザーブドインスタンスを事前に購入することで、コンピューティングコストを削減できます。ただし、通常は停止しているため、予約するメリットは限定的です。

  • レプリケーション頻度の調整: アプリケーションのRPO要件に応じてレプリケーション頻度を調整することで、キャッシュストレージへのI/Oやデータ転送量を最適化し、コストに影響を与える可能性があります。

  • キャッシュストレージの選択: キャッシュストレージアカウントは、通常、Standardストレージで十分です。

落とし穴

ASRを導入・運用する際には、いくつかの一般的な落とし穴に注意が必要です。

  • ネットワーク帯域の不足: オンプレミスからAzureへの初期レプリケーションや差分レプリケーションにおいて、十分なネットワーク帯域が確保されていないと、レプリケーションが遅延したり、RPO目標が達成できなかったりします。導入前にAzure Site Recovery Deployment Plannerで評価することが不可欠です。

  • IPアドレス設計の不備: フェールオーバー後のAzure仮想ネットワークにおけるIPアドレスの設計が適切でないと、アプリケーションが正常に動作しない可能性があります。オンプレミスとAzureでIPアドレスが重複しないように注意し、DNSの更新計画も立てる必要があります。

  • テストフェールオーバーの不実施/不定期実施: DR計画が机上の空論で終わらないよう、定期的なテストフェールオーバーは必須です。これにより、回復計画の不備や設定ミスを発見し、修正できます。

  • 回復計画の不備: 複雑な多層アプリケーションの場合、VMの起動順序やカスタムスクリプトの実行が非常に重要です。回復計画がアプリケーションの依存関係を正しく反映していないと、フェールオーバー後にアプリケーションが起動しない可能性があります。

  • エージェントのバージョン管理: オンプレミスコンポーネント(構成サーバー、プロセスサーバー、モビリティエージェント)のバージョンは、定期的に確認し、推奨される最新バージョンに保つ必要があります。古いバージョンは、サポートの終了や機能上の制限につながることがあります。

  • DR訓練後のリソースクリーンアップ忘れ: テストフェールオーバー後にAzure上に作成されたVMやネットワークインターフェースなどのリソースを適切にクリーンアップしないと、予期せぬコストが発生し続けます。

まとめ

Azure Site Recoveryは、オンプレミス環境のDR対策として強力なソリューションを提供します。堅牢なアーキテクチャの理解、計画的な設定手順、継続的な運用監視、そして強固なセキュリティ対策の導入が成功の鍵です。特に、定期的なテストフェールオーバーを通じて回復計画を検証・改善し、RPO/RTO目標の達成可能性を常に評価することが不可欠です。本記事で述べたコスト最適化のヒントや一般的な落とし穴を参考に、効果的かつ効率的なDR戦略を構築してください。

ライセンス:本記事のテキスト/コードは特記なき限り CC BY 4.0 です。引用の際は出典URL(本ページ)を明記してください。
利用ポリシー もご参照ください。

コメント

タイトルとURLをコピーしました