Multiserver in der AWS mit dem S3 Speicher ud RDS

bonkersdeluxe

New Member
HiHo,
Ich habe zur zeit mein Cluster zur zeit erfolgreich am laufen.
Aber ist mir irgendwie zu unflexibel.

ich habe mir mal zum Test eine fertige ISPCONFIG instance im EC2 erstellt mit autoscaling.
Was Ich nur festgestellt habe. AWS ist wie docker. Die Daten werden NICHT zwischen den instancen synchronisert, schade eigentlich... Oder Ich habs nicht gefunden wie das geht ;-) Das wäre natürlich das einfachste...

Ich habe mir gerade kurz angeschaut, S3 Speicher kann man auch über fstab anbinden.
Damit wäre mein Gedanke 4 - S3 Speicher mountpoints zu erstellen.


Einmal für die /etc/apache2/sites-available
Einmal für die /etc/apache2/sites-enable (auch wenn es nur Symlinks sind müssen sie auf allen Instancen sein)
Einmal für das /var/www
Einmal für das /var/mail

Die Datenbank wäre ein RDS von Amazon. Was Ich nur nicht verstehe, die bieten noch Replikation an.
Ich dachte eine RDS ist schon eine HA Datenbank so das man sich um Verfügbarkeit keine Gedanken machen muss.
Dazu kurze Frage zum S3, muss man dazu auch noch HA beantragen?
Denn Ich dachte Deshalb nimmt man Amazon RDS und S3 Speicher weil einen Hochverfügbarkeitsspeicher bieten,
wo dessen Größe in der Laufzeit geändert werden können. genau bei der Datenbank, muss es schneller gehen per
Laufzeit die IOPS und/oder Größe ändern.

Nun die Grundfrage.
Ich müsste (wie weiß ich nocht nicht) die imagevorlage für die Instance ändern das die fstab drin ist, die Datenbank dahin verlegt wird.
Oder ich installiere in einen Debian tatsächlich ISPconfig neu, mit den Daten und erstelle dann das Image mit
dem S3 Speicher und RDS Datenbankspeicher als ein vorhandendes Image abzuändern.
Wenn nun eine zweite instance eröffnet wird durch den autoscaler weil die CPU last zu hoch wird oder RAM verbauch zu hoch werden.
Müsste sich doch die zweite instace wie die erste verhalten nur mit anderer ip adresse.
Dafür hatte ich dann den loadbalancer von amazon davor davor.

Die Frage die Ich mir dann zusätzlich noch stelle ist, wie werden dann die Benutzerkonten repliziert zum anmelden. (SSH etc)
Geht das überhaupt so, oder verschluckt ispconfig sich wenn zwei instancen auf ein und die selbe Datenbank zugreifen. Denn für die instances siehts ja aus, als wäre jeder für sich. Ich hätte auch alle Dienste auf einer instance. Für DNS würde ich einen zweiten LB anlegen, so das ich zwie ip adressen habe die auf mein instances zeigen. denn standard mäßig sollen 2 instances immer laufen. Und dann wachsen bei bedarf durch den autoscaler

*edit*
Eine Idee kam mir gerade noch..
Oder ISPCONFIG installieren.
Dann die instance wieder löschen. Aber die Master DB bleibt ja quasi auf dem RDS liegen.
Nu eine neue instance installieren aber als Server node.
Die managment auf die Master DB linken.

So hätte jeder host seine eigene Datenbank die ja wie beim Multiserver auch.
Dort habe ich ja bei mir nur die webinterface auf die master umgelegt, damit von überall sites email etc angelegt wird. Nun die Preisfrage.

Würde es die anderen instancen stören wenn sie kopie von server 1 sind den es ja eigentlich garnicht gibt weils ja nur nach ne Datenbank ist.

Wenn dann eine zweite instance gestartet wird, musste sich doch automatsich nur die ip und hostname ändern. Zickt der dann rum, wenn alle weiteren hosts die gleiche DB nutzen.
*edit*

Wieder einmal leider wieder viel Text. Ich hoffe ich konnte erklären was Ich vor habe.
Vielen Dank auch für die Geduld!
Viele Grüße Bonkersdeluxe
 
Zuletzt bearbeitet:

logifech

Active Member
Wie bzw. womit läuft dein aktuelles Cluster denn? Von Amazon hab ich leider keine Ahnung aber ich kann die Hetzner Cloud sehr empfehlen, dort habe ich mir ein sehr flexibles Multiserver Cluster gebaut mittels Cloud Volumes
 

bonkersdeluxe

New Member
Zur zeit habe Ich ein Multicluster mit Ceph für /var/mail und/var/www.
Jede Node hab ich manuell installiert und dem Cluster hinzugefügt.
Nur müsste dieses ja automatsich passieren.
Denn zur zeit ist mein Cluster statisch.
jep habe meine Nodes noch auch bei Hetzner, habe mir da zwei vps für den HA loadbalcer mit floating IP geholt. Klappt wunderbar. Und hab an verschiedenen Standorten das Ceph und Galera Cluster.
in diesem Post hat Till mir beschrieben wie das Funktioniert.


Nun möchte ich flexibel skalieren können und mir keine gedanken mehr machen müssen für die Infrastruktur darunter.
Deshalb dachte ich um ein DSGVO komform zu sein, an die AWS in Deutschland Standort Frankfurt:
ich hatte mich da auch nie mit beschäftigt....
Nur jetzt wenn ich den autoscaler benutzen will. Werden instancen vom Abbild erstellt. Wie Docker orchester / kubernetes. Docker viel bei mir damals raus genau deshalb. keine synchronisierung zwischen den instancen.
Bei Amazon sehe ich den mehrwert bei der Überwachung geht die CPU last über meinen wert, wird einfahc ne zweite instance eröffnet. Geht der speicher zu neiege wird der S3 erweitert oder die RDS. Zumindest hoffe ich das das auch über watch gesteuert werden kann. Soweit bin ich noch nicht.
Also komplett umdenken.
 

bonkersdeluxe

New Member
HiHo,
So es geht weiter.
Also S3 Bucket kann keine berechtigungen setzten.
Geht nur mit efs Storage.
Da die AWS image ja wie Docker Conateiner sind. Habe Ich das www Verzeichnis schon mal auf das efs laufwerk gemountet per fstab.
Das klappt auch.
Wo/welche verzeichniss außerhalb des www ordners gehören denn zu ispconfig?
Denn diese möchte ich auch auf den storage auslagern.
Solabld ein Update auf die nächste ISPCONFIg Version auf der Hauptinstance gelaufen ist. Sind alle anderen Hosts auch gleich geupdatet.
Eventeuelle Linux Programm Pakete sind auf den anderen Servern noch alt. Ich würde dann den ersten Server als Vorlage speichern und die anderen instancen mit der refreshen. Im Autoscaling soll das Angeblich gehen.
Aber zumindet, wird dann wenn auf die anderen Server auf ispconfig zugegriffen wird, nicht der Fehler gegeben.
Version unterschiedlich oder ähnliches.

Also kurz und knapp:
Welche Verzeichnisse von ispconfig muss ich auf ein shared storage legen?
Wenn das erledigt ist, kommt die nächste Challenge. die passwd unter den Hosts synchronisieren.
und dem efs synchronisieren. Denn wird eine neue instance erstellt, muss sich der Host die ja irgendwo wegholen.

Vielen Dank!
Viele Grüße Bonkersdeluxe
 

bonkersdeluxe

New Member
Shit, alles kompliziert.
EFS (NFS4) unterstützt anscheinend kein Quota.
oder geht es doch irgendwie?
Denn quota, wird doch für die Speicherberechnung wie viel ein Benutzer verbraucht hat genutzt oder nicht?
oder nutzt ISPCONFIG da andere Mittel?
Es macht keinen Spass mehr.
Vielen Dank!
Viele Grüße Bonkersdeluxe
 

logifech

Active Member
Richtig, nfs unterstützt kein Quota. Das klingt mir auch bis her einfach nach zu viel bastellei bei Amazon…
 

bonkersdeluxe

New Member
Hi logifech,
Danke für die Antwort.
Mir leider auch....
Mein ursprungsgedanke war ein HA Storage ohne sich darüber Gedanken machen zu müssen wie unten drunter aussieht. Skalierbar ohne ende. Denn ich zahle das was Ich belege.
Auf dieses würden die ispconfig Daten liegen.
Dann eine HA Datenbank ohne das ganze Galeracluster gedöns selbt zu verwalten.
Also ein Datenbnakserver der im Hintergund ein ausfallsicherer ist.
Sollte die Rechen leistung nicht reichen wird einfach eine neue instance durchs autoscaling erstellt.
Da alle Daten auf dem nfs share liegen. Gibt es nichts was repliziert werden müsste, außer die Systembenutzerkonten.
Aber nun denn, doch komplizierter als gedacht, dabei will Amazon doch geld verdienen.
Warum dann sooo kompliziert wie du schon sagtest...
und ein EC2 instance las nfs server wäre dann ja die Krücke, wenn Sie überlastet ist. Denn die kann man ja wieder nicht klonen, denn dazu benötigt man ja wieder ein shared storage und somit wieder das gleiche problem...

Gibts ein Netzwerkfäiges Blockdevice oder so?
Auf dem nfs share eine image Datei legen und dann mounten, fragt sich nur mit welchem Dateisystem.
Weil dann würden die instancen das nfs share mounten und dann mit dem Quota die das fileblockdevice.
Wenn man es dann on the fly vergrößern kann, könnte ich damit leben.
ich kann ja sehen wie viel platz dann im blockfileimage belegt ist. Und dieses dann vergrößern.
Ist aber auch mitm pfeil von hinten durch die brust Lösung, wenn es so ginge...
Das andere ist natürlich angenehmer, um gar nichts kümmern was mir ja auch am liebsten wäre...
Viele Grüße Bonkersdeluxe
 
Zuletzt bearbeitet:

bonkersdeluxe

New Member
HiHo, oki, anderer Ansatz.
Ich würde das Galera Cluster Extern und den Speicher auch extern wieder auf ceph ablegen.
Dann muss Ich halt diese eben monitoren, so das mir der Speicher nicht ausgeht.
Bei den Galera CLuster kommt ein loadbalancer davor.
Nun die Frage:
Wie kann ich die lokalen Systemkonten synchronisieren?
Denn Ich möchte ispconfig als Instance speichern, wo die Datenbank und Verzeichnismounts vordefiniert sind.
Und wenn eine Instance zu hohe last bekommt, einfach ne zweite instance dazu erstellen lassen.
Angesprochen werden die ja auch über den Loadbalancer.
Nur wenn ein user angelegt wird, wird ja auch ein ssh user angelegt, das sind aber doch system benutzer mit ner jailkit shell.
Wie kann Ich diese synchroniseren?
Kann man diese einfach neu generieren lassen, aus der mysql datenbank?
Weil dann würde ich einfach ein cronjob alle minute laufen lassen, das die systemuser/sshuser neuerstellt oder so. Geht das neu erstellen auch für die mysql user mit den rechten?
Ich Danke!
Liebe Grüße Bonkersdeluxe
 
Zuletzt bearbeitet:

bonkersdeluxe

New Member
Hi Till,
Nur wie mach Ich ein Cluster Setup als EC2 instance oder Docker Instance?
Das ist ja gerade das worum es mir geht.
Zur Zeit habe Ich das so, mit dem mirror.
Nur bei EC2 wird ja eine instance von ner Vorlage erstellt. Wenn die CPU Load zu krass wird un die EC2 meinetwegen 4 Instancen erstellt. Dann kann das ja kein Mirror sein, denn die erste also master Instance müsste dann ja schon ein mirror sein. Was ja ohne Master nicht geht.
Außerdem muss ja jedes Mirror händisch an den Master angebunden sein.
Denn Ich nehme mal an, Ich kann kein Mirror zweimal haben, alleine schon weil der Name und IP ja iweder automatisch vergebn sind, und man nicht vordefinieren kann sind, den vergibt die AWS ja automatsich.
Es sei denn Ich hab hier voll den Denkfehler.
Denn beim Multiserver Setup, muss Ich jede node selbst von Hand anlegen.
geht beim Autoscaling von EC2 und Docker aber leider nicht.
Deshalb hab Ich mich schon damit abgefunden die DB Server und den Speicher auf Server zu packen die Ich manuell hinzufügen muss, wenn Ich den Speicher erweitern will.
Aber ein Autoscale bei CPU und Bandbreitenauslastung wäre schon ganz hübsch.
Das ist eigentlich das was Ich möchte, wird die Bandbreite rechenleistung zu wenig, wird einfach Automatisch eine weitere Instance erstellt und am Loadbalancer angemeldet.
Ich Danke Dir!
Liebe Grüße Bonkersdeluxe
 
Zuletzt bearbeitet:

Werbung

Top