Google Cloud Load Balancer + Instanzgruppe + SSL-Zertifikate

Google Cloud Load Balancer + Instanzgruppe + SSL-Zertifikate

Mein Projekt besteht aus einer Hauptwebsite, auf der Benutzer ein Konto registrieren können. Nach der Registrierung erhält jeder von ihnen eine Website (Subdomain meiner eigenen Domain), auf der er einen E-Commerce-Shop hat, der von einer Plattform verwaltet wird, die auf meiner Hauptwebsite (der Website, bei der sie sich registriert haben) gehostet wird. So

example1.com -> Hauptwebsite (Anmeldung, Registrierung usw.)
example1.com/platform -> Verwaltungsplattform
store1.example1.com -> Shop von Benutzer 1
store2.example1.com -> Shop von Benutzer 2

Und was die Hardware angeht, sieht mein Setup derzeit folgendermaßen aus: 1 VM-Instanz in GCP mit Apache, ein paar virtuelle Hosts mit einigen Platzhaltern, die die angeforderte Domäne dem entsprechenden Ordner zuordnen können.
Ich habe auch ein Platzhalterzertifikat auf meiner Hauptdomäne generiert, das alle Geschäfte meiner Kunden mit SSL schützt.

Nun wollte ich eine Überlastung des Servers mit der Zeit verhindern, also dachte ich, dass ein Load Balancer, der mit einer Instanzgruppe von Maschinen verbunden ist, die von der oben beschriebenen repliziert wurde, mein Problem lösen würde. Theoretisch funktioniert es, aber ich habe ein Problem:

Jeder Benutzer hat die Möglichkeit, einen eigenen Domänennamen zu kaufen und ihn auf meine IP (LB oder VM) umzuleiten, sodass sein Shop ungefähr so ​​aussieht:

store1.com -> Shop von Benutzer 1
store2.com -> Shop von Benutzer 2

Und wenn sie wollten, könnten sie auf meiner Plattform ein SSL-Zertifikat „kaufen“, um ihren Domänennamen zu schützen. Ich kann die Erstellung von SSL-Zertifikaten problemlos im laufenden Betrieb über die APIs Certbot und Letsencrypt abwickeln, aber da meine VMs auf einer Instanzgruppe laufen würden, würde jede Zertifikatsdatei, die ich auf der aktuell arbeitenden VM speichere, nicht auf die anderen (falls vorhanden) repliziert und könnte sogar verloren gehen, wenn die Instanzgruppe entscheidet, dass sie die aktuelle VM nicht mehr benötigt. Wie könnte ich alles (LB, Instanzgruppe, VM und/oder Apache) so anordnen, dass der Load Balancer Datenverkehr an mehrere VMs in meiner Instanzgruppe sendet, diese aber irgendwie den Zertifikatsordner oder sogar die gesamte Festplatte „teilen“ könnten?

Übrigens kann eine persistente Festplatte auf VMs nur dann auf mehreren VMs gemountet werden, wenn sie sich im schreibgeschützten Modus befinden (funktioniert nicht). Ich habe auch Filestore ausprobiert, aber das kostet 200 pro Monat und das ist ein bisschen viel nur für diesen Zweck.

Antwort1

Wie @JohnHanley betonte:

Verwalten Sie die Zertifikate im LB-Setup und entfernen Sie Certbot vom Webserver. Bei der Google-Domänenüberprüfung entsteht ein gewisser Aufwand, aber einen Versuch ist es auf jeden Fall wert.

Bezüglich LB-Konfiguration und Zertifikaten:

  • Sie können ein konfiguriertes Zertifikat auf einem LB nicht ändern
  • Sie können jedoch ein neues Zertifikat (z. B. mit einem zusätzlichen Hostnamen) hinzufügen und es zu einem vorhandenen LB hinzufügen und später das ältere Zertifikat-Setup entfernen

Es gibt einige Terraform-Module, die Sie unterstützen könnten, aber dies würde natürlich auch einen gewissen Lern- und Verwaltungsaufwand bedeuten.

verwandte Informationen