sql >> Database >  >> RDS >> Mysql

MySQL migreren van Amazon EC2 naar uw on-premises datacenter zonder downtime

Sinds de oprichting is er een toenemend aantal migraties naar een cloudgebaseerde omgeving geweest. Cloud computing kan immers veel voordelen bieden voor bedrijven, vooral voor bedrijven die met big data werken.

Naarmate de vraag toeneemt, nemen ook de kosten toe, en u kunt in een situatie terechtkomen waarin de maandelijkse cloudkosten te hoog worden en de nadelen al snel opwegen tegen de voordelen van werken in de cloud. Of misschien heeft u beveiligings- of nalevingsvereisten die u vragen om meer directe controle over uw systemen. Dit kan er uiteindelijk toe leiden dat u terug migreert naar een on-premises omgeving.

AWS biedt monitoring- en beheertools om ons systeem in de cloud te laten draaien, terwijl het zicht en controle heeft voor optimalisatie. Wanneer we echter merken dat we klaar zijn voor een oplossing op locatie, kan het een uitdaging zijn om onze gegevens te migreren en alle tools opnieuw te creëren om onze systemen goed te beheren.

In deze blog bespreken we hoe u uw systemen kunt migreren van AWS naar een on-premises datacenter en hoe ClusterControl kan helpen het proces te stroomlijnen.

Begrippen

Laten we, voordat we verder gaan, enkele basisconcepten over Amazon Cloud en ClusterControl bespreken.

AWS

Amazon Web Services (AWS) is een Infrastructure as a Service-platform dat bestaat uit een groot aantal onafhankelijke en semi-onafhankelijke services. Het doel van het Infrastructure as a Service-platform is om op basis van basisproducten diensten aan te bieden waarvoor voorheen kapitaalintensieve infrastructuurcomponenten moesten worden aangeschaft, zoals hoogwaardige servers, netwerkrouters en switches, en voor grotere ondernemingen, zelfs hun eigen datacenters.

RDS

Amazon Relational Database Service (RDS) maakt het eenvoudig om een ​​relationele database in de cloud in te stellen, te bedienen en te schalen. Het biedt kostenefficiënte en aanpasbare capaciteit, terwijl tijdrovende beheertaken zoals hardware-provisioning, databaseconfiguratie, patching en back-ups worden geautomatiseerd.

Amazon RDS is beschikbaar voor verschillende typen database-instanties en biedt u zes bekende databasebeheersystemen waaruit u kunt kiezen, waaronder Amazon Aurora, PostgreSQL, MySQL, MariaDB, Oracle Database en SQL Server.

EC2

Amazon Elastic Compute Cloud (EC2) is een service die veilige en aanpasbare rekencapaciteit in de cloud biedt. Het is ontworpen om web-scale cloud computing gemakkelijker te maken voor ontwikkelaars.

Met de eenvoudige webinterface van Amazon EC2 kun je capaciteit verkrijgen en configureren met minimale wrijving. Het geeft je volledige controle over je computerbronnen en laat je draaien op de beproefde computeromgeving van Amazon.

ClusterControl

ClusterControl is een uitgebreid beheersysteem voor open source databases dat de implementatie, beheerfuncties en het monitoren van gezondheid en prestaties automatiseert vanuit één enkel venster.

ClusterControl ondersteunt de implementatie, het beheer, de bewaking en het schalen voor verschillende databasetechnologieën in elke omgeving.

Waarom migreren naar On-Prem?

Zoals we eerder vermeldden, zijn de meest voorkomende redenen voor het migreren van AWS naar een lokale omgeving kosten, beveiliging, naleving of het draaien van lokale applicaties. In AWS weet je niet wat er onder de motorkap van de infrastructuur gebeurt. Je weet alleen of alles werkt. Als je slechte prestaties of afwijkingen ervaart, is de enige oplossing om contact op te nemen met Amazon-ondersteuning.

Voorbeeld migratiescenario

In AWS heb je twee verschillende producten gerelateerd aan deze blog:EC2 en RDS.

Het belangrijkste verschil tussen beide is dat je in EC2 SSH-toegang tot de server hebt en de database zelf moet beheren. RDS is een gehoste databaseservice en u hebt alleen toegang tot de database-instantie.

In RDS moet je, omdat je geen SSH-toegang hebt, een dump maken en deze in de nieuwe server importeren, of replicatie configureren en de replica promoveren naar de nieuwe primaire server. Voor beide opties is het proces handmatig. U kunt ook een load balancer toevoegen om dit proces te verbeteren. We hebben deze taak behandeld in deze blogs:Deel 1 en Deel 2.

Laten we ons dus concentreren op de migratie van EC2.

Laten we in ons voorbeeld kijken hoe u MySQL migreert van AWS EC2 naar een on-premises datacenter. We zullen een MySQL-replicatieomgeving gebruiken, maar deze stappen zouden moeten werken voor andere technologieën zoals PostgreSQL.

We gaan ervan uit dat je MySQL-hoofddatabase op een EC2-instantie draait. In het on-premises datacenter gaan we er ook vanuit dat u ClusterControl hebt geïnstalleerd en een nieuwe databaseserver om naar te migreren.

In de AWS-beheerconsole zou u zoiets in de EC2 moeten hebben instanties sectie:

Eerst moet u uw huidige primaire node importeren die op EC2 draait naar ClusterControl. Voor dit importproces moet u poort 3306 openen door de beveiligingsgroep te bewerken die is gekoppeld aan de EC2-instantie.

Ga hierna binnen ClusterControl naar het gedeelte Importeren:

Daar kunt u de databasetechnologie kiezen, in dit voorbeeld MySQL-replicatie, en u moet de gebruiker, sleutel of wachtwoord en poort specificeren om via SSH verbinding te maken met uw server. U moet ook de naam van uw nieuwe cluster opgeven.

 

Na het instellen van de SSH-toegangsinformatie, moet u enkele database-informatie definiëren, zoals de databasebeheerdersreferenties, poort en basedir. U kunt ook de functies ClusterControl Node AutoRecovery en Cluster AutoRecovery inschakelen voor het nieuwe cluster.

Vervolgens moet u uw server toevoegen met behulp van het IP-adres of de hostnaam en op Importeren drukken.

Zodra dat is gebeurd, kunt u de status van de importtaak volgen vanuit de ClusterControl-activiteitenmonitor.

Zodra de taak is voltooid, ziet u uw databaseknooppunt in het hoofdmenu ClusterControl-scherm:

Zorg ervoor dat het genereren van binlog in uw huidige hoofddatabase is ingeschakeld.

Nu kunt u uw toekomstige nieuwe primaire knooppunt toevoegen als een nieuwe replica van uw huidige primaire database. Ga hiervoor naar ClusterControl -> Cluster selecteren -> Clusteracties -> Replicatieslave toevoegen.

Hier moet u de hostnaam of het IP-adres van de nieuwe replica toevoegen server, en als u wilt dat ClusterControl de software voor u installeert.

Zorg ervoor dat je verbinding hebt van AWS naar poorten 3306 en 9999 in de on-prem server.

ClusterControl faseert replica met gegevens door een hotback-up van de primaire te maken, deze naar de replica te streamen en daar te herstellen. Nadat het replicaknooppunt is hersteld, is het verbonden met het primaire knooppunt, zodat het gebeurtenissen kan inhalen en gesynchroniseerd kan worden. Houd er rekening mee dat voor grote databases die met enige belasting worden uitgevoerd, u de extra belasting van deze bewerking op het primaire knooppunt wellicht wilt vermijden. In dat geval is het mogelijk om eerst de replicanode te bouwen vanuit een bestaande back-up en vervolgens de replica te verbinden, zodat deze de primaire node inhaalt.

Na deze taak zou je zoiets als dit moeten hebben:

U kunt uw topologie ook verifiëren in het gedeelte ClusterControl Topologie.

Vervolgens moet u de replica promoveren naar primair (ClusterControl -> Selecteer Cluster -> Knooppuntacties -> Slave promoten) en wijzig het eindpunt in uw toepassing.

Om deze topologie te verbeteren, kunt u een load balancer toevoegen om het verkeer te beheren van de applicatieserver naar de database. Wanneer u een load balancer gebruikt, hoeft u tijdens de migratie het eindpunt van uw applicatie niet te wijzigen; de load balancer zal het primaire knooppunt op een transparante manier veranderen.

Er zijn veel manieren om deze taak uit te voeren, en u zou in staat moeten zijn om pas een dergelijke strategie toe aan uw omgeving, afhankelijk van uw infrastructuur, beveiliging, enz.

Om veiligheidsredenen kunt u overwegen een VPN te gebruiken tussen AWS en de on-premises omgeving.

In het geval van een multi-master topologie zoals Galera Cluster, hoeft u alleen de nodes toe te voegen die u on-premise wilt, maar wees voorzichtig met de latentie. U kunt bijvoorbeeld verschillende Galera-segmenten gebruiken om het netwerkgebruik te verminderen.

Overwegingen voor migratie

Ten slotte zijn hier enkele overwegingen waarmee u rekening moet houden als u AWS wilt verlaten en uw eigen omgeving wilt gaan gebruiken:

  • Monitoring:vergeet niet een monitoringsysteem te gebruiken. U moet altijd weten wat er in uw systeem gebeurt!
  • Rampherstelstrategie:u moet een goede DRP overwegen. Over het algemeen moet u de informatie op drie verschillende fysieke plaatsen hebben:primair, replica en back-up.
  • Hoge beschikbaarheid:tegenwoordig is hoge beschikbaarheid een must in de meeste productieomgevingen, dus u moet nadenken over de beste oplossing voor hoge beschikbaarheid, afhankelijk van uw infrastructuur.
  • Schalen:u zou in de toekomst of voor een specifiek evenement moeten kunnen schalen.
  • Terugdraaien:als je wilt migreren van AWS naar een lokale omgeving, houd er dan rekening mee dat er iets mis kan gaan (zoals bij elk type migratie), dus je moet een terugdraaiplan hebben.
  • Stel dat je op zoek bent naar een soort hybride omgeving, met instanties die op AWS en op locatie draaien. Dan is ClusterControl uitstekend geschikt voor monitoring, beheer van beschikbaarheid, back-ups, schaling en meer. Probeer het eens!

Afronden

Soms is werken in de cloud niet de beste keuze, en moet je misschien terug migreren naar een on-premise oplossing. We hopen dat deze blog je wat nuttige informatie heeft gegeven over het migreren van je MySQL-gegevens naar je on-premises datacenter van AWS en hoe ClusterControl de tools levert die je nodig hebt om je systemen goed te beheren.

Zodra u uw migratie heeft voltooid, kunt u uw monitoringsysteem opwaarderen met proactieve strategieën zoals voorspellende waarschuwingen. Bekijk ons ​​recent bijgewerkte bericht over Database Monitoring met ClusterControl voor meer informatie.

Voor meer updates over tips en best practices voor databasebeheer, abonneer je op onze blog, RSS-feed en volg ons op LinkedIn en Twitter.


  1. Spring JDBC-ondersteuning en grote dataset

  2. Hoe to_date() werkt in PostgreSQL

  3. Leesbare secundairen met een beperkt budget

  4. Wat is CHAR_LENGTH() in MySQL?