> For the complete documentation index, see [llms.txt](https://docs.scepman.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.scepman.com/es/configuracion-de-azure/geo-redundancy.md).

# Geo-redundancia

{% hint style="warning" %}
Solo en SCEPman Enterprise Edition
{% endhint %}

Esta arquitectura de referencia muestra cómo ejecutar una aplicación de Azure App Service en varias regiones para lograr alta disponibilidad.

{% hint style="info" %}
La georredundancia / alta disponibilidad está disponible actualmente solo para el App Service principal de SCEPman. Motivo: Los usuarios de Certificate Master son administradores con cargas de trabajo de certificados normalmente no críticas en cuanto al tiempo y con conocimientos de procedimientos para manejar este tipo de escenarios.
{% endhint %}

## Arquitectura

![](https://4115997120-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2Fgit-blob-6865890fc78414e9600419ba8897a3b76803ff92%2F2022-06-23%2012_32_59-GeoRedundancy.png?alt=media)

Como se ilustra arriba, la implementación georredundante aprovecha un perfil de Azure Traffic Manager, que enruta solicitudes (basadas en DNS) al CA de SCEPman hacia un par de instancias de SCEPman que se implementan en distintas geolocalizaciones. Las instancias individuales de SCEPman se comunican con el mismo KeyVault, Storage Account y AAD y, por tanto, comparten la misma CA raíz. Además de equilibrar el tráfico en función de un conjunto de algoritmos de enrutamiento entre los que puedes elegir, Traffic Manager también comprueba constantemente ambas instancias de SCEPman. En caso de que una instancia deje de estar disponible, todo el tráfico se redirigirá automáticamente a la instancia disponible.

Microsoft trata en [este artículo](https://docs.microsoft.com/en-us/azure/architecture/reference-architectures/app-service-web-app/multi-region) tres estrategias distintas de georredundancia que pueden utilizarse para administrar este tipo de arquitectura. Sin embargo, en nuestro caso, utilizaremos el **Active/Active** enfoque. Esto significa que ambas regiones están activas y que las solicitudes se equilibran entre ellas. Si una región deja de estar disponible o presenta cierta latencia por cualquier motivo, Traffic Manager dirigirá el tráfico al segundo App Service.

{% hint style="info" %}
Asegúrate de consultar [la lista de regiones disponibles de Microsoft](https://learn.microsoft.com/en-us/azure/reliability/regions-list#azure-regions-list-1) y su región emparejada correspondiente. El uso de regiones no emparejadas puede causar problemas durante la configuración de esta redundancia.
{% endhint %}

## Flujo de trabajo

1. Clona el App Service de SCEPman en otra geolocalización.
2. Configura Traffic Manager y conecta sus Endpoints a ambos SCEPman App Services.
3. Configura el mismo dominio personalizado para ambos App Services.
4. Configura el registro CNAME de DNS, apuntando tu dominio personalizado a Traffic Manager.

## Pasos

{% stepper %}
{% step %}

### Clonar App

Para clonar un App Service, primero debes crear un nuevo **App Service Plan** en una segunda geolocalización; allí se implementará la App clonada. Puedes crearla en el mismo grupo de recursos de SCEPman o en uno nuevo. Consulta la captura de pantalla a continuación:

![Creación de un nuevo App Service Plan con Windows](https://4115997120-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2Fgit-blob-87bb339bda3436681a5fd22707345bb6d4d5f1f2%2F2022-06-15%2013_29_57-Create%20App%20Service%20Plan.png?alt=media)

{% hint style="info" %}
Requisitos para clonar App Service (mediante [Módulo de PowerShell de SCEPman](/es/despliegue-de-scepman/permissions/post-installation-config.md#acquire-and-run-the-scepman-installation-powershell-module)):

* SCEPman **2.2** o superior
* Módulo de PowerShell de SCEPman **1.6.3.0** o superior
* permisos de administrador global
  {% endhint %}

El siguiente comando CMDlet clonará tu SCEPman App Service y configurará todos los permisos necesarios:

```
New-SCEPmanClone -SourceAppServiceName <Your SCEPman App Service Name> -TargetAppServiceName <Your cloned App Service Name> -TargetAppServicePlan <Your second App Service Plan in the second Geo Location> -SearchAllSubscriptions 6>&1
```

* **SourceAppServiceName:** El nombre del SCEPman App Service existente.
* **TargetAppServiceName:** El nombre del nuevo SCEPman App Service clonado.
* **TargetAppServicePlan:** El nombre del App Service Plan para la instancia clonada de SCEPman. El App Service Plan ya debe existir en el TargetResourceGroup.
* **SourceResourceGroup:** (Opcional) El grupo de recursos de Azure que aloja el SCEPman App Service existente. Déjalo vacío para la detección automática.
* **TargetResourceGroup:** (Opcional) El grupo de recursos de Azure que aloja el nuevo SCEPman App Service. Déjalo vacío para detectar automáticamente el grupo de recursos del App Service Plan.
* **SourceSubscriptionId:** (Opcional) El ID de la suscripción donde está instalado SCEPman. Puede omitirse si ya está preseleccionada en az o usa el indicador SearchAllSubscriptions para buscar en todas las suscripciones accesibles
* **TargetSubscriptionId:** (Opcional) El ID de la suscripción donde se instalará SCEPman. Puede omitirse si es el mismo que SourceSubscriptionId.
* **SearchAllSubscriptions:** (Opcional) Establece este indicador para buscar en todas las suscripciones el SCEPman App Service. De lo contrario, preselecciona la suscripción correcta en az o pasa el SubscriptionId correcto.

#### **Ejemplo**

Clonar un SCEPman App Service existente "app-scepman-contoso"

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

![](https://4115997120-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2Fgit-blob-30e1cb5d7dfe6877face335d0524bae25d402d88%2F2022-06-15%2014_29_28-SCEPmanCloneApp.png?alt=media)

Una vez que la implementación haya finalizado correctamente, ve al App Service clonado y comprueba en la página principal de SCEPman que todos los permisos estén configurados correctamente y que todo aparezca en verde y conectado (esto puede tardar hasta 3 minutos después de que finalice la implementación).

![](https://4115997120-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2Fgit-blob-8faef5c52ed690e841b35c50d979d861bb055725%2F2022-06-21%2010_32_37.png?alt=media)

{% hint style="info" %}
Para evitar un único punto de fallo, recomendamos configurar el [WEBSITE\_RUN\_FROM\_PACKAGE](/es/configuracion-de-scepman/application-artifacts.md) del App Service clonado para que apunte al segundo host de artefactos independiente en Azure.

Canal de producción:

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

El App Service original debería tener el primer host de artefactos de forma predeterminada, que apunta a un repositorio de GitHub. Para obtener más información, consulta [Artefactos de la aplicación](/es/configuracion-de-scepman/application-artifacts.md).
{% endhint %}

{% hint style="warning" %}
Clonar un App Service tiene algunas restricciones, como **escalado automático** configuraciones, **programación de copias de seguridad** configuraciones, **App Insights**, etc.. Las configuraciones que no se puedan clonar deberán configurarse manualmente de nuevo en el App Service clonado. Además, los cambios en la configuración de un AppService no se sincronizarán automáticamente con el segundo App Service si se realizan después de la operación de clonación. Para más información, visita <https://docs.microsoft.com/en-us/azure/app-service/app-service-web-app-cloning#current-restrictions>
{% endhint %}
{% endstep %}

{% step %}

### Configurar Traffic Manager

Sigue los pasos a continuación para crear y configurar Traffic Manager y equilibrar el tráfico entre ambas instancias de SCEPman:

1. Busca en Marketplace **perfil de Traffic Manager** y haga clic en **Crear**.
2. Rellena los campos y elige tu grupo de recursos de SCEPman\
   ![](https://4115997120-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FUgVnDX8hq0TTN00kGdHZ%2Fimage.png?alt=media\&token=d497732c-983e-4e9f-bf31-e4a2c0d51086)
3. Luego haz clic en **Crear**.
4. Después de que Traffic Manager se haya implementado, ábrelo y haz clic en **Configuración**
5. Cambia la configuración como sigue y **guarda**<br>

   <figure><img src="https://4115997120-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FAnYpAYYRkqhB2fKYNrF3%2Fimage.png?alt=media&amp;token=a6c73544-72fa-4f07-b29d-f8553c81375b" alt=""><figcaption></figcaption></figure>

{% endstep %}

{% step %}

### Agregar Endpoints

1. Después, en **Configuración** elige **Endpoints**
2. Elige "Azure Endpoint" como **Tipo**, proporciona un nombre para el primer Endpoint y "App Service" como **tipo de recurso de destino**
3. Elige tu SCEPman App Service principal como el **recurso de destino**<br>

   <figure><img src="https://4115997120-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2FjSE1QKh2iExQTuqXrBMB%2Fimage.png?alt=media&amp;token=43112cf2-c134-493e-a0c9-007397cd1744" alt=""><figcaption></figcaption></figure>
4. Repite los mismos pasos para el segundo endpoint y elige el segundo SCEPman App Service (clonado) como el **recurso de destino**
   {% endstep %}

{% step %}

### Configuración del dominio personalizado

Después de una implementación y configuración correctas de los Endpoints de Traffic Manager, debes configurar el **mismo** dominio personalizado para **ambos** instancias de SCEPman como se describe [aquí](/es/configuracion-de-azure/custom-domain.md).

Asegúrate de cambiar el valor de la configuración **AppConfig:BaseUrl** para **ambos** de los SCEPman App Services después de que se hayan creado los dominios personalizados.
{% endstep %}

{% step %}

### Configuración de DNS

En Traffic Manager **Información general,** encontrarás el nombre DNS que debe agregarse a tu DNS

![Información general de Traffic Manager](https://4115997120-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2Fgit-blob-d80894aab4311887f9e7b9a063817e0383c89601%2Fscepman_trafficmanager4.png?alt=media)

* Ve a tu servicio de administración de DNS (por ejemplo, **Zonas de Azure DNS**)
* Elimina cualquier entrada CNAME incorrecta que pueda existir y que apunte a una de las instancias de Azure App Service y añade un CNAME que asigne el dominio personalizado de SCEPman creado al nombre DNS de Traffic Manager. En el ejemplo siguiente, el CNAME debe apuntar a **gk-blueprint-scepman.trafficmanager.net**.

{% hint style="info" %}
En **Zona de Azure DNS**, para modificar un registro, primero debes quitar el bloqueo de DNS navegando a **Bloqueos**.
{% endhint %}

{% hint style="info" %}
Una vez completada la configuración, asegúrate de actualizar la URL del servidor SCEP en tus perfiles SCEP de Intune. La nueva URL debe ser el dominio personalizado que has creado, con "/certsrv/mscep/mscep.dll" al final.

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

{% step %}

### Georredundancia de Storage Account

La configuración predeterminada de SCEPman usa almacenamiento con redundancia local (LRS), que utiliza solo una sola región.

Cambia la redundancia de Locally Redundant Storage (LRS) a almacenamiento georredundante (GRS).

![Diálogo de redundancia de Storage Account en Azure Portal](https://4115997120-files.gitbook.io/~/files/v0/b/gitbook-x-prod.appspot.com/o/spaces%2F-LoGejQeUQcw7lqnQ3WX%2Fuploads%2Fgit-blob-ef32806a7e8d3c5c76c8b9c5191a527f5bae2037%2Fstorage-account-redundancy%20\(1\).png?alt=media)
{% endstep %}
{% endstepper %}


---

# Agent Instructions
This documentation is published with GitBook. GitBook is the documentation platform designed so that both humans and AI agents can read, navigate, and reason over technical content effectively. Learn more at gitbook.com.

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

Perform an HTTP GET request on the following URL with the `ask` and `goal` query parameters:

```
GET https://docs.scepman.com/es/configuracion-de-azure/geo-redundancy.md?ask=<question>&goal=<user_goal>
```

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is what the user is ultimately trying to achieve, the reason they need the answer. Sharing it helps GitBook give you a better, more relevant answer. A goal is most helpful when it describes the outcome the user wants rather than restating the question. For example, with `ask=how do I create an API token`, a goal like `automate deployments from our CI pipeline` lets GitBook tailor the answer to that use case.

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.
