# 地理冗長

{% hint style="warning" %}
SCEPman Enterprise Edition のみ
{% endhint %}

このリファレンス アーキテクチャは、高可用性を実現するために Azure App Service アプリケーションを複数リージョンで実行する方法を示しています。

{% hint style="info" %}
ジオ冗長性 / 高可用性は、現在のところ（メインの）SCEPman App Service でのみ利用できます。理由: Certificate Master の利用者は通常、時間的に критical ではない証明書ワークロードを扱う管理者であり、このような状況に対処する手順の知識を持っているためです。
{% endhint %}

## アーキテクチャ

![](/files/6b9c0ee59c06af3e2b54f29038cb3d6151704a5b)

上図に示すように、ジオ冗長デプロイでは Azure Traffic Manager プロファイルを利用し、（DNS ベースの）SCEPman CA への要求を、異なる地理的場所にデプロイされた 2 つの SCEPman インスタンスに振り分けます。個々の SCEPman インスタンスは同じ KeyVault、Storage Account、および AAD と通信するため、同じ Root CA を共有します。Traffic Manager は、選択可能な一連のルーティング アルゴリズムに基づいてトラフィックを負荷分散するだけでなく、2 つの SCEPman インスタンスの両方を継続的にプローブします。いずれかのインスタンスが利用できなくなった場合、すべてのトラフィックは自動的に利用可能なインスタンスへルーティングされます。

Microsoft は [この記事](https://docs.microsoft.com/en-us/azure/architecture/reference-architectures/app-service-web-app/multi-region) で、この種のアーキテクチャを管理するために使用できる 3 つの異なるジオ冗長化戦略について説明しています。ただし、今回のケースでは **Active/Active** アプローチを使用します。つまり、両方のリージョンがアクティブであり、要求はそれらの間で負荷分散されます。いずれかのリージョンが利用できなくなった場合、または何らかの理由でレイテンシが発生した場合、Traffic Manager はトラフィックを 2 つ目の App Service にルーティングします。

{% hint style="info" %}
ぜひ [Microsoft の利用可能リージョン一覧](https://learn.microsoft.com/en-us/azure/reliability/regions-list#azure-regions-list-1) と対応するペアリージョンを確認してください。ペアになっていないリージョンを使用すると、この冗長構成のセットアップ時に問題が発生する可能性があります。
{% endhint %}

## ワークフロー

* 最初に、SCEPman App Service を別の地理的場所へクローンします。
* 次に、Traffic Manager を構成し、そのエンドポイントを追加して、2 つの SCEPman App Service の両方に接続します。
* 次に、両方の App Service のカスタム ドメインを構成します。
* 最後に、DNS の CNAME レコードを構成し、カスタム ドメインを Traffic Manager に向けます。

### App のクローン作成

App Service をクローンするには、まず新しい **App Service Plan** を 2 番目の地理的場所に作成する必要があります。ここにクローンされた App がデプロイされます。これは同じ SCEPman Resource group に作成することも、新しいグループに作成することもできます。以下のスクリーンショットを参照してください。

![Windows を使用した新しい App Service Plan の作成](/files/e70b218872afafa9734039090c5577d1e9b1dd30)

{% hint style="info" %}
App Service クローンの要件（経由） [SCEPman PowerShell Module](/ja/scepman-depuroi/permissions/post-installation-config.md#acquire-and-run-the-scepman-installation-powershell-module)):

* SCEPman **2.2** 以上
* SCEPman PowerShell Module **1.6.3.0** 以上
* Global Admin 権限
  {% endhint %}

次の CMDlet コマンドにより、SCEPman App Service がクローンされ、必要なすべての権限が構成されます。

```
New-SCEPmanClone -SourceAppServiceName <あなたの SCEPman App Service 名> -TargetAppServiceName <クローン先の App Service 名> -TargetAppServicePlan <2 番目の Geo Location にある 2 番目の App Service Plan> -SearchAllSubscriptions 6>&1
```

* **SourceAppServiceName:** 既存の SCEPman App Service の名前。
* **TargetAppServiceName:** 新しくクローンされた SCEPman App Service の名前。
* **TargetAppServicePlan:** クローンされた SCEPman インスタンス用の App Service Plan の名前。App Service Plan は TargetResourceGroup にすでに存在している必要があります。
* **SourceResourceGroup:** （省略可）既存の SCEPman App Service をホストしている Azure リソース グループ。自動検出する場合は空のままにしてください。
* **TargetResourceGroup:** （省略可）新しい SCEPman App Service をホストする Azure リソース グループ。App Service Plan のリソース グループを自動検出するには空のままにしてください。
* **SourceSubscriptionId:** （省略可）SCEPman がインストールされているサブスクリプションの ID。az で既に事前選択されている場合は省略できます。あるいは SearchAllSubscriptions フラグを使用してアクセス可能なすべてのサブスクリプションを検索します。
* **TargetSubscriptionId:** （省略可）SCEPman をインストールするサブスクリプションの ID。SourceSubscriptionId と同じであれば省略できます。
* **SearchAllSubscriptions:** （省略可）このフラグを設定すると、SCEPman App Service の全サブスクリプションを検索します。そうでない場合は、az で正しいサブスクリプションを事前選択するか、正しい SubscriptionId を渡してください。

### **例**

既存の SCEPman App Service「as-scepman-nrg5reuov63vk」をクローンする

```
New-SCEPmanClone -SourceAppServiceName as-scepman-nrg5reuov63vk -TargetAppServiceName as-scepman-clone -TargetAppServicePlan asp-scepman-geo2 -SearchAllSubscriptions 6>&1
```

![](/files/37af35c72b7b4a8439ff98ade2634dd4931a7b92)

デプロイが正常に完了したら、クローンされた App Service に移動し、SCEPman のホームページで、すべての権限が正しく設定され、すべてが緑色で接続されていることを確認してください（デプロイ完了後、最大 3 分かかる場合があります）。

![](/files/7ba143c7f12045950301a0d6bf6507e788eed3a0)

{% hint style="info" %}
単一障害点を避けるため、 [WEBSITE\_RUN\_FROM\_PACKAGE](/ja/scepman-gou-cheng/application-artifacts.md) クローンされた App Service のを Azure 上の 2 つ目の独立したアーティファクト ホストに設定することを推奨します。

本番チャネル:

`https://install.scepman.com/dist/Artifacts.zip`

元の App Service には既定で最初のアーティファクト ホストが設定されており、これは GitHub リポジトリを指しています。詳細は [アプリケーション アーティファクト](/ja/scepman-gou-cheng/application-artifacts.md).
{% endhint %}

{% hint style="warning" %}
App Service のクローン作成には、 **自動スケール** 設定、 **バックアップ スケジュール** 設定、 **App Insights**など、いくつかの制限があります。クローンできない構成は、クローン先の App Service で手動で再設定する必要があります。さらに、1 つの AppService の設定変更は、クローン後に行われた場合、2 つ目の App Service に自動的には同期されません。詳細は <https://docs.microsoft.com/en-us/azure/app-service/app-service-web-app-cloning#current-restrictions>
{% endhint %}

### Traffic Manager のセットアップ

以下の手順に従って Traffic Manager を作成・構成し、2 つの SCEPman インスタンス間でトラフィックを分散します。

1. Marketplace で次を検索します **Traffic Manager profile** をクリックし、 **作成**.
2. 各フィールドに入力し、SCEPman のリソース グループを選択します

![](/files/84c8d89bd7604964c5da562d0bf2ee9ec223eee9)

1. 次に、 **作成**.
2. Traffic Manager がデプロイされたら、それを開いて **Configuration**
3. 設定を次のように変更して保存します

![Traffic Manager Configuration](/files/e37676d20307fb618494b2a278419ae22140b03d)

#### エンドポイントの追加

#### 最初のエンドポイント

1. その後、 **Settings** で **Endpoints**
2. 「Azure Endpoint」を **Type**として選択し、最初のエンドポイントの名前を指定して、「App Service」を **ターゲット リソースの種類**
3. として選択します **ターゲット リソース**

![Traffic Manager、エンドポイント構成](/files/5f4c2d549f22e7934ce8c0750deb5f87d7ef9684)

#### 2 番目のエンドポイント

同じ手順を 2 番目のエンドポイントに対して繰り返し、2 番目の（クローンされた）SCEPman App Service を **ターゲット リソース**

### カスタム ドメインの構成

Traffic Manager のエンドポイントのデプロイと構成が正常に完了したら、 **同じ** カスタム ドメインを **両方の** SCEPman インスタンスに対して、説明のとおりに設定する必要があります [こちら](/ja/azure-gou-cheng/custom-domain.md).

設定値を必ず変更してください **AppConfig:BaseUrl** 対象 **両方の** カスタム ドメインの作成後に、SCEPman App Service の値を更新してください。

### DNS の構成

Traffic Manager の **概要** には、DNS に追加する必要がある DNS 名が表示されます

![Traffic Manager の概要](/files/991778783253ef434b01ee7a4b4eee29bdc89196)

* DNS 管理サービスに移動します（例: **Azure DNS Zones**)
* Azure App Service インスタンスのいずれかを指している可能性のある誤った CNAME エントリを削除し、作成した SCEPman のカスタム ドメインを Traffic Manager の DNS 名にマップする CNAME を追加します。以下の例では、CNAME は次を指す必要があります **gk-blueprint-scepman.trafficmanager.net**.

{% hint style="info" %}
で **Azure DNS Zone**レコードを変更するには、まず次へ移動して DNS ロックを解除する必要があります **Locks**.
{% endhint %}

{% hint style="info" %}
構成が完了したら、Intune の SCEP プロファイル内の SCEP Server URL を更新してください。新しい URL は、末尾に「/certsrv/mscep/mscep.dll」を付けた、作成したカスタム ドメインにする必要があります。

例: <https://scepman.contoso.com/certsrv/mscep/mscep.dll>
{% endhint %}

### Storage Account のジオ冗長性

SCEPman で使用される Storage Account も冗長構成にする必要があります。既定の SCEPman セットアップでは、単一リージョンのみを使用する Locally Redundant Storage (LRS) を使用します。たとえば、Geo-redundant storage (GRS) を構成します。

![Azure Portal の Storage account redundancy ダイアログ](/files/3839827322c530d918a07fdf0702b2b7c36ca20a)


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://docs.scepman.com/ja/azure-gou-cheng/geo-redundancy.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
