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

So stellen Sie MongoDB auf Heroku bereit

MongoDB Atlas lässt sich einfach und kostenlos einrichten und MongoDB auf Heroku bereitstellen. Der MongoDB-Atlas wird allgemein als Multi-Cloud-Datenanwendungsplattform bezeichnet. Es ist ein integrierter Daten- und Cloud-DB-Dienst, der die Erstellung von Daten durch Benutzer vereinfacht und beschleunigt.

Wenn Sie anfangen, komplexere Cloud-native Apps zu entwickeln, ist die Auswahl der richtigen Tools und Dienste in der Regel ziemlich überwältigend. Dies ist jedoch bei der Auswahl des besten Cloud-DB-Dienstes nicht der Fall, da MongoDB Atlas Ihre beste Lösung ist.

Andererseits ist Heroku eine Platform as a Service (PaaS), die Entwicklern die Möglichkeit bietet, Apps in der Cloud auszuführen, zu erstellen, zu manipulieren und zu betreiben. Heroku unterstützt eine Vielzahl von Programmiersprachen.

Dieser Artikelleitfaden veranschaulicht, wie MongoDB auf Heroku bereitgestellt wird. Wir werden die MongoDB Atlas-Version verwenden, da sie sich problemlos in die meisten Heroku-Anwendungen integrieren lässt. Dieser Prozess mag auf den ersten Blick komplex erscheinen, aber Sie werden feststellen, dass nichts kompliziert ist, wenn Sie tief in ihn eintauchen. Sie müssen lediglich die Verbindungszeichenfolge Ihres MongoDB-Atlas-Clusters auf eine bekannte Heroku-Konfigurationsvariable setzen, und Sie können loslegen.

Die Atlas-Edition ist ein vollständig verwalteter Cloud-MongoDB-Dienst, der die Verwaltung von MongoDB-Clustern in der Cloud automatisiert. Es bietet Benutzern automatische Skalierung, automatisierte Backups, vollständiges Suite-Management, Analysetools und einen Multi-AZ-Toleranzfehler. MongoDB Atlas gehört zu den fortschrittlichsten DBaaS.

Befolgen Sie die hier bereitgestellten Schritte, um zu erfahren, wie Sie MongoDB in Betrieb nehmen und schnell ausführen können. Sie können auch sehen, wie Sie den MongoDB-Atlas-Cluster mit den Heroku-Apps verbinden, indem Sie der ausführlichen Anleitung in diesem Artikel folgen.

So stellen Sie MongoDB auf Heroku bereit

Dieser Artikelleitfaden geht davon aus, dass Sie die folgenden Voraussetzungen erfüllen:

  1. Sie kennen sich gut mit MongoDB aus und haben MongoDB-Anwendungen geschrieben
  2. Sie sind mit Heroku vertraut und haben bereits Heroku-Anwendungen bereitgestellt
  3. Sie haben die Heroku-CLI installiert
  4. Du kennst dich mit Git aus und hast es installiert.

Lassen Sie uns mit den genannten Voraussetzungen mehr über das oben besprochene Thema erfahren.

Einrichten des MongoDB-Atlas-Clusters

Zunächst sehen wir uns an, wie der MongoDB-Atlas-Cluster in weniger als fünf Schritten eingerichtet wird.

Schritt 1:Erstellen eines MongoDB-Atlas-Kontos

Hinweis: Wenn Sie bereits ein MongoDB-Konto mit Ihrer E-Mail-Adresse erstellt haben, überspringen Sie den Registrierungsprozess und melden Sie sich bei Ihrem Konto an.

Die Registrierung für ein neues MongoDB Atlas-Konto ist sehr einfach. Sie können sich dafür entscheiden, Ihre E-Mail-Adresse oder Ihr Google-Konto für die Registrierung zu verwenden.

Der Prozess ist völlig kostenlos; Daher müssen Sie sich keine Gedanken über zusätzliche Gebühren machen.

Folgen Sie diesem Link, um sich kostenlos für ein MongoDB-Atlas-Konto zu registrieren. Geben Sie einfach Ihre Daten ein und klicken Sie auf die Schaltfläche „Kostenlos starten“, um Ihr kostenloses Atlas-Konto zu erhalten.

Sobald Sie ein Atlas-Konto haben, fahren Sie mit dem nächsten Schritt fort

Schritt 2:Erstellen Sie Ihr Projekt und Ihre Organisation

MongoDB Atlas fordert Sie nach Abschluss des Registrierungsprozesses standardmäßig auf, eine Organisation und ein Projekt zu erstellen. Geben Sie schnell die erforderlichen Details ein, um diesen Vorgang abzuschließen und mit dem nächsten Schritt fortzufahren. Die Organisation und das Projekt werden für die zukünftige Bereitstellung Ihres Clusters verwendet.

Schritt 3:Cluster bereitstellen

In dieser Phase wählen Sie einen Cluster aus verschiedenen Cluster-Optionen aus. Für diesen Artikelleitfaden verwenden wir die Option „Shared Cluster“, die kostenlose Cluster-Option, die von MongoDB Atlas bereitgestellt wird. Klicken Sie unter der Option „Freigegebener Cluster“ auf „Erstellen“.

Sie werden aufgefordert, auf der nächsten Seite einige Optionen für Ihren Cluster auszuwählen, wie unten hervorgehoben:

Cloud-Anbieter und Region

Hier müssen Sie auswählen, wo Ihr Cluster bereitgestellt werden soll. Wählen Sie unbedingt eine Region aus, die Ihrer Anwendung am nächsten liegt. Idealerweise sollten Sie eine konstante Region auswählen, um Latenzprobleme zu minimieren. Wir werden diese Region „N. Virginia (us-east-1)“, mit AWS als Quell-Cloud-Anbieter für diesen Leitfaden. Wir haben AWS als unseren Cloud-Anbieter ausgewählt, da wir Heroku bereitstellen und dessen Infrastruktur auf AWS hosten werden.

Clusterstufe

In diesem Unterabschnitt sehen Sie die verfügbaren Cluster-Ebenen für die von uns gewählte Cluster-Option, in diesem Fall die gemeinsam genutzten Cluster-Optionen. Hier sehen Sie einen Vergleich von RAM, Speicher, Ebenen, Grundpreis und vCPU. Diese Vergleiche helfen Ihnen bei der Auswahl der richtigen Stufe, die für Ihr Projekt geeignet ist. Wir belassen es für diesen Leitfaden bei der Standardstufe „M0 Sandbox“.

Zusätzliche Einstellungen

Dieser Abschnitt hängt von der gewählten Ebene ab. Abhängig von der ausgewählten Ebene erhalten Sie möglicherweise einige zusätzliche Einstellungen. Diese Einstellungen umfassen Sicherungsoptionen und bereitzustellende MongoDB-Versionen. Wählen Sie MongoDB Version 4.4 und lassen Sie die Sicherungsoption deaktiviert.

Clustername

Dies ist die letzte Option. Hier wäre es hilfreich, wenn Sie Ihren Cluster benennen würden. Ich werde unseren Cluster „Leafix“ nennen. Denken Sie daran, dass Sie es nicht mehr ändern dürfen, nachdem Sie den Cluster erstellt haben.

Hinweis:Es ist ratsam, die ausgewählten Optionen zu überprüfen und notwendige Änderungen vorzunehmen, bevor Sie den Cluster mit der Schaltfläche „Cluster erstellen“ erstellen.

Schritt 4:Erstellen Sie einen DB-Benutzer für Ihren neu erstellten Cluster

MongoDB Atlas erfordert, dass Clients sich als MongoDB-Datenbankbenutzer authentifizieren, um auf Cluster zugreifen zu können. Befolgen Sie die angegebenen Schritte, um einen DB-Benutzer für Ihren Cluster zu erstellen.

  • Navigieren Sie zum Abschnitt „Datenbankzugriff“. Es befindet sich unter dem Reiter „Sicherheit“ auf der linken Seite.
  • Klicken Sie auf die Option „Neuen Datenbankbenutzer hinzufügen“.
  • Eine Eingabeaufforderung wird angezeigt. Geben Sie Ihre Authentifizierungsmethode und Datenbankbenutzerrechte ein
  • Verwenden Sie das „Passwort“ als Ihre Authentifizierungsmethode und geben Sie das Passwort und den Benutzernamen an.

Hinweis: Es wird dringend empfohlen, automatisch ein starkes Passwort von Atlas zu generieren, um Komplikationen im Zusammenhang mit Unsicherheiten zu vermeiden. Sobald Sie das Passwort automatisch generiert haben, kopieren Sie es und speichern Sie es an einem geeigneten Ort, um es in Zukunft einfach wiederzufinden. Dieser Schritt ist von entscheidender Bedeutung, da wir das Passwort benötigen, während wir uns mit dem Cluster verbinden.

  • Geben Sie dem Benutzer die meisten Privilegien, indem Sie die Option „Atlas-Administrator“ auswählen.
  • Wenn Sie fertig sind, klicken Sie auf „Benutzer hinzufügen“, um einen DB-Benutzer zu erstellen.

Schritt 5:Gewähren Sie autorisierten IP-Adressen Cluster-Zugriff

Dies ist der letzte Schritt beim Einrichten des MongoDB-Atlas-Clusters. In diesem Abschnitt werden die IP-Adressen ausgewählt, die uns den Zugriff auf den Atlas-Cluster ermöglichen. Befolgen Sie die hier aufgeführten Schritte, um die Autorisierung zu erteilen:

  1. Wählen Sie unter "Sicherheit" die Option "Netzwerkzugriff" aus.
  2. Wählen Sie als Nächstes „IP-Adresse hinzufügen“.
  3. Wählen Sie „Zugriff von überall zulassen“ und klicken Sie auf die Schaltfläche „Bestätigen“, um den Vorgang abzuschließen.

Das ist alles. Sie haben Ihren MongoDB Atlas-Cluster erfolgreich eingerichtet.

Hinweis :Sie möchten diese Art des Zugriffs auf IP-Adressen in einer Produktionsumgebung aufgrund von Sicherheitsproblemen nicht zulassen. Sie müssen die genaue IP-Adresse für Ihre Anwendung identifizieren und den IP-Adressbereich explizit festlegen. Dieser Prozess ist darauf zugeschnitten, die Sicherheit Ihres Clusters zu verbessern.

Verbinden mit Ihrem Cluster

Folgen Sie dieser Anleitung, um eine Verbindung zu Ihrem neu erstellten Cluster herzustellen:

  1. Klicken Sie im Abschnitt „Datenspeicherung“ in der linken Navigationsleiste auf „Cluster.“
  2. Klicken Sie auf die Registerkarte „Verbinden“.
  3. Wählen Sie Ihre Treiberversion und kopieren Sie dann nur die Verbindungszeichenfolge

Wenn Sie fertig sind, aktualisieren Sie die Verbindungszeichenfolge. Vergessen Sie auch hier nicht, Ihren Benutzernamen und Ihr Passwort hinzuzufügen.

Erstellen eines Heroku-Kontos

Das Erstellen eines Heroku-Kontos ist sehr einfach. Besuchen Sie zunächst die offizielle Website von Heroku und melden Sie sich an, genau wie wir es für MongoDB Atlas getan haben. Nachdem Sie Ihr Heroku-Konto erstellt haben, fahren Sie fort und installieren Sie die Heroku-Befehlszeilenschnittstelle.

Heroku-CLI installieren

Es ist wichtig sicherzustellen, dass Sie Git auf Ihrem Linux-Betriebssystem installiert haben, da die Heroku-CLI Git erfordert. Git ist ein beliebtes Versionskontrollsystem, das von den meisten Entwicklern verwendet wird. Die Installation von Git ist sehr einfach. Öffnen Sie Ihr Terminal und führen Sie den folgenden Befehl aus:

sudo apt-get install git-all

Ausgabe:

Dieser Befehl installiert Git in Ihrem Linux-Betriebssystem. Führen Sie danach diesen anderen Befehl aus, um Heroku auf Ihrem Linux-Betriebssystem zu installieren:

sudo snap install --classic heroku

Ausgabe:

Geben Sie dem Terminal Zeit, den Befehl auszuführen, und installieren Sie Heroku vollständig.

Melden Sie sich an und erstellen Sie eine neue Anwendung auf der Heroku-Website

Wir glauben, dass Sie den Artikel aufmerksam verfolgt und ein Heroku-Konto erstellt haben. Öffnen Sie in diesem Fall Ihr Heroku-Dashboard. Geben Sie die Details ein, mit denen Sie Ihr Heroku-Konto erstellt haben, um sich bei Ihrem Dashboard anzumelden. Nachdem Sie sich angemeldet haben, fahren Sie mit dem nächsten Schritt fort, um eine neue Anwendung zu erstellen:

  1. Navigieren Sie zu heroku.com/apps
  2. Wählen Sie Neu>Neue App erstellen>Region auswählen>App erstellen.
  3. Seien Sie geduldig, während die App erstellt wird.
  4. Sobald der Vorgang abgeschlossen ist, werden Sie zu Ihrem Dashboard weitergeleitet. Wählen Sie den Abschnitt „Bereitstellen“ aus

Heroku-Anwendung mit lokalen Repositories verbinden

Befolgen Sie die zuvor ausgewählten Bereitstellungsanleitungen im Bereitstellungsabschnitt dieses Artikels.

Melden Sie sich dennoch bei Heroku im Abschnitt „Bereitstellen“ an, den wir zuvor ausgewählt haben.

Führen Sie die folgenden Befehle aus (ebenfalls im Abschnitt „Bereitstellen“ angegeben), um eine Verbindung zu Heroku herzustellen und einen neuen Dyno aus Ihrem Server-/Projektstammverzeichnis zu erstellen:

Hinweis: Die spitzen Klammern „<> “, die in den folgenden Beispielen verwendet werden, bezeichnen die vom Benutzer bereitgestellten Bezeichner-/Parameter-/Argumentwerte. Wenn Sie die Befehle ausführen, sollten Sie sie weglassen.

# Heroku-Fernbedienung hinzufügen

heroku git:remote -a <name-of-the-newly-created-app>

# Werfen Sie einen Blick auf die verfügbaren Fernbedienungen.

# Die Verbindung zum neuen Remote-Repository „heroku“ sollte sichtbar sein.

git remote -v

# Übertragen Sie im Entwicklungszweig die neueste Arbeit.

git add .

git commit -m 'Write a clear, meaningful commit message here.'

git push origin <development-branch-name>

# Branches sollten in den Master-Branch ausgecheckt werden.

git checkout master

# Updates aus dem Entwicklungszweig werden zusammengeführt.

git merge <development-branch-name>

git push heroku master

Einrichten von Heroku zum Herstellen einer Verbindung mit dem MongoDB-Atlas-Cluster mithilfe von Konfigurationsvariablen

Wir hatten viel Spaß beim schnellen Einrichten unseres Atlas-Clusters, aber wir glauben, dass Sie diesen Abschnitt noch mehr genießen werden!

Heroku-Anwendungen, die von Atlas unterstützt werden, sind einfach zu erstellen. Erstellen Sie eine Konfigurationsvariable auf Anwendungsebene, die die Verbindungszeichenfolge Ihres Clusters enthält. Sie können innerhalb Ihrer Anwendung sicher auf diese Konfigurationsvariable zugreifen, sobald sie eingerichtet wurde!

So geht's:

Schritt 1:Öffnen Sie die Heroku-CLI und melden Sie sich an.

heroku login

Dieser Befehl führt Sie zur Anmeldeseite von Heroku in Ihrem Webbrowser. Klicken Sie auf die Schaltfläche „Anmelden“, wenn Sie bereits angemeldet sind. Sie können sich auch über die Befehlszeile mit dem Flag -i anmelden.

Schritt 2:Erstellen Sie eine Kopie meiner Demo-App

Ich habe eine Prototyp-Knotenanwendung erstellt, die MongoDB Atlas verwendet und die ich gerne in Heroku veröffentlichen möchte, um diese Lektion fortzusetzen. Klonen Sie es und gehen Sie dann in das folgende Verzeichnis:

git clone https://github.com/adriennetacke/mongodb-atlas-heroku-leaflix-demo.git

cd mongodb-atlas-heroku-leaflix-demo

Ausgabe:

Schritt 3:Erstellen Sie eine Heroku-App

heroku create leaflix

Ausgabe:

Wie Sie sehen können, habe ich meinem Leaflix einen Namen gegeben.

Beziehen Sie Ihre Atlas Cluster-Verbindungszeichenfolge

Bitte kehren Sie zum Dashboard Ihres Atlas-Clusters zurück, um unsere Verbindungszeichenfolge abzurufen.

  • Wählen Sie „Verbinden“ aus dem Dropdown-Menü.
  • Wählen Sie „Anwendung verbinden“ aus dem Dropdown-Menü aus.

Die Verbindungszeichenfolge, die wir zum Verbinden mit unserem Cluster benötigen, finden Sie hier. Notieren Sie sich die Verbindungszeichenfolge.

Fügen Sie die Verbindungszeichenfolge in einen Editor ein; Wir nehmen einige Änderungen vor, bevor wir sie einer Heroku-Konfigurationsvariablen zuweisen.

Wie Sie sehen können, hat Atlas den Benutzernamen des Datenbankbenutzers, den wir zuvor erstellt haben, problemlos eingefügt. Ersetzen Sie das „Passwort“ durch das Passwort Ihres persönlichen Datenbankbenutzers und „dbname“ durch „sample_mflix“, den Beispieldatensatz, den unsere Demo-App verwendet, um die Verbindungszeichenfolge zu vervollständigen und gültig zu machen.

Hinweis:Wenn Sie das Passwort für Ihren Datenbankbenutzer nicht haben, generieren Sie automatisch eines und verwenden Sie es in der Verbindungszeichenfolge. Wenn Sie es erneut automatisch generieren, denken Sie daran, es zu aktualisieren! Gehen Sie zu Datenbankzugriff> Klicken Sie bei dem Datenbankbenutzer, für den Sie das Passwort finden möchten, auf „Bearbeiten“> Setzen Sie Ihr Passwort zurück> Generieren Sie automatisch ein weiteres sicheres Passwort.

Erstellen Sie eine MONGODB_URI-Konfigurationsvariable

Nachdem wir es nun korrekt erstellt haben, ist es an der Zeit, unsere Verbindungszeichenfolge in einer Heroku-Konfigurationsvariablen zu speichern. Setzen Sie die Konfigurationsvariable MONGODB_URI auf unsere Verbindungszeichenfolge:

heroku config:set MONGODB_URI="mongodb+srv://yourUsername:[email protected]/sample_mflix?retryWrites=true&w=majority"

Hier sind einige wichtige Punkte, die Sie beachten sollten:

  • Dieser Befehl besteht nur aus einer Zeile.
  • Da das Format unserer Verbindungszeichenfolge Sonderzeichen enthält, muss es in Anführungszeichen gesetzt werden.

So einfach ist das! Sie haben die Verbindungszeichenfolge Ihres Atlas-Clusters erfolgreich zu einer Heroku-Konfigurationsvariablen hinzugefügt, sodass Sie sicher darauf zugreifen können, nachdem Ihre App in Heroku bereitgestellt wurde.

Hinweis: Sie können diese Konfigurationsvariable auch auf der Registerkarte „Einstellungen“ des Heroku-Dashboards für Ihre App eingeben. Gehen Sie in Ihren Apps zu Leaflix> Einstellungen. Klicken Sie im Abschnitt „Konfigurationsvariablen“ auf die Schaltfläche „Konfigurationsvariablen anzeigen“ und geben Sie dort Ihre Konfigurationsvariable ein.

Der letzte Schritt besteht darin, den Code Ihrer Anwendung zu ändern, um den Zugriff auf diese Variablen zu ermöglichen.

Verwenden von Heroku-Konfigurationsvariablenwerten zum Verbinden Ihrer App mit einem MongoDB-Atlas-Cluster

Sie werden feststellen, dass wir unsere Atlas-Cluster-Verbindungszeichenfolge in unserer Demoanwendung fest codiert haben. Wir müssen unseren Code überarbeiten, um die zuvor generierte Heroku-Konfigurationsvariable zu verwenden.

Umgebungsvariablen werden verwendet, um Konfigurationsvariablen für den Code Ihrer Anwendung verfügbar zu machen. Die Sprache, die Sie für den Zugriff auf diese Variablen wählen, bestimmt, wie Sie darauf zugreifen. In Java würden Sie beispielsweise System.getenv(‘key’) verwenden Aufrufe, und in Ruby würden Sie ENV[‘key’] verwenden Anrufe.

Da wir wissen, dass unsere Anwendung in Node geschrieben ist, können wir die Variable process.env in Node.js verwenden, um eine Verbindung zu unserem Atlas-Cluster herzustellen. Ändern Sie die uri-Konstante in der Datei server.js in:

const uri = process.env.MONGODB_URI;

Damit ist unsere Diskussion beendet. Unsere Anwendung greift nach der Bereitstellung sicher auf unsere Atlas-Cluster-Verbindungszeichenfolge zu, da wir sie als Heroku-Konfigurationsvariable hinzugefügt haben.

Speichern Sie die Datei, übertragen Sie die Änderung und stellen Sie sie dann in Heroku bereit.

git commit -am "fix: refactor hard-coded connection string to Heroku config var"

git push heroku master

Ihre Anwendung wurde jetzt bereitgestellt! Mit diesem Befehl können Sie überprüfen, ob mindestens eine Instanz von Leaflix ausgeführt wird:

heroku ps:scale web=1

Sie wissen, dass mindestens eine Instanz aktiv ist, wenn Sie eine Benachrichtigung erhalten, die besagt:„Skalierung von Dynos… abgeschlossen, läuft derzeit im Web bei 1:Free.“

Navigieren Sie schließlich zur Website Ihrer App. Sie können dies tun, indem Sie sich an die folgenden Schritte halten:

heroku open

Wenn Sie auf die Schaltfläche "Brauchen Sie ein Lachen?" klicken, wählt unsere Software einen Film basierend auf der Kategorie „Comedy“ im Genrebereich aus. Wenn alles in Ordnung ist, sollten Sie so etwas sehen:In diesem Beispiel wird der Datensatz sample_mflix verwendet, der direkt aus unserem Atlas-Cluster stammt.

Konfigurieren von IP-Adressen für Heroku in MongoDB Atlas

Unser Cluster ist bereits in Betrieb und unsere App ist jetzt live auf Heroku!

Wir richten unseren Cluster so ein, dass er Verbindungen von jeder IP-Adresse akzeptiert, um uns durch den Artikelleitfaden zu führen. Sie möchten den Zugriff lieber nur auf Ihre Anwendung beschränken, und dafür gibt es in Heroku einige Optionen.

Die erste Option besteht darin, ein Add-on zu verwenden, um Ihrer Anwendung eine statische ausgehende IP-Adresse zuzuweisen, mit der Sie den Zugriff in Atlas einschränken können. Einige Beispiele finden Sie hier.

Eine weitere Option besteht darin, Heroku Private Spaces zu verwenden und die statischen ausgehenden IPs des Spaces zu verwenden. Dies ist eine teurere Wahl, aber es eliminiert ein zusätzliches Add-on.

Es gibt verschiedene Dokumente und Artikel, die behaupten, Sie könnten AWS- oder Heroku-IP-Bereiche verwenden, um Zugriff auf IPs zu gewähren, die aus Ihrem AWS-Bereich oder Heroku Dynos in diesen Regionen stammen. Dies ist zwar denkbar, wird jedoch nicht empfohlen, da sich solche Bereiche im Laufe der Zeit ändern können. Daher empfehlen wir stattdessen, einen der beiden oben aufgeführten Ansätze zu verwenden.

Sie können die IP-Adresse(n) für Ihre Anwendung verwenden, um Ihre Firewall in Atlas zu konfigurieren, sobald Sie sie haben.

Entfernen Sie alle vorhandenen IP-Bereiche aus Ihrem Atlas-Cluster und fügen Sie sie dann Ihrer Zulassungsliste hinzu. Sie können dies tun, indem Sie dem Verfahren folgen, das wir zum „Hinzufügen von IP-Adressen und Löschen der vorhandenen IP-Bereiche“ verwendet haben.

Das ist alles! Sie haben MongoDB erfolgreich auf Heroku bereitgestellt