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:
- Subnet 1 (10.20.0.0/24) – Openbaar subnet
- Subnet 2 (10.20.1.0/24) – Privésubnet toegewezen aan beschikbaarheidszone eu-west-1a
- Subnet 3 (10.20.2.0/24) – Privésubnet toegewezen aan beschikbaarheidszone eu-west-1b
- 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:
- Maak een instantie vanaf de AWS-console en plaats deze in een van de geconfigureerde subnetten.
- 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:
- SSH naar de NAT-instantie en controleer of deze verbinding heeft met internet door een wget-opdracht uit te voeren.
- 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].