sql >> Database >  >> NoSQL >> MongoDB

Implementeer MongoDB in een Amazon Virtual Private Cloud (VPC)

Update:vanaf december 2015 biedt AWS de Managed EC2 NAT-gateway. Daarom is het niet langer nodig om NAT's voor uw privé-subnetten handmatig te implementeren en te beheren. Als u echter om de een of andere reden uw eigen NAT-servers moet implementeren, kunt u de onderstaande instructies gebruiken.

Met Amazon Virtual Private Cloud (Amazon VPC) kunt u een privé, geïsoleerd gedeelte van de Amazon Web Services (AWS) Cloud inrichten waar u AWS-resources kunt starten in een virtueel netwerk dat u definiëren. Met VPC kunt u uw eigen subnetten definiëren en ook routes tussen uw subnetten beheren. U kunt ook beslissen of u uw subnetten wilt blootstellen aan internet. VPC "private" subnetten zijn ideale hosts voor uw MongoDB-servers. Met een NAT geconfigureerd hebben uw machines op het subnet toegang tot internet, maar niemand op internet kan uw servers bereiken. U kunt ook een site-naar-site VPN-verbinding opzetten om vanaf uw locatie toegang te krijgen tot uw mongo-instanties.

ScaleGrid maakt het gemakkelijk om MongoDB-hostinginstanties in een VPC-subnet te implementeren en te beheren. Alle bestaande functies van MongoDB op AWS, zoals back-ups, herstel, monitoring, waarschuwingen, enz. zijn volledig functioneel in een VPC-omgeving.

Privé VPC-subnetten die voor Mongo-implementaties worden gebruikt, moeten uitgaande toegang tot internet hebben. Zorg er dus voor dat u een NAT instelt voordat u uw Mongo-instanties implementeert. Als je een replicaset implementeert, maak dan drie subnetten, elk in een aparte beschikbaarheidszone.

Hier is een voorbeeld-VPC (10.20.0.0/16) die ik heb ingesteld in de EU-regio met vier subnetten:

  1. Subnet 1 (10.20.0.0/24) – Openbaar subnet
  2. Subnet 2 (10.20.1.0/24) – Privésubnet toegewezen aan beschikbaarheidszone eu-west-1a
  3. Subnet 3 (10.20.2.0/24) – Privésubnet toegewezen aan beschikbaarheidszone eu-west-1b
  4. Subnet 4 (10.20.3.0/24) – Privésubnet toegewezen aan beschikbaarheidszone eu-west-1c

Het doel van dit bericht is om een ​​MongoDB-replicaset met 3 nodes te implementeren met één replica in elk van de subnetten 2, 3 en 4.

Er is een NAT-instantie ingesteld in het openbare subnet om internettoegang mogelijk te maken vanaf privésubnetten 2, 3 en 4. Ik heb ook een securityGroup gemaakt - "MongoSecurityGroup" waarin de MongoDB-machines subnet 2,3 &4 worden geassocieerd met. Hier zijn de details van de beveiligingsgroepconfiguratie voor de NAT (Het lastige deel van de NAT-configuratie is om ervoor te zorgen dat beveiligingsgroepen inkomende en uitgaande communicatie met de NAT toestaan).

NAT-beveiligingsgroep
Uitgaand: Alles toegestaan ​​(dit is de standaardinstelling)
Inkomend: 80.443 &5671 toestaan ​​van de MongoSecurity-groep

MongoSecurity-groep
Uitgaand: Alles toegestaan ​​(dit is de standaardinstelling)
Inkomend: 27017 van de toepassingsbeveiligingsgroep en Mongo-beveiligingsgroep, 27019 van de Mongo-beveiligingsgroep (voor shards)

Problemen oplossen
Zodra u de regels voor de beveiligingsgroep heeft ingesteld, controleert u of alles correct is ingesteld. De enige echte manier om te controleren of uw beveiligingsgroepen correct zijn ingesteld, is door een instantie te maken:

  1. Maak een instantie vanaf de AWS-console en plaats deze in een van de geconfigureerde subnetten.
  2. SSH in de instantie. Controleer de internetverbinding door "wget ​​cnn.com" uit te voeren. Als dit niet lukt, is uw uitgaande internettoegang niet correct ingesteld.

Verificatiestappen wanneer verbindingen niet werken:

  1. SSH naar de NAT-instantie en controleer of deze verbinding heeft met internet door een wget-opdracht uit te voeren.
  2. Controleer of uw instantie op het privésubnet verbinding heeft met de NAT-instantie op poort 80, 443 en 5671

Zodra u uw installatie heeft geverifieerd, vindt u hier een gedetailleerd stapsgewijze proces voor het implementeren van uw Mongo-instanties in een VPC-subnet.

Stap 1:maak een machinepool per VPC-subnet

Navigeer naar de machinepools of het tabblad Cloudprofiel en klik op maken om verbinding te maken met uw AWS-cloudaccount. Voer uw Amazon API-sleutel en geheime sleutel in

Selecteer de regio waarin u de VPC hebt gemaakt.

Selecteer de VPC-implementatieconfiguratie en kies uw VPC, subnetten en beveiligingsgroepen. Als u uw replicaset over subnetten wilt distribueren, moet u een machinepool per subnet maken en vervolgens in de aanmaakwizard de juiste machinepool voor elke instantie kiezen.

Stap 2:implementeer uw Mongo-instanties in de machinepool van het VPC-subnet

Navigeer naar het tabblad implementaties en klik op Maken om een ​​nieuw MongoDB-cluster te maken. Kies in de wizard de machinepool die u zojuist hebt gemaakt als het implementatiedoel. Hiermee worden je mongo-instanties gemaakt in het specifieke VPC-subnet dat je hebt geselecteerd.

Als je andere vragen/opmerkingen of functieverzoeken hebt, horen we dat graag van je. U kunt ons een e-mail sturen op [email protected].


  1. MongoDB $ vermenigvuldigen

  2. Kan ik MongoDB ObjectId op datum opvragen?

  3. mangoest recursief bevolken

  4. mangoest verschil van findOneAndUpdate en update