Databasehåndtering har traditionelt været kompleks og tidskrævende. Implementering, med hovedpine af sikkerhed, komplekse netværk, backup planlægning og implementering og overvågning, har været en hovedpine. Det har været en stor opgave at udskalere din databaseklynge. Og i en verden, hvor der forventes tilgængelighed 24/7 og hurtig gendannelse efter katastrofer, kan administration af selv en enkelt databaseklynge være et fuldtidsjob.
Severalnines’ ClusterControl er et databaseimplementerings- og administrationssystem, der adresserer ovenstående, hvilket letter hurtig udrulning af redundante, sikre databaseklynger eller noder, inklusive avanceret backup- og overvågningsfunktionalitet - uanset om det er på stedet eller i skyen. Med plugins, der understøtter blandt andet Nagios, PagerDuty og Zabbix, integrerer ClusterControl godt med eksisterende infrastruktur og værktøjer for at hjælpe dig med at administrere dine databaseservere med tillid.
MongoDB er den førende NoSQL-databaseserver i verden i dag. Ved at bruge ClusterControl, hvormed du kan implementere og administrere enten officiel MongoDB eller Percona Server til MongoDB, Perconas konkurrerende tilbud med MongoDB Enterprise-funktioner, skal vi gennemgå implementeringen af et MongoDB Replica Set med tre dataknuder og se på nogle af funktionerne af ClusterControl-applikationen.
Vi vil gennemgå nogle nøglefunktioner i ClusterControl, især da de vedrører MongoDB, ved hjælp af Amazon Web Services. Amazon Web Services (eller AWS) er den største cloud-udbyder af Infrastructure as a Service globalt, som hoster millioner af brugere over hele verden. Den omfatter mange tjenester til alle use cases fra praktisk talt ubegrænset objektlagring med S3 og meget skalerbar virtuel maskininfrastruktur ved hjælp af EC2 hele vejen til enterprise database warehousing med Redshift og endda Machine Learning.
Når du har læst denne blog, vil du måske også læse vores DIY Cloud Database på Amazon Web Services Whitepaper, som diskuterer konfigurations- og ydeevneovervejelser for databaseservere i AWS Cloud mere detaljeret. Derudover har vi Become a MongoDB DBA, et whitepaper med mere dybdegående MongoDB-specifikke detaljer.
For at begynde skal du først implementere fire AWS-instanser. For en produktionsplatform bør instanstypen vælges omhyggeligt ud fra de retningslinjer, vi tidligere har diskuteret, men til vores formål vil instanser med 2 virtuelle CPU'er og 4 GB RAM være tilstrækkelige. En af disse noder vil være vært for ClusterControl, de andre vil blive brugt til at implementere de tre databasenoder.
Begynd med at oprette dine databasenoders sikkerhedsgruppe, der tillader indgående trafik på port 27017. Der er ingen grund til at begrænse udgående trafik, men hvis du ønsker at gøre det, tillad udgående trafik på portene 1024-65535 for at lette udgående kommunikation fra databaseserverne .
Opret derefter sikkerhedsgruppen for din ClusterControl-node. Tillad indgående trafik på porte 22 og 80. Tilføj dette sikkerhedsgruppe-id til din databasenodes sikkerhedsgruppe, og tillad ubegrænset TCP-kommunikation. Dette vil lette kommunikationen mellem de to sikkerhedsgrupper uden at tillade ssh-adgang til databasenoderne fra eksterne klienter.
Start forekomsterne i deres respektive sikkerhedsgrupper, og vælg for hver forekomst et KeyPair, som du har ssh-nøglen til. Til formålet med denne opgave skal du bruge det samme KeyPair til alle forekomster. Hvis du har mistet ssh-nøglen til dit KeyPair, skal du oprette et nyt KeyPair. Når du starter instanserne, skal du ikke vælge standard Amazon Linux-billedet, i stedet vælge en AMI baseret på et understøttet operativsystem, der er angivet her. Da jeg bruger AWS region EU-CENTRAL-1, vil jeg bruge community AMI ami-fa2df395, et CentOS 7.3-billede, til dette formål.
Hvis du har AWS kommandolinjeværktøjer installeret, skal du bruge aws ec2 describe-instances kommando beskrevet tidligere for at bekræfte, at dine forekomster kører - ellers se dine forekomster i AWS-webkonsollen - og når den er bekræftet, skal du logge ind på ClusterControl-forekomsten via ssh.
Kopiér den offentlige nøglefil, du downloadede, da du oprettede dit KeyPair, til ClusterControl-instansen. Du kan bruge scp kommando til dette formål. Indtil videre, lad os lade det være i standardmappen /home/centos, hjemmemappen for centos-brugeren. Jeg har kaldt min s9s.pem. Du skal bruge wget-værktøjet installeret; installer det ved hjælp af følgende kommando:
$ sudo yum -y install wget
For at installere ClusterControl skal du køre følgende kommandoer:
$ wget http://www.severalnines.com/downloads/cmon/install-cc
$ chmod +x install-cc
$ ./install-cc # as root or sudo user
Installationen vil lede dig gennem nogle indledende spørgsmål, hvorefter det vil tage et par minutter at hente og installere afhængigheder ved hjælp af dit operativsystems pakkehåndtering.
Når installationen er færdig, skal du pege din webbrowser til http://
Når du har logget ind, vil du se følgende skærm, og du kan fortsætte med at implementere dit MongoDB Replica Set.
Figur 1:Velkommen til ClusterControl!Som du kan se, kan ClusterControl også importere eksisterende databaseklynger, så den kan administrere din eksisterende infrastruktur lige så let som nye implementeringer.
Til vores formål skal du klikke på Deploy Database Cluster . På næste skærmbillede vil du se udvalget af databaseservere og klyngetyper, som ClusterControl understøtter. Klik på fanen mærket MongoDB ReplicaSet . Her er de værdier, du er bekymret for, SSH-bruger , SSH-nøglesti og Klyngenavn . Porten skal allerede være 22, standard ssh-porten, og den AMI, vi bruger, kræver ikke en Sudo-adgangskode .
Figur 2:Implementering af et MongoDB-replikasætssh-brugeren til CentOS 7 AMI er centos , og SSH-nøglestien er /home/centos/s9s.pem , eller den passende sti afhængigt af dit eget nøglefilnavn. Lad os bruge MongoDB-RS0 som klyngenavnet. Når vi accepterer standardindstillingerne, klikker vi på Fortsæt .
Figur 3:Konfiguration af din implementeringHer kan vi vælge mellem MongoDB officielle build og en Percona build. Vælg hvad du foretrækker, og angiv en admin-bruger og adgangskode, som du kan konfigurere MongoDB sikkert med. Bemærk, at ClusterControl ikke vil lade dig fortsætte, medmindre du angiver disse detaljer. Noter de legitimationsoplysninger, du har angivet, du skal bruge dem for at logge ind på den installerede MongoDB-database, hvis du ønsker at bruge den senere. Vælg nu et replikasætnavn, eller accepter standarden. Vi kommer til at bruge leverandørlagrene, men vær opmærksom på, at du kan konfigurere ClusterControl til at bruge dine egne eller en tredjeparts lagre, hvis du foretrækker det.
Tilføj dine databasenoder, én ad gangen. Du kan vælge at bruge den eksterne IP-adresse, men hvis du angiver værtsnavnet, hvilket generelt anbefales, vil ClusterControl registrere alle netværksgrænseflader i værterne, og du vil være i stand til at vælge den grænseflade, som du ønsker at implementere på. Når du har tilføjet dine tre databasenoder, skal du klikke på Deploy . ClusterControl vil nu implementere dit MongoDB Replica Set. Klik på Fuld jobdetaljer at observere, mens den udfører konfigurationen af din klynge. Når jobbet er fuldført, skal du gå til skærmen Database Clusters og se din klynge.
Figur 4:Automatisk gendannelseHvis du ser nærmere på det, kan du se, at automatisk gendannelse er aktiveret på både et klynge- og et nodeniveau; i tilfælde af fejl, vil ClusterControl forsøge at gendanne din klynge eller den individuelle node, der har et problem. Det grønne flueben ved siden af hver knude viser også klyngens sundhedsstatus med et øjeblik.
Figur 5:Planlægning af sikkerhedskopierDen sidste funktion, vi vil dække her, er sikkerhedskopier. ClusterControl giver en sikkerhedskopieringsfunktion, der tillader en fuld klyngekonsistent backup eller blot en standard mongodump backup, hvis du foretrækker det. Det giver også mulighed for at oprette planlagte sikkerhedskopier, der kan køre med jævne mellemrum til en tidsplan efter eget valg. Backup-opbevaring håndteres også, med mulighed for at beholde sikkerhedskopier i en begrænset periode, for at undgå opbevaringsproblemer.
I denne blog har jeg forsøgt at give dig et kort overblik over brugen af ClusterControl med MongoDB, men der er mange flere funktioner, der understøttes af ClusterControl. Implementering af Sharded Clusters med skjulte og/eller forsinkede slaver, arbitere og andre funktioner er alle tilgængelige. Mere information er tilgængelig på vores hjemmeside, hvor du også kan finde webinarer, whitepapers, tutorials og træning og prøve ClusterControl gratis.