Wir haben eine Standard-Webserverkonfiguration für Mainstream-CMS-Software wie Drupal und WordPress eingeführt, mit dem Server und dem Speicher auf EC2 / EBS und der Datenbank für diese Softwarepakete in RDS / MySQL.
Normalerweise gehen wir mit einer t2.micro- CPU und einer db.t2.micro- DB in Produktion , was Kunden mit uns und AWS glücklich macht, da sie oft das erste Jahr auf der kostenlosen Ebene bleiben können. Die Standardüberwachungstools auf EC2 zeigen deutlich, wann wir möglicherweise die teuerste Ressource für den Webhost überschreiten, nämlich die CPU-Auslastung . Wenn sich der Schwellenwert 10% nähert oder 10% überschreitet, wissen wir, dass die Zeit für die Migration auf den Instanztyp t2.small gekommen ist .
Wir sind uns weit weniger sicher, wie wir feststellen können, wann ein Upgrade von db.t2.micro auf db.t2.small und möglicherweise darüber hinaus erforderlich ist . Diese Anforderungen umfassen keine Multi-AZ- oder Lesereplikate, sondern nur Bedingungen, unter denen sich die CMS-Software in Spitzenzeiten, die wir über ein Diagramm oder einen Alarm erkennen müssen, möglicherweise stark auf die Datenbank stützt.
In den Dokumenten für EC2-Instanzen sind die eigenen Grenzwerte klar angegeben, und ich habe mich gefragt, ob solche Grenzwerte für RDS-Instanzen für unseren einfachen Fall empfohlen werden könnten. Die allgemeinen Anforderungen in den Best Practices für Amazon RDS sind hilfreich, obwohl ich nicht alle Links befolgt habe, da ich lediglich versuche, Schwellenwerte festzulegen, die wir festlegen können, um ein DB-Instanz-Upgrade eindeutig auf eine Weise zu erfordern, die meine nicht technische Kunden können verstehen und beobachten.
Ich gebe zu, dass ich kein DBA bin; Aufgrund meiner Arbeit habe ich die Datenbankarchitektur den Designern der CMS-Software überlassen. Ich bin auf jeden Fall bereit, die Grundlagen der Leistungsbewertung zu erlernen, wenn mir jemand sagt, wo ich anfangen soll, wenn es um diese Konfiguration auf der AWS-Plattform geht. Vielleicht habe ich noch nicht die richtigen offiziellen Dokumente oder Tutorials gefunden.
Alternativ: Wir müssen nur wissen, wie man quantitativ misst, ob eine Verzögerung beim Zugriff auf unsere RDS-Instanz darauf zurückzuführen ist, dass die Instanzgröße zu klein ist (oder die MySQL-Ressourcenparameter möglicherweise zu niedrig eingestellt sind), basierend auf dem, was wir in CloudWatch sehen.
Trivial kann ich feststellen, ob die CloudWatch-Metrik Freeable Memory nahe Null wird, dann würden wir ein Instanz-Upgrade benötigen. Und wie bei unserer EC2-Instanz muss es auch hier eine maximale CPU-Auslastung geben, die meiner Meinung nach weit unter 100% liegen würde, obwohl ich dies nicht wie bei EC2 dokumentiert habe. Ich stelle mir vor, dass es für DB Connections ein praktisches Maximum geben würde . Schließlich hoffe ich, dass mir jemand sagt, wie man Write IOPS & Read IOPS interpretiert und ob dies kleinen Konfigurationen wie unserer Leistungseinschränkungen auferlegt oder ob sie einfach zur Berechnung der Kosten verwendet werden.
ps, ich habe versucht, dies in den AWS-Foren zu veröffentlichen: Amazon Relational Database Service, aber der Link " Neuen Thread veröffentlichen " liefert derzeit eine "Umleitungsschleife". (Entschuldigung, ich kann hier keine weiteren URLs einfügen, aber ich bin nicht erlaubt.)
[bearbeiten, Antwort auf Kommentar] danke @Ross, ich wusste nicht, dass CPUCreditBalance auch auf RDS verfügbar ist (ich hatte es auf EC2 gesehen); Ich habe nicht gesehen, dass es einen zweiten Bildschirm mit 7 weiteren Metriken gibt, wobei alle 17 aus einer Liste ausgewählt werden können. Ich frage mich immer noch, welche Einschränkungen anderen überwachbaren Ressourcen als der CPU auferlegt werden könnten, insbesondere der E / A-Aktivität, je nach RDS-Instanztyp.
pps, ich habe die Frage etwas verfeinert und in AWS-Foren veröffentlicht ( Wie kann ich feststellen, ob RDS T2-Instanzen mit CloudWatch-Statistiken die richtige Größe haben? )