ELASTICACHE REDIS → STACKIT VALKEY · HANDLEIDING

ElastiCache Redis naar STACKIT Valkey: een uitgewerkt voorbeeld

STACKIT Key Value Store is Valkey, en het rapport van de run citeert de verklaring van het Valkey-project dat het compatibel is met Redis OSS 7.2 en eerder, zodat bestaande clients in het gangbare geval blijven werken. Wat verandert, is alles rond de engine: toegangsbeheer, dimensionering, het endpoint en de credential. Deze handleiding voert StackToIT uit op een kleine omgeving met een sessiecache en volgt het resultaat tot aan de sleutelkopie.

De invoer: een Redis 7.1-groep met twee nodes

Een demo-omgeving die voor deze pagina is geschreven: een replicatiegroep van twee cache.m6g.large-nodes met automatische failover, encryptie tijdens transport en in rust, een AUTH-token, een bewaartermijn van zeven dagen voor snapshots en een parameter group met een LRU-evictiebeleid. Links: de parameter group en de groep, zoals ze in het bestand staan. Rechts: de Valkey-Terraform die de run schreef, zonder reviewcommentaren.

Voorbeeldinvoermain.tf
resource "aws_elasticache_parameter_group" "sessions" {
  name   = "sessions-redis7"
  family = "redis7"

  parameter {
    name  = "maxmemory-policy"
    value = "allkeys-lru"
  }
}

resource "aws_elasticache_replication_group" "sessions" {
  replication_group_id       = "sessions"
  description                = "Session store for the web tier"
  engine                     = "redis"
  engine_version             = "7.1"
  node_type                  = "cache.m6g.large"
  num_cache_clusters         = 2
  automatic_failover_enabled = true
  multi_az_enabled           = true
  port                       = 6379
  subnet_group_name          = aws_elasticache_subnet_group.sessions.name
  security_group_ids         = [aws_security_group.cache.id]
  parameter_group_name       = aws_elasticache_parameter_group.sessions.name
  at_rest_encryption_enabled = true
  transit_encryption_enabled = true
  auth_token                 = var.cache_auth_token
  snapshot_retention_limit   = 7
  snapshot_window            = "02:00-03:00"
}
STACKIT-Terraform van StackToITterraform/data.tf
resource "stackit_valkey_instance" "sessions" {
  project_id = var.project_id
  name       = "sessions"
  plan_name  = var.sessions_plan_name
  version    = var.sessions_version
  parameters = {
    sgw_acl = join(",", var.sessions_allowed_cidrs)
  }
}

resource "stackit_valkey_credential" "sessions" {
  project_id  = var.project_id
  instance_id = stackit_valkey_instance.sessions.instance_id
}

Wat de run rapporteert

De samenvatting voor de demo-omgeving, zoals weergegeven door stacktoit assess . <output folder> --offline --no-validate (console.txt; --no-validate is de reden dat de OpenTofu-controle van de bron niet is uitgevoerd). Zeven resources zijn gescand. Vijf werden migratie-eenheden, alle RECONFIGURE; de subnet group en de parameter group gaan op in de cache-eenheid en hebben geen eigen resource nodig.

Samenvatting van de runconsole.txt
Source:                 input
Source files:           1
Resources scanned:      7
  support resources:    2  (+0 Terraform helpers, out of scope; 2 + 0 = the 2 support nodes of summary.support.nodes in assessment.json)
Migration units:        5  (5 instances)
Unit dependencies:      6
Source checks:          Built-in source checks found inputs the package does not hold — OpenTofu validation of the source was not run
Source inputs:          missing required input ×1 (1 stops nothing) (summary.source_inputs)
Source completeness:    VARIABLE_UNRESOLVED — 1 root variable(s) have no default and no value (cache_auth_token): what reads them is unknown until a run supplies them (-var-file, -var or TF_VAR_*; give a variable file with --var-file)

STACKIT mapping
────────────────────────────────────────────
DIRECT              0  
RECONFIGURE         5  ██████████████████████████████ 100%
REPLATFORM          0  
CONTAINERIZE        0  
REDESIGN            0  
MANUAL_REVIEW       0  
BLOCKED             0    (the mapping class BLOCKED, not the execution blockers, which Migration readiness counts)

Wat het concept overneemt en wat niet

ElastiCache-instellingIn het Valkey-conceptWat u doet
engine redis, engine_version 7.1Valkey, versie ingesteld via een variabele; de catalogus biedt hoofdversie 8Kies de versie; overstappen vanaf 7.1 is een engine-upgrade en het rapport vermeldt dat ook
node_type cache.m6g.large, twee nodesEen plannaam, standaard een replicaplan; het plan bepaalt nodes en replica'sBevestig de omvang die uit de bron is afgeleid; de beslissing blijft open tot u die beantwoordt
subnet group, security groupNiet overgenomen: de instance heeft geen subnet- of security group-attribuutNoem de client-CIDR's in de variabele voor de toegangslijst; de lijst heeft geen standaardwaarde
port 6379Niet overgenomen: de poort komt mee met de credentialSchakel de clients om naar de host en poort die de credential teruggeeft
auth_tokenEen Valkey-credential die STACKIT genereert, beschikbaar als gevoelige outputLees de credential na de apply uit en geef die vóór de cutover aan elke client
transit encryption aanTLS wordt door de service afgedwongenControleer of elke clientdriver voor TLS is ingesteld (rediss:// of een TLS-optie)
at-rest encryption aanGerapporteerd als onbekend: geen attribuut en geen verklaring gevonden voor de serviceVraag het aan STACKIT voordat u er voor een eis op vertrouwt
parameter group, maxmemory-policyNiet vertaald; geselecteerde instellingen staan onder de parameters van de instanceKoppel de instellingen die uw applicatie nodig heeft
snapshot_window 02:00-03:00, retentie 7Niet overgenomen; het tijdstip van de snapshot is een parameter van de instanceBepaal het snapshotschema

Het plan voor de sleutelkopie

De run schrijft naast de Terraform een runbook voor de dataverplaatsing (terraform/handover/cache-sessions/data-move.md) en de stappen in het uitvoeringsplan. StackToIT verplaatst geen data. Dit zijn de stappen van de ene methode die het openhoudt: een kopie door een client die u zelf uitvoert.

  1. Preflight

    Alleen-lezen controles vanaf de verplaatsingshost: engineversie, aantal sleutels, geheugengebruik, of SCAN, DUMP en PTTL werken met de credential waarmee u gaat kopiëren, en of de clients TLS gebruiken. De servicesleutel van het doel is geen beheerdersaccount, dus verwacht niet dat CONFIG, ACL of MODULE werken.

  2. Proefrun

    Kopieer een steekproef naar een scratch-instance van hetzelfde plan en dezelfde versie, noteer sleutels per seconde en de sleutels die RESTORE weigert, voer de tests van de applicatie ertegen uit en verwijder daarna de scratch-instance.

  3. Schrijfstop

    Som op wie schrijft, leg de verbindingsinstellingen van elke client vast en stop de schrijvers. De bron blijft onaangeroerd, dus voor de weg terug is er niets op de bron nodig.

  4. Laatste synchronisatie

    Doorloop de sleutels met SCAN, lees elke sleutel met DUMP en PTTL en schrijf die met RESTORE en de resterende levensduur. Het plan vermijdt bewust de commando's KEYS en MIGRATE: de eigen migratiehandleiding van STACKIT stuurt KEYS door naar MIGRATE, wat een directe verbinding vanaf de bron naar de backendhost van het doel vereist.

  5. Afstemmen en opruimen

    Vergelijk het aantal sleutels en gesorteerde sleutellijsten terwijl de schrijvers zijn gestopt, voer één echte leesactie van de applicatie uit, leg GO of NO-GO vast, verwijder daarna de verplaatsingshost uit de toegangslijst en wis de werkbestanden.

De afstemmingscontrole, letterlijk

De eerste controle na de overdracht (key-counts). De client vraagt interactief om het wachtwoord, zodat dat nooit op de opdrachtregel verschijnt. Vervang de placeholders door de endpoints van uw bron en van de credential.

Controle uit het runbookterraform/handover/cache-sessions/data-move.md
valkey-cli -h <source-host> -p <source-port> --tls --askpass DBSIZE
valkey-cli -h <source-host> -p <source-port> --tls --askpass INFO keyspace
valkey-cli -h <target-host> -p <target-port> --tls --sni <target-host> --user <target-user> --askpass DBSIZE
valkey-cli -h <target-host> -p <target-port> --tls --sni <target-host> --user <target-user> --askpass INFO keyspace

De vier manieren om de data te verplaatsen en wat het plan van elk zegt

MethodeStatus in het planWaarom
Export en import met de engineclientsKandidaat, niet gekozenVergt een schrijfstop die zo lang duurt als de kopie en de vergelijking samen; het plan heeft RESTORE niet uitgevoerd op een Key Value Store
Snapshot herstellen (ElastiCache-export naar S3, laden in Valkey)Door het plan geweigerdAWS kan een back-up als .rdb-bestanden naar een S3-bucket exporteren, maar geen enkele STACKIT-pagina of API-uitlezing documenteert het laden van zo'n bestand in een Key Value Store
Online replicatie vanaf de bronDoor het plan geweigerdGeen enkele STACKIT-pagina of API-uitlezing documenteert dat een instance als replica van een externe primary kan worden gekoppeld; het plan legt vast dat de bronzijde het evenmin biedt
Een eigen toolEigendom van de klantHet plan noemt geen duur of venster voor de schrijfstop; het houdt de stappen voor schrijfstop, afstemming en rollback aan

Wat u wijzigt voordat u het toepast

Vier waarden en beslissingen staan in de demo-run tussen het concept en een apply.

  • Client-CIDR's

    Vul de variabele voor de toegangslijst in. Zonder lijst past STACKIT zijn standaardtoegangslijst toe, die de adressen van elke STACKIT-klant toelaat.

  • Publiek endpoint

    De instance heeft een eigen endpoint buiten uw projectnetwerk. Het concept accepteert een publiek endpoint dat door de CIDR-lijst wordt beperkt; ontwerp het opnieuw als clients het niet van buitenaf mogen bereiken.

  • Versie en plan

    Stel de Valkey-versie in en bevestig of wijzig de plannaam. Kies een replicaplan als de bron zelf een failover uitvoert.

  • Mag de cache leeg starten?

    Als de eigenaar van de applicatie zegt dat de sleutels opnieuw kunnen worden opgebouwd, sla dan de kopie over en beantwoord de beslissing over de dataverplaatsing met uw eigen tool.

Vragen van teams

Hebben onze Redis-clients codewijzigingen nodig?

Meestal alleen configuratie: host, poort, TLS en de credential. STACKIT meldt dat Key Value Store compatibel is met bestaande Redis-opstellingen, en het rapport beperkt zijn eigen bewering tot Redis OSS 7.2 en eerder, zonder Redis-modules of latere functies.

Kan ik mijn ElastiCache-back-up herstellen in Valkey?

AWS kan een back-up als .rdb-bestanden naar S3 exporteren, maar het plan weigert de methode omdat geen enkele gelezen STACKIT-documentatie het laden van zo'n bestand beschrijft. Een Valkey-server die u zelf draait, kan een RDB-bestand lezen; die variant schrijft het plan niet uit als stappen.

Waarom is er geen netwerkplaatsing voor de instance?

De Valkey-instance heeft geen netwerkattribuut, dus het concept kan de instance niet in een opgesteld netwerk plaatsen. Toegang wordt geregeld met de CIDR-toegangslijst; daarom bestaat de beslissing over de blootstelling.

Wat als een sessie een uur inactief is?

Het plan noemt als risico dat blootgestelde STACKIT-dataservices een inactieve verbinding na 60 minuten verbreken. Laat de kopieerclient opnieuw verbinden.

Bronnen

Uw volgende stap: STACKIT.

Vertel ons over uw omgeving, dan laten wij zien wat StackToIT daarvoor oplevert: doelarchitectuur, Terraform-artefacten en een gestructureerd migratieplan.

Laat uw gegevens achter, onze specialisten nemen contact met u op.

Liever zelf een e-mail sturen? connect@stacktoit.com

Wij gebruiken uw gegevens alleen om dit verzoek te beantwoorden en een mogelijke pilot te bespreken. Privacyverklaring