sql >> Database >  >> NoSQL >> MongoDB

Automatiseren en beheren van MongoDB in de cloud

Databasebeheer is van oudsher complex en tijdrovend. Implementatie, met de hoofdpijn van beveiliging, complexe netwerken, back-upplanning en -implementatie, en monitoring, was een hoofdpijn. Het uitschalen van uw databasecluster was een grote onderneming. En in een wereld waar 24/7 beschikbaarheid en snel noodherstel wordt verwacht, kan het beheren van zelfs een enkel databasecluster een fulltime baan zijn.

ClusterControl van verschillendenines is een database-implementatie- en beheersysteem dat het bovenstaande aanpakt en snelle implementatie van redundante, veilige databaseclusters of nodes mogelijk maakt, inclusief geavanceerde back-up- en monitoringfunctionaliteit - zowel op locatie als in de cloud. Met plug-ins die onder andere Nagios, PagerDuty en Zabbix ondersteunen, integreert ClusterControl goed met bestaande infrastructuur en tools om u te helpen uw databaseservers met vertrouwen te beheren.

MongoDB is tegenwoordig de toonaangevende NoSQL-databaseserver ter wereld. Met behulp van ClusterControl, waarmee u officiële MongoDB of Percona Server voor MongoDB, het concurrerende aanbod van Percona met MongoDB Enterprise-functies, kunt implementeren en beheren, gaan we de implementatie van een MongoDB-replicaset met drie dataknooppunten doornemen en enkele functies bekijken. van de ClusterControl-toepassing.

We gaan enkele belangrijke functies van ClusterControl doornemen, vooral omdat ze betrekking hebben op MongoDB, met behulp van Amazon Web Services. Amazon Web Services (of AWS) is de grootste Infrastructure as a Service-cloudprovider wereldwijd en biedt onderdak aan miljoenen gebruikers over de hele wereld. Het omvat veel services voor alle gebruiksscenario's van vrijwel onbeperkte objectopslag met S3 en een zeer schaalbare virtuele machine-infrastructuur met EC2 helemaal tot enterprise database warehousing met Redshift en zelfs Machine Learning.

Als je deze blog eenmaal hebt gelezen, wil je misschien ook onze DIY Cloud Database op Amazon Web Services Whitepaper lezen, waarin de configuratie- en prestatieoverwegingen voor databaseservers in de AWS Cloud in meer detail worden besproken. Daarnaast hebben we een MongoDB DBA geworden, een whitepaper met meer diepgaande MongoDB-specifieke details.

Om te beginnen, moet u eerst vier AWS-instanties implementeren. Voor een productieplatform moet het instancetype zorgvuldig worden gekozen op basis van de eerder besproken richtlijnen, maar voor onze doeleinden zijn instances met 2 virtuele CPU's en 4GB RAM voldoende. Een van deze knooppunten zal ClusterControl hosten, de andere zullen worden gebruikt om de drie databaseknooppunten te implementeren.

Begin met het maken van de beveiligingsgroep van uw databaseknooppunten, zodat inkomend verkeer op poort 27017 wordt toegestaan. Het is niet nodig om uitgaand verkeer te beperken, maar als u dat wel wilt, moet u uitgaand verkeer op poort 1024-65535 toestaan ​​om uitgaande communicatie vanaf de databaseservers te vergemakkelijken .

Maak vervolgens de beveiligingsgroep voor uw ClusterControl-knooppunt. Sta binnenkomend verkeer toe op poort 22 en 80. Voeg deze beveiligingsgroep-ID toe aan de beveiligingsgroep van uw databaseknooppunten en sta onbeperkte TCP-communicatie toe. Dit vergemakkelijkt de communicatie tussen de twee beveiligingsgroepen, zonder ssh-toegang tot de databaseknooppunten van externe clients toe te staan.

Start de instanties in hun respectieve beveiligingsgroepen en kies voor elke instantie een KeyPair waarvoor u de ssh-sleutel hebt. Gebruik voor deze taak hetzelfde KeyPair voor alle instanties. Als u de ssh-sleutel voor uw KeyPair bent kwijtgeraakt, moet u een nieuwe KeyPair maken. Kies bij het starten van de instances niet de standaard Amazon Linux-image, maar kies een AMI op basis van een ondersteund besturingssysteem dat hier wordt vermeld. Aangezien ik AWS-regio EU-CENTRAL-1 gebruik, zal ik hiervoor community AMI ami-fa2df395, een CentOS 7.3-image, gebruiken.

Als u de AWS-opdrachtregelprogramma's hebt geïnstalleerd, gebruikt u de aws ec2 description-instances opdracht die eerder is beschreven om te bevestigen dat uw instances actief zijn - bekijk anders uw instances in de AWS-webconsole - en indien bevestigd, logt u in op de ClusterControl-instantie via ssh.

Kopieer het openbare-sleutelbestand dat u hebt gedownload bij het maken van uw KeyPair naar de ClusterControl-instantie. U kunt de scp . gebruiken opdracht voor dit doel. Laten we het voorlopig in de standaard /home/centos-map laten staan, de thuismap van de centos-gebruiker. Ik heb de mijne s9s.pem genoemd. U moet de wget-tool geïnstalleerd hebben; installeer het met het volgende commando:

$ sudo yum -y install wget

Voer de volgende opdrachten uit om ClusterControl te installeren:

$ wget http://www.severalnines.com/downloads/cmon/install-cc
$ chmod +x install-cc
$ ./install-cc # as root or sudo user

De installatie leidt u door enkele eerste vragen, waarna het een paar minuten duurt om afhankelijkheden op te halen en te installeren met behulp van de pakketbeheerder van uw besturingssysteem.

Wanneer de installatie is voltooid, gaat u met uw webbrowser naar http://. U kunt het externe adres van de instantie vinden met behulp van de describe-instances commando of via de AWS-webconsole.

Nadat u succesvol bent ingelogd, ziet u het volgende scherm en kunt u doorgaan met het implementeren van uw MongoDB Replica Set.

Afbeelding 1:Welkom bij ClusterControl!

Zoals u kunt zien, kan ClusterControl ook bestaande databaseclusters importeren, waardoor het uw bestaande infrastructuur net zo gemakkelijk kan beheren als nieuwe implementaties.

Voor onze doeleinden gaat u klikken op Deploy Database Cluster . Op het volgende scherm ziet u de selectie van databaseservers en clustertypes die ClusterControl ondersteunt. Klik op het tabblad met het label MongoDB ReplicaSet . Hier zijn de waarden waar u zich zorgen over maakt SSH-gebruiker , SSH-sleutelpad , en Clusternaam . De poort zou al 22 moeten zijn, de standaard ssh-poort, en de AMI die we gebruiken vereist geen Sudo-wachtwoord .

Afbeelding 2:Een MongoDB-replicaset implementeren

De ssh-gebruiker voor de CentOS 7 AMI is centos , en het SSH-sleutelpad is /home/centos/s9s.pem , of het juiste pad, afhankelijk van uw eigen sleutelbestandsnaam. Laten we MongoDB-RS0 gebruiken als de clusternaam. Als we de standaardopties accepteren, klikken we op Doorgaan .

Afbeelding 3:Uw implementatie configureren

Hier kunnen we kiezen tussen de officiële MongoDB-build en een Percona-build. Selecteer wat u maar wilt en geef een admin-gebruiker en wachtwoord op om MongoDB veilig te configureren. Houd er rekening mee dat ClusterControl u niet verder zal laten gaan tenzij u deze details verstrekt. Noteer de inloggegevens die u hebt opgegeven, u hebt ze nodig om u aan te melden bij de geïmplementeerde MongoDB-database, als u deze later wilt gebruiken. Kies nu een Replica Set-naam of accepteer de standaard. We gaan de repositories van de leverancier gebruiken, maar houd er rekening mee dat u ClusterControl kunt configureren om uw eigen repositories of die van een derde partij te gebruiken, als u dat wilt.

Voeg uw databaseknooppunten één voor één toe. U kunt ervoor kiezen om het externe IP-adres te gebruiken, maar als u de hostnaam opgeeft, wat over het algemeen wordt aanbevolen, zal ClusterControl alle netwerkinterfaces in de hosts opnemen en kunt u de interface kiezen waarop u wilt implementeren. Nadat u uw drie databaseknooppunten heeft toegevoegd, klikt u op Deploy . ClusterControl zal nu uw MongoDB Replica Set implementeren. Klik op Volledige vacaturedetails om te observeren terwijl het de configuratie van uw cluster uitvoert. Wanneer de taak is voltooid, gaat u naar het scherm Databaseclusters en bekijkt u uw cluster.

Figuur 4:Automatisch herstel

Als u beter kijkt, kunt u zien dat Auto Recovery is ingeschakeld op zowel cluster- als knooppuntniveau; in het geval van fouten, zal ClusterControl proberen uw cluster of het individuele knooppunt met een probleem te herstellen. Het groene vinkje naast elk knooppunt geeft ook in één oogopslag de gezondheidsstatus van het cluster weer.

Afbeelding 5:Back-ups plannen

De laatste functie die we hier zullen behandelen, is Back-ups. ClusterControl biedt een back-upfunctie die een volledige clusterconsistente back-up mogelijk maakt, of gewoon een standaard mongodump back-up als je wilt. Het biedt ook de mogelijkheid om geplande back-ups te maken die periodiek worden uitgevoerd volgens een schema naar keuze. Het bewaren van back-ups wordt ook afgehandeld, met de mogelijkheid om back-ups voor een beperkte periode te bewaren, waardoor opslagproblemen worden vermeden.

In deze blog heb ik geprobeerd je een kort overzicht te geven van het gebruik van ClusterControl met MongoDB, maar er zijn nog veel meer functies die door ClusterControl worden ondersteund. Inzet van Sharded Clusters, met verborgen en/of vertraagde slaves, arbiters en andere functies zijn allemaal beschikbaar. Meer informatie is beschikbaar op onze website, waar u ook webinars, whitepapers, tutorials en trainingen kunt vinden en ClusterControl gratis kunt uitproberen.


  1. Hoe werkt sorteren in de nieuwe mongodb PECL-extensie?

  2. Kan geen Jedis-verbinding krijgen bij gebruik van SSL met Redis en Spring Data Redis

  3. MongoDB $replaceOne

  4. Is er een manier om MongoDB-shell-uitvoer 'mooi' af te drukken naar een bestand?