> 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 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 geo-redundancia / alta disponibilidad está actualmente disponible 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 el tiempo y con conocimientos de los procedimientos para gestionar estos 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 dirige las solicitudes (basadas en DNS) al CA de SCEPman a un par de instancias de SCEPman desplegadas en diferentes geoubicaciones. 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 sondea constantemente ambas instancias de SCEPman. En caso de que una instancia deje de estar disponible, todo el tráfico se dirigirá automáticamente a la instancia disponible.

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

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

## Flujo de trabajo

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

## Pasos

{% stepper %}
{% step %}

### Clonar app

Para clonar un App Service, primero necesitas crear un nuevo **plan de App Service** en una segunda geoubicación; allí se desplegará la app clonada. Puedes crearlo 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 plan de App Service 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 App Service de SCEPman y configurará todos los permisos requeridos:

```
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 App Service de SCEPman existente.
* **TargetAppServiceName:** El nombre del nuevo App Service de SCEPman clonado.
* **TargetAppServicePlan:** El nombre del plan de App Service para la instancia clonada de SCEPman. El App Service Plan debe existir ya en TargetResourceGroup.
* **SourceResourceGroup:** (Opcional) El grupo de recursos de Azure que aloja el App Service de SCEPman existente. Déjalo vacío para la autodetección.
* **TargetResourceGroup:** (Opcional) El grupo de recursos de Azure que aloja el nuevo App Service de SCEPman. Déjalo vacío para autodetectar 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 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 App Service de SCEPman. De lo contrario, preselecciona la suscripción correcta en az o pasa el SubscriptionId correcto.

#### **Ejemplo**

Clona un App Service de SCEPman 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)

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

![](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 falla, recomendamos configurar el [WEBSITE\_RUN\_FROM\_PACKAGE](/es/configuracion-de-scepman/application-artifacts.md) del App Service clonado en el 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 **autoscale** configuraciones, **programación de copias de seguridad** configuraciones, **App Insights**, etc. Las configuraciones que no se pueden clonar deben 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 obtener 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 implementar Traffic Manager, ábrelo y haz clic en **Configuración**
5. Cambia la configuración de la siguiente manera 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 %}

### Añadir puntos de conexión

1. Luego, en **Configuración** elige **Puntos de conexión**
2. Elige "Azure Endpoint" como **Tipo**, proporciona un nombre para el primer punto de conexión y "App Service" como **tipo de recurso de destino**
3. Elige tu App Service principal de SCEPman 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 punto de conexión y elige el segundo App Service de SCEPman (clonado) como el **recurso de destino**
   {% endstep %}

{% step %}

### Configuración de dominio personalizado

Después de una implementación y configuración correctas de los puntos de conexión de Traffic Manager, necesitas 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 App Services de SCEPman después de que se hayan creado los dominios personalizados.
{% endstep %}

{% step %}

### Configuración de DNS

En Traffic Manager **Resumen,** encontrarás el nombre DNS que debe añadirse a tu DNS

![Resumen 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)

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

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

{% hint style="info" %}
Al completar la configuración, asegúrate de actualizar la URL del servidor SCEP en tus perfiles SCEP en 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 %}

### Geo-redundancia de Storage Account

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

Cambia la redundancia de almacenamiento redundante local (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 dynamically by asking a question.

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

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

`ask` is the immediate question: it should be specific, self-contained, and written in natural language.
`goal` is optional and describes the broader end goal you are ultimately trying to accomplish on behalf of the user. GitBook uses it to tailor the answer towards what is most useful for that goal.

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.
