Balanceador de carga de Google Cloud + grupo de instancias + certificados SSL

Balanceador de carga de Google Cloud + grupo de instancias + certificados SSL

Mi proyecto consiste en un sitio web principal donde los usuarios pueden registrar una cuenta. Después de registrarse, cada uno obtiene un sitio web (subdominio de mi propio dominio) donde tienen una tienda de comercio electrónico administrada por una plataforma alojada en mi sitio principal (en el que se registraron).

ejemplo1.com -> sitio web principal (iniciar sesión, registrarse, etc.)
ejemplo1.com/plataforma -> plataforma de gestión
store1.example1.com -> tienda del usuario 1
store2.example1.com -> tienda del usuario 2

Y en términos de hardware en este momento mi configuración es la siguiente: 1 instancia de VM en GCP con Apache, un par de hosts virtuales configurados con algunos comodines que pueden asignar el dominio solicitado a la carpeta adecuada.
También generé un certificado comodín en mi dominio principal protegiendo todas las tiendas de mis clientes con SSL.

Ahora, quería evitar la sobrecarga del servidor con el tiempo, así que pensé que tener un balanceador de carga conectado a un grupo de instancias de máquinas replicadas del explicado anteriormente resolvería mi problema, en teoría funciona, pero tengo un problema:

Cada usuario tiene el poder de comprar un nombre de dominio propio y redirigirlo a mi ip (LB o VM) para que su tienda se vea así:

store1.com -> Tienda del usuario 1
store2.com -> Tienda del usuario 2

Y, si quisieran, podrían "comprar" un certificado SSL en mi plataforma para proteger su nombre de dominio. Puedo manejar fácilmente la creación de certificados SSL sobre la marcha a través de certbot y letsencrypt de API pero, dado que mis máquinas virtuales se ejecutarían en un grupo de instancias, cualquier archivo de certificado que guarde en la máquina virtual que funciona actualmente no se replicará en las demás (si corresponde). ) e incluso podría perderse cuando el grupo de instancias decidiera que ya no necesitaba esa VM actual. ¿Cómo podría organizar todo (LB, grupo de instancias, vm y/o apache) para que el balanceador de carga envíe tráfico a varias máquinas virtuales en mi grupo de instancias pero puedan "compartir" de alguna manera la carpeta de certificados o incluso todo el disco? ?

Por cierto, el disco persistente en VM solo se puede montar en varias VM si están en modo de solo lectura (no funcionará) y también probé el almacén de archivos, pero cuesta 200 por mes y eso es un poco demasiado solo para esto.

Respuesta1

Como señaló @JohnHanley:

Administre los certificados en la configuración de LB y elimine certbot del servidor web. Habrá algunos gastos generales con la verificación del dominio de Google, pero definitivamente vale la pena intentarlo.

En cuanto a la configuración de LB y los certificados:

  • no se puede cambiar un certificado configurado en un LB
  • pero puede agregar un nuevo certificado (por ejemplo, con un nombre de host adicional) y agregarlo a un LB existente y luego eliminar la configuración del certificado anterior.

Existen algunos módulos de Terraform que podrían ayudarlo, pero, por supuesto, esto también generaría un esfuerzo de aprendizaje y gestión.

información relacionada