Zephyrnet-logo

Migreer uw Amazon Redshift-cluster naar een andere AWS-regio

Datum:

Amazon roodverschuiving is een snel, volledig beheerd clouddatawarehouse waarmee u eenvoudig en kosteneffectief al uw gegevens kunt analyseren met behulp van standaard SQL en uw bestaande business intelligence (BI)-tools. Amazon Redshift gebruikt SQL om gestructureerde en semi-gestructureerde gegevens in datawarehouses, operationele databases en datameren te analyseren, met behulp van door AWS ontworpen hardware en machine learning (ML) om de beste prijs-prestatieverhouding op elke schaal te leveren.

Klanten hebben contact met ons opgenomen met de behoefte om hun Amazon Redshift-clusters van de ene AWS-regio naar de andere te migreren. Enkele van de veelvoorkomende redenen zijn onder meer het aanbieden van hun clusters geografisch dichter bij hun gebruikersbestand om de latentie te verbeteren, voor kostenoptimalisatiedoeleinden door hun clusters in te zetten in een regio waar de prijzen lager zijn, of voor het migreren van clusters naar een regio waar de rest van hun implementaties zijn. Dit bericht biedt een stapsgewijze benadering om uw Amazon Redshift-cluster naar een andere regio te migreren met behulp van de snapshot-functionaliteit.

Overzicht van de oplossing

Deze oplossing maakt gebruik van de cross-Region snapshot-functie van Amazon Redshift om interregionale migratie uit te voeren. Het idee is om meerdere handmatige snapshots van uw Amazon Redshift-cluster te maken vóór de overgangsdeadline om minimaal gegevensverlies te garanderen en om het cluster naar een andere regio te migreren binnen het gedefinieerde onderhoudsvenster. U moet ervoor zorgen dat het onderhoudsvenster zich in een periode van weinig of geen schrijfactiviteit bevindt om downtime tot een minimum te beperken. De tijd die nodig is om de snapshots te kopiëren, hangt af van de grootte van de snapshot. Het is een goed idee om vóór de migratie in te schatten hoeveel tijd het kost om snapshots naar de doelregio te kopiëren door te testen met gegevenssets van vergelijkbare of grotere omvang in uw staging-omgevingen. Dit kan helpen bij uw planningsproces.

Nadat u de snapshots naar de doelregio hebt gekopieerd, kunt u de laatste snapshot herstellen om een ​​nieuw Amazon Redshift-cluster te maken. Momentopnamen zijn van nature incrementeel en houden wijzigingen in het cluster bij sinds de vorige momentopname. De kopieertijd is relatief aan de hoeveelheid gegevens die is gewijzigd sinds de laatste momentopname.

Wanneer een snapshot naar een andere regio wordt gekopieerd, kan deze ook als standalone fungeren, wat betekent dat zelfs als alleen de laatste snapshot naar de doelregio wordt gekopieerd, het herstelde Amazon Redshift-cluster nog steeds alle gegevens heeft. Voor meer informatie, zie: Amazon Redshift-snapshots. Cross-Region snapshot-functionaliteit kan ook handig zijn voor het instellen van noodherstel voor uw Amazon Redshift-cluster.

Het volgende diagram illustreert de architectuur voor migratie tussen regio's binnen hetzelfde AWS-account.

De oplossing omvat de volgende stappen:

  1. Configureer regio-overschrijdende snapshots van het bron-Amazon Redshift-cluster vóór de overgangsdeadline.
  2. Herstel de nieuwste snapshots om een ​​nieuw Amazon Redshift-cluster in de doelregio te maken.
  3. Richt uw applicaties op het nieuwe Amazon Redshift-cluster.

Voor versleutelde snapshots is er een extra stap van het maken van een nieuwe versleutelingssleutel en het uitvoeren van een snapshot-toekenning voordat u de snapshot naar de doelregio kunt kopiëren.

Voorwaarden

Selecteer voor het migratieproces een onderhoudsperiode wanneer er weinig schrijfactiviteit is en houd rekening met de RTO- en RPO-vereisten van de organisatie.

De volgende stappen helpen u bij het opzetten van een Amazon Redshift-cluster in de bronregio en het vullen met een voorbeeldgegevensset. Voor dit bericht gebruiken we US ​​West (Oregon) als de bronregio en US East (N. Virginia) als de doelregio. Als je al een Amazon Redshift-broncluster hebt, kun je deze vereiste stappen overslaan.

Maak een Amazon Redshift-cluster in de bronregio

Voer de volgende stappen uit om uw cluster in de bronregio te maken:

  1. Open de Amazon Redshift-console in uw bronregio.
  2. Kies Clusters in het navigatievenster en kies Clusters weer op het menu.
  3. Kies Cluster maken.
  4. Voor Cluster-ID, ga naar binnen redshift-cluster-source.
  5. kies Productie voor clustergebruik.

Met deze optie kunt u specifieke instantietypen selecteren en de voorbeeldgegevens van uw keuze laden. Houd er rekening mee dat Amazon Redshift-instanties en -opslag de hele tijd in rekening worden gebracht totdat u het cluster verwijdert. Voor meer informatie over prijzen, zie Amazon Redshift-prijzen.

  1. Voor Knooppunttype, kies het gewenste knooppunttype.
  2. Voor Aantal knooppunten, voer het aantal knooppunten in dat u wilt gebruiken.

Voor dit bericht gebruiken we vier dc2.large-instanties.

  1. Onder Databaseconfiguraties, voer een gebruikersnaam en wachtwoord voor het cluster in.

Als best practice wijzigt u de standaard gebruikersnaam in een aangepaste gebruikersnaam (voor dit bericht mydataadmin) en volgt u de wachtwoordrichtlijnen.

Om de voorbeeldgegevens van een externe te laden: Amazon eenvoudige opslagservice (Amazon S3) bucket naar het broncluster, moet u een AWS Identiteits- en toegangsbeheer (IAM) rol.

  1. Onder Clustermachtigingen,
    op de IAM-rollen beheren vervolgkeuzemenu, kies Maak een IAM-rol.
  2. kies Elke S3-bucket En kies IAM-rol als standaard aanmaken.
  3. Voor Aanvullende configuraties, beurt Standaardinstellingen gebruiken uit.
  4. In het Netwerk en beveiliging sectie, kies een VPC en cluster subnet groep.

Voor meer informatie over het maken van een cluster, zie: Een cluster maken in een VPC.

  1. Uitvouwen Databaseconfiguraties.

We raden aan om aangepaste waarden te gebruiken in plaats van de standaardwaarden.

  1. Voor Database naam, ga naar binnen stagingdb.
  2. Voor Databasepoort, voer 7839 in.
  3. Voor Encryptieselecteer invalide.

We schakelen encryptie in een latere stap in.

  1. Laat de andere opties als standaard en kies Cluster maken.
  2. Wanneer het cluster beschikbaar is, schakelt u controlelogboekregistratie in op het cluster.

Auditregistratie registreert informatie over verbindingen en gebruikersactiviteiten in uw database. Dit is handig voor zowel beveiliging als voor het oplossen van problemen.

Om te voldoen aan best practices op het gebied van beveiliging, maakt u ook een nieuwe Amazon Redshift parametergroep.

  1. Kies Configuraties en Beheer van de werklast om uw parametergroep te maken.
  2. Zorg ervoor dat de parameters require_ssl en enable_user_activity_logging zijn ingesteld op waar.
  3. Op de Tabblad Eigenschappen, kies de Edit menu in het Databaseconfiguraties sectie en kies Bewerk parametergroep.
  4. Koppel de nieuw gemaakte parametergroep aan het Amazon Redshift-cluster.

Als deze wijziging u vraagt ​​om opnieuw op te starten, kiest u: Reboot.

Laad de voorbeeldgegevensset in het broncluster Amazon Redshift

Wanneer het cluster gereed is, is het tijd om de voorbeeldgegevensset uit de S3-bucket te laden s3://redshift-immersionday-labs/data/. De volgende tabellen maken deel uit van de dataset:

  • REGIO (5 rijen)
  • NATIE (25 rijen)
  • KLANT (15 miljoen rijen)
  • BESTELLINGEN (76 miljoen rijen)
  • PART (20 miljoen rijen)
  • LEVERANCIER (1 miljoen rijen)
  • LINEITEM (600 miljoen rijen)
  • ONDERDELENLEVERANCIER (80 miljoen rijen)

Het is een best practice voor het Amazon Redshift-cluster om toegang te krijgen tot de S3-bucket via VPC-gateway-eindpunten om de laadprestaties van gegevens te verbeteren, omdat het verkeer door het AWS-netwerk stroomt en internet vermijdt.

Voordat we onze gegevens in Amazon S3 kunnen laden, moeten we een VPC-eindpunt inschakelen via Amazon virtuele privécloud (Amazone VPC).

  1. Kies op de Amazon VPC-console Eindpunten.
  2. Kies Eindpunt maken.
  3. Voor Naamlabel, ga naar binnen redshift-s3-vpc-endpoint.
  4. Voor Servicecategorieselecteer AWS-diensten.
  5. Zoek naar S3 en selecteer het eindpunt van het gatewaytype.
  6. Kies dezelfde VPC waar uw cluster is ingericht en selecteer de routetabel.
  7. Laat al het andere standaard staan ​​en kies Eindpunt maken.

Wacht tot de status van het gateway-eindpunt verandert in Available.

Vervolgens activeer je verbeterde VPC-routering.

  1. Open de Amazon Redshift-console in de bronregio.
  2. Kies uw broncluster.
  3. Op de Properties tab, in de Netwerk- en beveiligingsinstellingen sectie, kies Edit.
  4. Voor Verbeterde VPC-routingselecteer ingeschakeld
    .
  5. Kies Wijzigingen opslaan.

Wacht tot de clusterstatus verandert in Available.

U moet tabellen maken om de voorbeeldgegevens in het cluster te laden. We raden aan om de webgebaseerde Amazon Redshift te gebruiken query-editor.

  1. Kies op de Amazon Redshift-console editor in het navigatievenster en kies Query-editor.

U kunt ook de nieuwe query-editor V2.

  1. Kies Maak verbinding met de database.
  2. kies Nieuwe verbinding maken.
  3. Voer de databasenaam en gebruikersnaam in.
  4. Kies Verbinden.

Voor dit bericht gebruiken we de TPC gegevensvoorbeeld uit de Amazon Redshift Immersion Labs.

  1. Navigeer naar de Gegevens laden sectie van de Immersion Day Labs.
  2. Volg de instructies in het Tabellen maken sectie om de tabellen in uw broncluster te maken.
  3. Nadat u de tabellen heeft gemaakt, volgt u de instructies in Data laden sectie om de gegevens in het cluster te laden.

Het laden van de gegevens duurde ongeveer 17 minuten in de regio US West (Oregon). Dit kan variëren afhankelijk van de regio en de netwerkbandbreedte op dat moment.

Nadat de gegevens met succes in het broncluster zijn geladen, kunt u er een query op uitvoeren om ervoor te zorgen dat u de gegevens in alle tabellen ziet.

  1. Kies een tafel (klik met de rechtermuisknop) en kies Bekijk een voorbeeld van de gegevens.
  2. Laat vallen customer tabel met behulp van de query DROP TABLE customer;.

We voegen de tabel later weer toe om incrementele wijzigingen te demonstreren.

U kunt de opslaggrootte controleren om de grootte van de geladen gegevens te controleren.

  1. Kies Clusters in het navigatievenster.
  2. Kies uw broncluster.
  3. Controleer de opslaggrootte in de Algemene informatie sectie, onder Opslag gebruikt.

Uw bron-Amazon Redshift-cluster is nu geladen met een voorbeeldgegevensset en is klaar voor gebruik.

Momentopnamen tussen regio's configureren in de bronregio

Om interregionale migratie uit te voeren, is de eerste stap het configureren van snapshots tussen regio's. Met de functie voor snapshots tussen regio's kunt u snapshots automatisch naar een andere regio kopiëren.

  1. Open de Amazon Redshift-console in de bronregio.
  2. Selecteer uw Amazon Redshift-cluster.
  3. Op de Acties menu, kies Momentopname tussen regio's configureren.
  4. Voor Momentopnamen kopiërenselecteer Ja.
  5. Voor Bestemmingsregio, kies je doelregio (voor dit bericht, us-east-1).
  6. Configureer de handmatige bewaarperiode voor snapshots volgens uw vereisten.
  7. Kies Bespaar.

Nadat de functie voor snapshots tussen regio's is geconfigureerd, worden alle daaropvolgende geautomatiseerde of handmatige snapshots automatisch gekopieerd naar de doelregio.

  1. Om een ​​handmatige momentopname te maken, kies Clusters in het navigatievenster en kies Snapshots.
  2. Kies Momentopname maken.
  3. Voor Cluster-ID, kiezen redshift-cluster-source.
  4. Pas de bewaarperiode voor snapshots aan op basis van uw vereisten.
  5. Kies Momentopname maken.

Het idee is om meerdere snapshots te maken tot de deadline voor de overgang om zoveel mogelijk gegevens vast te leggen voor minimaal gegevensverlies op basis van uw RTO- en RPO-vereisten. Het maken van de eerste momentopname duurde ongeveer 4 minuten voor 28.9 GB aan gegevens, maar de daaropvolgende momentopnamen zijn incrementeel van aard.

Deze momentopname wordt automatisch gekopieerd naar de doelregio vanuit de bronregio. U kunt de Amazon Redshift-console in de doelregio openen om de kopie te verifiëren.

Zoals te zien is in de volgende schermafbeelding, duurde het ongeveer 28.9 minuten voordat de momentopname van 44 GB werd gekopieerd naar de doelregio, omdat dit de eerste momentopname is die alle gegevens in het cluster bevat. Afhankelijk van de betrokken regio's en de hoeveelheid gegevens die moet worden gekopieerd, kan het uren duren voordat een snapshot-kopie tussen de regio's is voltooid.

Laten we nu incrementele wijzigingen simuleren die worden aangebracht in het broncluster.

  1. Open de Amazon Redshift-console in de bronregio en open de query-editor.
  2. Maak een nieuwe tabel met de naam customer in het cluster met behulp van de volgende query:
    create table customer ( C_CUSTKEY bigint NOT NULL, C_NAME varchar(25), C_ADDRESS varchar(40), C_NATIONKEY bigint, C_PHONE varchar(15), C_ACCTBAL decimal(18,4), C_MKTSEGMENT varchar(10), C_COMMENT varchar(117))
    diststyle all;

  3. Laad gegevens in de customer tabel met de volgende opdracht:
    copy customer from 's3://redshift-immersionday-labs/data/customer/customer.tbl.'
    iam_role default
    region 'us-west-2' lzop delimiter '|' COMPUPDATE PRESET;

  4. Om een ​​handmatige momentopname met incrementele gegevens te maken, kiest u: Clusters in het navigatievenster en kies vervolgens Snapshots.
  5. Geef de nodige informatie op en kies Momentopname maken.

Omdat de functie voor snapshots tussen regio's is ingeschakeld, wordt deze incrementele snapshot automatisch naar de doelregio gekopieerd. In het volgende voorbeeld duurde het ongeveer 11 minuten om de momentopname vanuit de bronregio naar de doelregio te kopiëren. Deze tijd varieert van regio tot regio en is gebaseerd op de hoeveelheid gegevens die wordt gekopieerd.

Momentopnames herstellen naar dezelfde of hogere instantietypen in de doelregio

Wanneer de laatste momentopname met succes naar de doelregio is gekopieerd, kunt u de momentopname herstellen.

  1. Open de Amazon Redshift-console in de doelregio.
  2. Op de Snapshots pagina, selecteer uw momentopname.
  3. Op de Herstellen vanaf momentopname menu, kies Herstellen naar een ingericht cluster.
  4. Voor Cluster-ID, ga naar binnen redshift-cluster-target.
  5. Voor Knooppunttype¸ u kunt hetzelfde exemplaartype gebruiken of upgraden naar een hoger exemplaartype.
  6. Voor Aantal knooppunten, kies het aantal nodes dat je nodig hebt.

Als u ervoor kiest om uw instantie te upgraden naar RA3, raadpleegt u: Upgraden naar RA3-knooppunttypen om het aantal nodes te bepalen dat u nodig hebt.

Voor dit bericht gebruiken we nog steeds vier knooppunten van het instantietype dc2.large.

  1. Onder Databaseconfiguratiesvoor Database naam¸ invoeren stagingdb.
  2. Laat de rest van de instellingen als standaard (of wijzig ze volgens uw vereisten) en kies Cluster herstellen vanaf momentopname.

Een nieuw Amazon Redshift-cluster wordt ingericht vanuit de momentopname in de doelregio.

Volg dezelfde aanbevolen beveiligingsprocedures die u hebt toegepast op het broncluster voor het doelcluster.

Verwijs uw applicaties naar het nieuwe Amazon Redshift-cluster

Wanneer het doelcluster beschikbaar is, configureert u uw applicaties om verbinding te maken met de nieuwe doel-Amazon Redshift-eindpunten. Nieuwe clusters hebben een ander Domain Name System (DNS)-eindpunt. Dit betekent dat u alle clients moet bijwerken om naar het nieuwe eindpunt te verwijzen.

Migratiestappen tussen regio's voor versleutelde gegevens

Als de gegevens in uw Amazon Redshift-cluster versleuteld zijn, moet u aanvullende stappen uitvoeren bij uw interregionale migratie. Als gegevensversleuteling al is ingeschakeld, kunt u doorgaan naar de stappen voor het verlenen van snapshotkopieën.

Gegevensversleuteling inschakelen in het bron-Amazon Redshift-cluster

Om gegevensversleuteling in het broncluster in te schakelen, gebruiken we: Sleutelbeheerservice van Amazon (AWS KMS).

  1. Open de AWS KMS-console in de bronregio.
  2. Een KMS-sleutel maken Dit betekent dat we onszelf en onze geliefden praktisch vergiftigen. redshift-source-key.
  3. Sleutelrotatie inschakelen.
  4. Selecteer uw cluster op de Amazon Redshift-console (nog steeds in de bronregio).
  5. Als een regiooverschrijdende momentopname is ingeschakeld, kiest u: Momentopname tussen regio's configureren op de Menu Acties.
  6. kies Nee En kies Bespaar.
  7. Op de Tabblad Eigenschappen, in de Databaseconfiguraties sectie, kies het Edit menu en kies Versleuteling bewerken.
  8. kies AWS Key Management Service (AWS KMS) gebruiken.
  9. kies Sleutel van betaalrekening gebruiken en kies de sleutel die u hebt gemaakt.
  10. Kies Wijzigingen opslaan.

De tijd die nodig is om de gegevens te versleutelen, is gebaseerd op de hoeveelheid gegevens die in het cluster aanwezig is.

Als de gegevens zijn versleuteld, worden eventuele volgende snapshots ook automatisch versleuteld.

Toekenning momentopname

Wanneer u de versleutelde momentopnamen naar de doelregio kopieert, werkt de bestaande KMS-sleutel in de bronregio niet in de doelregio omdat KMS-sleutels specifiek zijn voor de regio waar ze zijn gemaakt. U moet een andere KMS-sleutel maken in de doelregio en deze toegang verlenen.

  1. Open de AWS KMS-console in de doelregio.
  2. Als u nog geen KMS-sleutel heeft om te gebruiken, maak een sleutel Dit betekent dat we onszelf en onze geliefden praktisch vergiftigen. redshift-target-key.
  3. Sleutelrotatie inschakelen.
  4. Open de Amazon Redshift-console in de bronregio.
  5. Selecteer het cluster en op de Acties menu, kies Momentopname tussen regio's configureren.
  6. Voor Momentopnamen kopiërenselecteer Ja.
  7. Voor Kies een snapshot-kopiesubsidie, kiezen Nieuwe subsidie ​​aanmaken.
  8. Voor Naam momentopname kopie verlenen, ga naar binnen redshift-target-grant.
  9. Voor KMS-sleutel-ID, kies de sleutel die u voor de subsidie ​​hebt gemaakt.

Als u geen sleutel-ID opgeeft, is de toekenning van toepassing op uw standaardsleutel.

  1. Kies Bespaar.

Alle volgende snapshots die naar de doelregio worden gekopieerd, worden nu versleuteld met de sleutel die in de doelregio is gemaakt.

  1. Nadat de momentopname naar de doelregio is gekopieerd, herstelt u het cluster vanaf de versleutelde momentopname volgens de stappen van eerder in dit bericht.

Voor meer details over het versleutelingsproces, zie: AWS KMS-gecodeerde snapshots kopiëren naar een andere AWS-regio.

Nadat u hebt hersteld vanaf de versleutelde momentopname, wordt het herstelde cluster automatisch versleuteld met de sleutel die u in de doelregio hebt gemaakt.

Zorg ervoor dat uw toepassingen naar het nieuwe clustereindpunt verwijzen wanneer het cluster beschikbaar is.

Opruimen

Als je Amazon Redshift-clusters of snapshots hebt gemaakt voor testdoeleinden, kun je deze bronnen verwijderen om toekomstige kosten te voorkomen.

Voor instructies over het verwijderen van snapshots, zie: Handmatige snapshots verwijderen.

Raadpleeg voor instructies over het verwijderen van het Amazon Redshift-cluster: Een cluster verwijderen.

Conclusie

Dit bericht liet zien hoe u uw Amazon Redshift-cluster naar een andere regio kunt migreren met behulp van de snapshot-functionaliteit voor meerdere regio's. Amazon Redshift-migratie vereist enige voorafgaande planning, afhankelijk van de betrokken regio's en de hoeveelheid gegevens die moet worden gekopieerd. Het maken en kopiëren van snapshots kan veel tijd in beslag nemen. De eerste momentopname bevat alle gegevens in het cluster en daarom kan het langer duren, maar volgende momentopnamen bevatten incrementele wijzigingen en kunnen minder tijd in beslag nemen, afhankelijk van de aangebrachte wijzigingen. Het is een goed idee om in te schatten hoeveel tijd het kopiëren van de snapshot kost door enkele tests uit te voeren in uw staging-omgevingen met snapshots van een vergelijkbare grootte of iets groter dan die in de productieomgeving, zodat u minimaal gegevensverlies kunt plannen en aan RTO en RPO kunt voldoen voorwaarden.

Voor meer details over de Amazon Redshift snapshot-functionaliteit, zie: Werken met momentopnamen.


Over de auteur

Sindhura Palakodety is Solutions Architect bij Amazon Web Services. Ze heeft een passie voor het helpen van klanten bij het bouwen van enterprise-scale Well-Architected-oplossingen op het AWS-platform en is gespecialiseerd in Containers en Data Analytics-domeinen.

spot_img

Laatste intelligentie

spot_img

Chat met ons

Hallo daar! Hoe kan ik u helpen?