sql >> Database teknologi >  >> NoSQL >> MongoDB

Implementer MongoDB i en Amazon Virtual Private Cloud (VPC)

Opdatering:Fra december 2015 tilbyder AWS den administrerede EC2 NAT-gateway. Derfor er det ikke længere nødvendigt at installere og administrere NAT'er manuelt for dine private undernet. Hvis du af en eller anden grund har brug for at implementere dine egne NAT-servere, kan du bruge instruktionerne nedenfor.

Amazon Virtual Private Cloud (Amazon VPC) giver dig mulighed for at levere en privat, isoleret sektion af Amazon Web Services (AWS) Cloud, hvor du kan starte AWS-ressourcer i et virtuelt netværk, som du Definere. Med VPC kan du definere dine egne undernet og også styre ruter mellem dine undernet. Du kan også bestemme, om du vil eksponere dine undernet til internettet. VPC "private" undernet er ideelle værter til dine MongoDB-servere. Med en NAT konfigureret kan dine maskiner på undernettet få adgang til internettet, men ingen på internettet kan nå ind på dine servere. Du kan også oprette en VPN-forbindelse fra websted til websted for at få adgang til dine mongo-forekomster fra stedet.

ScaleGrid gør det nemt at implementere og administrere MongoDB-hostingforekomster i et VPC-undernet. Alle de eksisterende funktioner i MongoDB på AWS såsom sikkerhedskopier, gendannelser, overvågning, advarsler osv. er fuldt funktionelle i et VPC-miljø.

Private VPC-undernet, der bruges til Mongo-implementeringer, skal have udgående adgang til internettet – så sørg for at konfigurere en NAT, før du implementerer dine mongo-forekomster. Hvis du implementerer et replikasæt, skal du oprette tre undernet hver i en separat tilgængelighedszone.

Her er et eksempel på VPC (10.20.0.0/16), som jeg har opsat i EU-regionen med fire undernet:

  1. Subnet 1 (10.20.0.0/24) – Offentligt undernet
  2. Subnet 2 (10.20.1.0/24) – Privat undernet kortlagt til tilgængelighedszone eu-west-1a
  3. Subnet 3 (10.20.2.0/24) – Privat undernet kortlagt til tilgængelighedszone eu-west-1b
  4. Subnet 4 (10.20.3.0/24) – Privat undernet kortlagt til tilgængelighedszone eu-west-1c

Målet med dette indlæg er at implementere et MongoDB-replikasæt med 3 noder med én replika i hvert af undernet 2, 3 og 4.

En NAT-instans er blevet konfigureret i det offentlige undernet til at tillade internetadgang fra private undernet 2, 3 og 4. Jeg oprettede også en sikkerhedsgruppe – "MongoSecurityGroup", som MongoDB-maskinerne i subnet 2,3 &4 vil blive knyttet til. Her er detaljerne om sikkerhedsgruppeopsætningen for NAT (den vanskelige del af NAT-opsætningen er at sikre, at sikkerhedsgrupper tillader indgående og udgående kommunikation med NAT).

NAT-sikkerhedsgruppe
Udgående: Alt tilladt (dette er standarden)
Indgående: Tillad 80.443 og 5671 fra MongoSecurity-gruppen

MongoSecurity-gruppe
Udgående: Alt tilladt (dette er standarden)
Indgående: 27017 fra applikationssikkerhedsgruppen og Mongo-sikkerhedsgruppen, 27019 fra Mongo-sikkerhedsgruppen (til shards)

Fejlfinding
Når du har konfigureret dine sikkerhedsgrupperegler, skal du kontrollere, at alt er konfigureret korrekt. Den eneste rigtige måde at kontrollere, om dine sikkerhedsgrupper er konfigureret korrekt, er at oprette en instans:

  1. Opret en instans fra AWS-konsollen, og placer den i et af de konfigurerede undernet.
  2. SSH ind i forekomsten. Tjek internetforbindelse ved at køre "wget ​​cnn.com". Hvis dette mislykkes, er din udgående internetadgang ikke konfigureret korrekt.

Bekræftelsestrin, når forbindelser ikke fungerer:

  1. SSH ind i NAT-instansen, og bekræft, at den har forbindelse til internettet ved at køre en wget-kommando.
  2. Bekræft, at din instans på det private undernet har forbindelse til NAT-instansen på porte 80, 443 og 5671

Når du har bekræftet din opsætning, er her en detaljeret trin-for-trin-proces for, hvordan du implementerer dine Mongo-instanser i et VPC-undernet.

Trin 1:Opret en maskinpulje pr. VPC-undernet

Naviger til maskinpuljerne eller Cloud Profile-fanen, og klik på Opret for at oprette forbindelse til din AWS-skykonto. Indtast din Amazon API-nøgle og hemmelige nøgle

Vælg den region, hvor du har oprettet VPC'en.

Vælg VPC-implementeringskonfigurationen og vælg dine VPC, undernet og sikkerhedsgrupper. Hvis du ønsker at distribuere dit replikasæt på tværs af undernet, skal du oprette en maskinpulje pr. undernet og derefter i oprettelsesguiden vælge den rigtige maskinpulje for hver forekomst.

Trin 2:Implementer dine Mongo-forekomster i maskinpuljen på VPC-undernettet

Naviger til fanen implementeringer, og klik på Opret for at oprette en ny MongoDB-klynge. I guiden skal du vælge den maskinpulje, du lige har oprettet som implementeringsmål. Dette vil oprette dine mongo-forekomster i det specifikke VPC-undernet, som du valgte.

Hvis du har andre spørgsmål/kommentarer eller ønsker om funktioner, hører vi meget gerne fra dig. Du kan sende os en e-mail på [email protected].


  1. ekskluder felter i $lookup-sammenlægning

  2. Det bedste mønster til håndtering af asynkron looping i Node.js

  3. Mongoose trækker ObjectId fra array

  4. Tilslutning af Heroku App til Atlas MongoDB Cloud-tjeneste