MongoDB
 sql >> Datenbank >  >> NoSQL >> MongoDB

Wie stellen Sie sicher, dass Ihre MongoDB-Cluster Amazon AWS-Ausfälle überleben können?

Wenn Sie Ihren MongoDB-Cluster in der Amazon AWS-Region USA-Ost hosten, war der letzte Monat ziemlich interessant – zwei Ausfälle in vier Wochen haben die Betriebsbereitschaft Ihrer Cloud getestet Einsätze. Während ich diesen Blogbeitrag schreibe, treten auch in der Region Sao Paulo Verbindungsprobleme auf. Eine überraschende Anzahl von Produktionsdatenbanken hat den AWS-Ausfall nicht überlebt. Wir hatten die Gelegenheit, mit einer Reihe von MongoDB-on-AWS-Kunden zu sprechen, um zu verstehen, wie sich der Ausfall auf ihre Bereitstellungen ausgewirkt hat. Ich habe eine kurze Umfrage unter betroffenen Personen durchgeführt, und hier sind die vier Hauptgründe, warum Teams Ausfallzeiten erlebten:

  1. Ausführen einer eigenständigen Instanz im Vergleich zu einem Replikatsatz

    Wenn Sie einen MongoDB-Produktionsserver betreiben, gibt es wirklich keine Entschuldigung dafür, eine eigenständige Instanz statt eines Replikatsatzes auszuführen. Erstellen Sie einen Replikatsatz, damit Sie im Falle eines primären Ausfalls ein sekundäres Failover haben können.

  2. Keine Verteilung von Replikaten über Verfügbarkeitszonen hinweg

    Stellen Sie sicher, dass Sie Ihre Replikate über verschiedene Verfügbarkeitszonen in einer Region verteilen. Auf diese Weise übernehmen Ihre verbleibenden Server, wenn ein einzelnes AZ ausfällt, wie es in diesem Monat zwei Mal passiert ist, und Sie haben einen funktionierenden Cluster. Wenn Ihre Region nur zwei AZs hat, platzieren Sie Ihren Schiedsrichter in einer anderen Region. Dies wird Ihnen jedoch nicht helfen, wenn die gesamte Region ausfällt. Wenn Sie den Ausfall einer gesamten AWS-Region überleben möchten, müssen Sie Ihren Replikatsatz auf verschiedene Regionen verteilen.

  3. Ihre Front-Ends oder App-Server nicht über Verfügbarkeitszonen verteilen

    Stellen Sie sicher, dass Sie Ihre Front-Ends auf verschiedene Verfügbarkeitszonen verteilen. Es macht keinen Sinn, Ihre Datenbank am Laufen zu halten, wenn Ihr Front-End ausgefallen ist. Wenn Sie Kostenprobleme haben, können Sie in jedem AZ ein aktuelles Frontend „stoppen“, das Sie bei Bedarf einschalten können. Eine weitere Option sind kleinere Frontends.

  4. Verbinden Sie sich mit dem Replikatsatz im Vergleich zu einem einzelnen Server in Ihrer Verbindungszeichenfolge

    Vergewissern Sie sich, dass Sie sich mit dem Replikatsatz und nicht mit einem einzelnen Server verbinden. Die Syntax ist für verschiedene Treiber unterschiedlich, aber überprüfen Sie Ihre Treiberdokumentation, um sicherzustellen, dass Sie die richtige Syntax verwenden, um eine Verbindung zum Replikatsatz anstelle eines einzelnen Servers herzustellen. Auf diese Weise wird der MongoDB-Treiber bei einem Failover das Richtige tun und sich mit der neuen Primärdatenbank verbinden.

Bei ScaleGrid automatisieren wir alle betrieblichen Aspekte Ihrer Bereitstellung, sodass Sie sich auf Ihre App konzentrieren können und sich nicht um den Betrieb kümmern müssen. Wenn Sie mit ScaleGrid einen MongoDB-Replikatsatz erstellen, verteilen wir die Replikate automatisch auf die Verfügbarkeitszonen. Aufgrund dieser Verteilung konnten alle unsere Kunden das AWS-Ausfallzeitproblem sicher umgehen. Wenn Sie an einer detaillierteren Lektüre zu den betrieblichen Aspekten von MongoDB interessiert sind, können Sie meinen früheren ausführlichen Blogbeitrag lesen – 10 Fragen, die Sie stellen und beantworten müssen, wenn Sie MongoDB auf AWS hosten