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

Bereitstellen von MongoDB in einer Amazon Virtual Private Cloud (VPC)

Aktualisierung:Seit Dezember 2015 bietet AWS das Managed EC2 NAT-Gateway an. Daher ist es nicht mehr erforderlich, NATs für Ihre privaten Subnetze manuell bereitzustellen und zu verwalten. Wenn Sie jedoch aus irgendeinem Grund Ihre eigenen NAT-Server bereitstellen müssen, können Sie die folgenden Anweisungen befolgen.

Amazon Virtual Private Cloud (Amazon VPC) ermöglicht Ihnen die Bereitstellung eines privaten, isolierten Abschnitts der Amazon Web Services (AWS) Cloud, in dem Sie AWS-Ressourcen in einem von Ihnen gewünschten virtuellen Netzwerk starten können definieren. Mit VPC können Sie Ihre eigenen Subnetze definieren und auch Routen zwischen Ihren Subnetzen steuern. Sie können auch entscheiden, ob Sie Ihre Subnetze dem Internet aussetzen möchten. „Private“ VPC-Subnetze sind ideale Hosts für Ihre MongoDB-Server. Mit einem konfigurierten NAT können Ihre Maschinen im Subnetz auf das Internet zugreifen, aber niemand im Internet kann auf Ihre Server zugreifen. Sie können auch eine Site-to-Site-VPN-Verbindung einrichten, um von vor Ort auf Ihre Mongo-Instanzen zuzugreifen.

ScaleGrid erleichtert die Bereitstellung und Verwaltung von MongoDB-Hosting-Instanzen in einem VPC-Subnetz. Alle vorhandenen Funktionen von MongoDB auf AWS wie Backups, Wiederherstellungen, Überwachung, Warnungen usw. sind in einer VPC-Umgebung voll funktionsfähig.

Private VPC-Subnetze, die für Mongo-Bereitstellungen verwendet werden, müssen ausgehenden Zugriff auf das Internet haben – stellen Sie also sicher, dass Sie ein NAT einrichten, bevor Sie Ihre Mongo-Instanzen bereitstellen. Wenn Sie einen Replikatsatz bereitstellen, erstellen Sie bitte jeweils drei Subnetze in einer separaten Verfügbarkeitszone.

Hier ist eine Beispiel-VPC (10.20.0.0/16), die ich in der EU-Region mit vier Subnetzen eingerichtet habe:

  1. Subnetz 1 (10.20.0.0/24) – Öffentliches Subnetz
  2. Subnetz 2 (10.20.1.0/24) – Privates Subnetz, das der Verfügbarkeitszone eu-west-1a zugeordnet ist
  3. Subnetz 3 (10.20.2.0/24) – Privates Subnetz, das der Verfügbarkeitszone eu-west-1b zugeordnet ist
  4. Subnetz 4 (10.20.3.0/24) – Privates Subnetz, das der Verfügbarkeitszone eu-west-1c zugeordnet ist

Das Ziel dieses Beitrags ist die Bereitstellung eines MongoDB-Replikatsatzes mit 3 Knoten und jeweils einem Replikat in den Subnetzen 2, 3 und 4.

Eine NAT-Instanz wurde im öffentlichen Subnetz eingerichtet, um den Internetzugang von den privaten Subnetzen 2, 3 und 4 zu ermöglichen. Ich habe auch eine Sicherheitsgruppe erstellt – „MongoSecurityGroup“, in der sich die MongoDB-Maschinen befinden Subnetz 2, 3 und 4 werden zugeordnet. Hier sind die Details der Sicherheitsgruppeneinrichtung für das NAT (Der schwierige Teil der NAT-Einrichtung besteht darin, sicherzustellen, dass Sicherheitsgruppen eingehende und ausgehende Kommunikation mit dem NAT zulassen).

NAT-Sicherheitsgruppe
Ausgehend: Alle erlaubt (Dies ist die Standardeinstellung)
Eingehend: Erlauben Sie 80.443 &5671 von der MongoSecurity-Gruppe

MongoSecurity-Gruppe
Ausgehend: Alle erlaubt (Dies ist die Standardeinstellung)
Eingehend: 27017 von der Anwendungssicherheitsgruppe und der Mongo-Sicherheitsgruppe, 27019 von der Mongo-Sicherheitsgruppe (für Shards)

Fehlerbehebung
Sobald Sie Ihre Sicherheitsgruppenregeln eingerichtet haben, überprüfen Sie bitte, ob alles richtig eingerichtet ist. Die einzige wirkliche Möglichkeit zu überprüfen, ob Ihre Sicherheitsgruppen richtig eingerichtet sind, besteht darin, eine Instanz zu erstellen:

  1. Erstellen Sie eine Instanz über die AWS-Konsole und platzieren Sie sie in einem der konfigurierten Subnetze.
  2. SSH in die Instanz. Überprüfen Sie die Internetverbindung, indem Sie „wget cnn.com“ ausführen. Wenn dies fehlschlägt, ist Ihr ausgehender Internetzugang nicht richtig eingerichtet.

Verifizierungsschritte, wenn Verbindungen nicht funktionieren:

  1. SSH in die NAT-Instanz und überprüfen Sie, ob sie mit dem Internet verbunden ist, indem Sie einen wget-Befehl ausführen.
  2. Stellen Sie sicher, dass Ihre Instanz im privaten Subnetz über die Ports 80, 443 und 5671 mit der NAT-Instanz verbunden ist

Sobald Sie Ihre Einrichtung überprüft haben, finden Sie hier einen detaillierten Schritt-für-Schritt-Prozess zur Bereitstellung Ihrer Mongo-Instanzen in einem VPC-Subnetz.

Schritt 1:Erstellen Sie einen Maschinenpool pro VPC-Subnetz

Navigieren Sie zu den Maschinenpools oder der Registerkarte Cloud-Profil und klicken Sie auf Erstellen, um eine Verbindung zu Ihrem AWS-Cloud-Konto herzustellen. Geben Sie Ihren Amazon-API-Schlüssel und Ihren geheimen Schlüssel ein

Wählen Sie die Region aus, in der Sie die VPC erstellt haben.

Wählen Sie die VPC-Bereitstellungskonfiguration und wählen Sie Ihre VPC, Subnetze und Sicherheitsgruppen aus. Wenn Sie Ihren Replikatsatz über Subnetze verteilen möchten, müssen Sie einen Maschinenpool pro Subnetz erstellen und dann im Erstellungsassistenten den richtigen Maschinenpool für jede Instanz auswählen.

Schritt 2:Stellen Sie Ihre Mongo-Instanzen im Maschinenpool des VPC-Subnetzes bereit

Navigieren Sie zur Registerkarte „Bereitstellungen“ und klicken Sie auf „Erstellen“, um einen neuen MongoDB-Cluster zu erstellen. Wählen Sie im Assistenten den soeben erstellten Maschinenpool als Bereitstellungsziel aus. Dadurch werden Ihre Mongo-Instanzen in dem bestimmten VPC-Subnetz erstellt, das Sie ausgewählt haben.

Wenn Sie weitere Fragen/Kommentare oder Funktionswünsche haben, würden wir uns freuen, von Ihnen zu hören. Sie können uns eine E-Mail an [email protected] senden.