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.
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"
}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.
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-instelling | In het Valkey-concept | Wat u doet |
|---|---|---|
| engine redis, engine_version 7.1 | Valkey, versie ingesteld via een variabele; de catalogus biedt hoofdversie 8 | Kies de versie; overstappen vanaf 7.1 is een engine-upgrade en het rapport vermeldt dat ook |
| node_type cache.m6g.large, twee nodes | Een plannaam, standaard een replicaplan; het plan bepaalt nodes en replica's | Bevestig de omvang die uit de bron is afgeleid; de beslissing blijft open tot u die beantwoordt |
| subnet group, security group | Niet overgenomen: de instance heeft geen subnet- of security group-attribuut | Noem de client-CIDR's in de variabele voor de toegangslijst; de lijst heeft geen standaardwaarde |
| port 6379 | Niet overgenomen: de poort komt mee met de credential | Schakel de clients om naar de host en poort die de credential teruggeeft |
| auth_token | Een Valkey-credential die STACKIT genereert, beschikbaar als gevoelige output | Lees de credential na de apply uit en geef die vóór de cutover aan elke client |
| transit encryption aan | TLS wordt door de service afgedwongen | Controleer of elke clientdriver voor TLS is ingesteld (rediss:// of een TLS-optie) |
| at-rest encryption aan | Gerapporteerd als onbekend: geen attribuut en geen verklaring gevonden voor de service | Vraag het aan STACKIT voordat u er voor een eis op vertrouwt |
| parameter group, maxmemory-policy | Niet vertaald; geselecteerde instellingen staan onder de parameters van de instance | Koppel de instellingen die uw applicatie nodig heeft |
| snapshot_window 02:00-03:00, retentie 7 | Niet overgenomen; het tijdstip van de snapshot is een parameter van de instance | Bepaal 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.
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.
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.
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.
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.
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.
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 keyspaceDe vier manieren om de data te verplaatsen en wat het plan van elk zegt
| Methode | Status in het plan | Waarom |
|---|---|---|
| Export en import met de engineclients | Kandidaat, niet gekozen | Vergt 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 geweigerd | AWS 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 bron | Door het plan geweigerd | Geen 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 tool | Eigendom van de klant | Het 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
Hartelijk dank.
Uw verzoek is bij ons binnengekomen. Onze specialisten nemen contact met u op.