AWS: Können wir mehrere EC2-Instanzen und RDS für ein einzelnes Produkt als horizontale Skalierung in Betracht ziehen?

AWS: Können wir mehrere EC2-Instanzen und RDS für ein einzelnes Produkt als horizontale Skalierung in Betracht ziehen?

Was ich in Stack Overflow und anderen Blogs gelesen habe-

https://stackoverflow.com/questions/11707879/difference-between-scaling-horizontally-and-vertically-for-databases/11715598#11715598

http://ht.ly/cAhY6

https://hackernoon.com/database-scaling-horizontal-and-vertical-scaling-85edd2fd9944

https://stackoverflow.com/questions/27157227/kann eine relationale Datenbank horizontal skalieren?

Konzept: Multi-Tenant-Web-App (CRM)

Nachdem ich alle oben genannten Blogs zusammengefasst hatte, war ich verwirrt. Ich habe das folgende Szenario

  • Mehrere EC2-Instanzen und RDS-Instanzen für ein einzelnes Produkt – Hier haben wir geplant, dass eine EC2-Instanz ein RDS und Failover-Pläne hat. Sehen wir uns das einmal an: 25 Mandantenanfragen werden in einer EC2-Instanz bearbeitet und die Daten werden im entsprechenden RDS verwaltet. Eine weitere EC2-Instanz und ein RDS werden für einen weiteren Satz von 25 Mandanten verwaltet. Jede EC2-Instanz hat dieselbe Codebasis.

Können wir sagen, dass es sich um eine horizontale Skalierung handelt? Wenn nicht, was muss getan werden, um die exakte horizontale Skalierung zu erhalten?

Antwort1

Horizontale Skalierungbedeutet normalerweise, dass Sie eine Flotte vonundifferenzierte Serverwo jeder Server dienen kannbeliebigAnfrage. Und Sie skalieren die Kapazität nach oben und unten, indem Sie weitere derselben Server hinzufügen oder entfernen.

Mitvertikale SkalierungSie würden einfach Ihren Server auf eine größere Kapazität aktualisieren, z. B. eine größere Instanz mit mehr CPUs und mehr Speicher.

Für die horizontale Skalierung in AWS benötigen Sie normalerweise:

  • Flotte vonzustandslose Serverdie alle gleich konfiguriert sind und keineBenutzerdatenund können ohne zusätzliche Konfiguration automatisch hinzugefügt und jederzeit ohne Datenverlust entfernt werden.
  • Benutzerdaten gespeichert in einemDatenbank(z. B. RDS), auf einemgemeinsam genutztes Dateisystem(z. B. EFS) oder in einemObjektspeicher(z. B. S3), nicht auf den eigentlichen Servern.
  • Lastenausgleicherdie Last ungefähr gleichmäßig auf die Server zu verteilen (z. B. EC2-Instanzen, Fargate-Container usw.)
  • automatischKapazitätsskalierungd. h. Hinzufügen und Entfernen von Servern basierend auf der tatsächlichen Auslastung.

Die Definitionen können unterschiedlich sein, aber ich würde Ihr Setup nicht als horizontal skaliert bezeichnen, da Sie lediglich eine weitere Instanz hinzugefügt haben, um einselbstständiges Arbeitspensum(Ihre anderen Mandanten) und nicht mehr Kapazität hinzugefügt, um die gleiche Arbeitslast wie der erste Knoten zu unterstützen.

Hoffentlich hilft das :)

verwandte Informationen