Azure Automation のディザスター リカバリー

適用対象: ✔️ Linux VM ✔️ Windows VM

この記事では、リージョン全体またはゾーン全体の障害に対処するためのディザスター リカバリー戦略について説明します。

リージョン全体のサービス停止またはゾーン全体の障害に対処し、予期しないイベントから生じるビジネスと顧客に対する影響を軽減するために、ディザスター リカバリー戦略が必要です。 Automation アカウントとその依存リソース (モジュール、接続、資格情報、証明書、変数、スケジュールなど) のディザスター リカバリーを設定する必要があります。 ディザスター リカバリー計画の重要な側面は、プライマリ リージョンの Automation アカウントが使用できなくなった場合に、セカンダリ リージョンに事前に作成した Automation アカウントのレプリカにフェールオーバーする準備をすることです。 ディザスター リカバリー戦略では Automation アカウントと依存リソースを考慮する必要があります。

可用性ゾーンによって提供される高可用性に加えて、リージョンまたは大規模な地理的災害から保護するために、一部のリージョンは別のリージョンとペアになっています。 プライマリ リージョンにリージョン ペアが存在してもしなくても、Automation アカウントのディザスター リカバリー戦略は変わりません。 リージョン ペアの詳細については、こちらを参照してください

ディザスター リカバリーを有効にする

作成するすべての Automation アカウントには、デプロイに使用する場所が必要です。 これは Automation アカウントのプライマリ リージョンであり、資産、Automation アカウント用に作成された Runbook、ジョブ実行データ、ログが含まれます。 ディザスター リカバリーの場合、レプリカ Automation アカウントがセカンダリ リージョンに既にデプロイされ、準備ができている必要があります。

  • 最初に、任意の代替リージョンレプリカ Automation アカウントを作成します。
  • 任意のセカンダリ リージョン (ペアになっているリージョン、または Azure Automation が使用可能な他のリージョン) を選択します。
  • Automation アカウントのレプリカを作成する以外に、プライマリ リージョンの Automation アカウントに割り当てられた Runbook、モジュール、接続、資格情報、証明書、変数、スケジュール、アクセス許可などの依存リソースをセカンダリ リージョンの Automation アカウントにレプリケートします。 PowerShell スクリプトを使用して、Automation アカウントの資産をリージョン間で移行できます。
  • ARM テンプレートを使用して Automation Runbook を定義およびデプロイする場合は、これらのテンプレートを使用して、レプリカ Automation アカウントを作成する他の Azure リージョンに同じ Runbook をデプロイできます。 プライマリ リージョンでリージョン全体の停止またはゾーン全体の障害が発生した場合は、セカンダリ リージョンにレプリケートした Runbook を実行して、通常どおりにビジネスを継続できます。 これにより、プライマリ リージョンで中断または障害が発生した場合は、セカンダリ リージョンがステップアップされて作業が継続されます。

Note

データ所在地の要件により、プライマリ リージョンに存在するジョブのデータとログはセカンダリ リージョンでは使用できません。

クラウドおよびハイブリッド ジョブのシナリオ

シナリオ: セカンダリ リージョンでクラウド ジョブを実行する

クラウド ジョブの場合、レプリカ Automation アカウントとすべての依存リソースおよび Runbook が既にデプロイされ、セカンダリ リージョンで使用できるのであれば、発生するダウンタイムはわずかです。 レプリカ アカウントを使用して通常どおりにジョブを実行できます。

シナリオ: 障害のプライマリ リージョンとは異なるリージョンにデプロイされた Hybrid Runbook Worker でジョブを実行する

Windows または Linux Hybrid Runbook worker が、障害のプライマリ リージョンとは "異なる" リージョンに拡張機能ベースのアプローチを使用してデプロイされている場合、ハイブリッド ジョブの実行を継続する手順は次のとおりです。

  1. プライマリ リージョンの Automation アカウントの Hybrid Runbook worker にインストールされている拡張機能を削除します。
  2. セカンダリ リージョンの Automation アカウントの Hybrid Worker グループに、同じ Hybrid Runbook worker を追加します。 Hybrid worker 拡張機能は、Automation アカウントのレプリカ内のマシンにインストールされます。
  3. 手順 2 で作成した Hybrid Runbook worker でジョブを実行します。

エージェントベースのアプローチを使用してデプロイされた Hybrid Runbook worker の場合は、次のいずれかを選択します。

Windows Hybrid Runbook worker が、障害のプライマリ リージョンとは異なるリージョンにエージェントベースのアプローチを使用してデプロイされている場合、ハイブリッド ジョブの実行を継続する手順は次のとおりです。

  1. プライマリ リージョンの Automation アカウントに存在する Hybrid Runbook worker からエージェントをアンインストールします。
  2. セカンダリ リージョンのレプリカ Automation アカウントの同じコンピューターにエージェントを再インストールします。
  3. これで、手順 2 で作成した Hybrid Runbook worker でジョブを実行できるようになりました。

シナリオ: 障害のプライマリ リージョンにデプロイされた Hybrid Runbook Worker でジョブを実行する

Hybrid Runbook worker がプライマリ リージョンにデプロイされ、そのリージョンでコンピューティング エラーが発生した場合、マシンは Automation ジョブの実行に使用できません。 代替リージョンに新しい仮想マシンをプロビジョニングし、セカンダリ リージョンの Automation アカウントの Hybrid Runbook Worker として登録する必要があります。

Automation アカウント資産をあるリージョンから別のリージョンに移行するためのスクリプト

これらのスクリプトを使用して、プライマリ リージョンのアカウントからセカンダリ リージョンのアカウントに Automation アカウント資産を移行できます。 これらのスクリプトは、Runbook、モジュール、接続、資格情報、証明書、変数のみを移行するために使用されます。 これらのスクリプトの実行は、プライマリ リージョンに存在する Automation アカウントとその資産には影響しません。

前提条件

  1. プライマリ リージョンの資産を移行できるように、セカンダリ リージョンの Automation アカウントが作成され、使用可能であることを確認します。 望ましいのは、宛先の Automation アカウントが、カスタム リソースのないものであることです。そうすれば、潜在的なリソースの (名前が同じことに起因する) 競合とデータ損失が避けられるからです。

  2. プライマリ リージョンの Automation アカウントで、システム割り当てマネージド ID が有効になっていることを確認します。

  3. プライマリ Automation アカウントのシステム割り当てマネージド ID に、それが属するサブスクリプションへの共同作成者アクセス権があることを確認します。

  4. プライマリ Automation アカウントのマネージド ID に、セカンダリ リージョンの Automation アカウントに対する読み取りおよび書き込みアクセスを許可された共同作成者アクセス権があることを確認します。 有効にするには、セカンダリ Automation アカウントのマネージド ID に必要なアクセスを許可します。 詳細情報 を参照してください。

  5. プライマリ リージョンの Automation アカウント資産にスクリプトでアクセスできることを確認してください。 つまり、移行を成功させるためには、その Automation アカウントの Runbook として実行する必要があります。

  6. プライマリ Automation アカウントが実行アカウントを使用してデプロイされている場合は、移行前にマネージド ID に切り替える必要があります。 詳細情報 を参照してください。

  7. 必要なモジュールは次のとおりです。

    • Az.Accounts バージョン 2.8.0
    • Az.Resources バージョン 6.0.0
    • Az.Automation バージョン 1.7.3
    • Az.Storage バージョン 4.6.0
  8. 移行元と移行先の両方の Automation アカウントが同じ Microsoft Entra テナントに属していることを確認します。

Runbook を作成して実行する

PowerShell スクリプトまたは PowerShell ワークフロー Runbook を使用するか、Runbook ギャラリーからインポートして実行することで、Automation アカウント間での資産の移行が可能になります。

手順に従って Runbook をインポートして実行します。

  1. Azure portal にサインインします。
  2. 別のリージョンに移行する Automation アカウントに移動します。
  3. [プロセス オートメーション][Runbook] を選択します。
  4. [ギャラリーを参照] を選択し、検索で「Automation アカウント資産をリージョン間で移行する」と入力し、[PowerShell スクリプト] を選択します。
  5. [Runbook のインポート] ページで、Runbook の名前を入力します。
  6. [ランタイム バージョン] として 5.1 または 7.1 (プレビュー) を選択します
  7. 説明を入力し、[インポート] を選択します。
  8. [PowerShell Runbook の編集] ページで必要なパラメーターを編集し、実行します。

スクリプトを編集および実行するオプションのいずれかを選択できます。 オプション 1 に示されている 7 つの必須パラメーター、またはオプション 2 に示されている 3 つの必須パラメーターを指定して、スクリプトを編集および実行できます。

オプションは次のとおりです。

名前 必須 説明
SourceAutomationAccountName 正しい そこから資産を移行する必要があるプライマリ リージョンの Automation アカウントの名前。
DestinationAutomationAccountName 正しい そこに資産を移行する必要があるセカンダリ リージョンの Automation アカウントの名前。
SourceResourceGroup 正しい プライマリ リージョンの Automation アカウントのリソース グループ名。
DestinationResourceGroup 正しい セカンダリ リージョンの Automation アカウントのリソース グループ名。
SourceSubscriptionId 正しい プライマリ リージョンの Automation アカウントのサブスクリプション ID
DestinationSubscriptionId 正しい セカンダリ リージョンの Automation アカウントのサブスクリプション ID。
Type[] 正しい 移行する必要があるすべての種類の資産で構成される配列。使用可能な値は、Certificates、Connections、Credentials、Modules、Runbooks、Variables です。

制限事項

  • このスクリプトでは、カスタム PowerShell モジュールのみが移行されます。 既定のモジュールと Python パッケージは、レプリカ Automation アカウントに移行されません。
  • このスクリプトでは、プライマリ リージョンの Automation アカウントに存在するスケジュールマネージド ID は移行されません。 これらは、レプリカ Automation アカウント内に手動で作成する必要があります。
  • ジョブ データとアクティビティ ログはレプリカ アカウントに移行されません。

次のステップ