Beginnen wir mit ein paar Fakten Auflistung:Migrating Redis AWS ElastiCache mit minimaler Ausfallzeit
- ElastiCache kann kein Sklave meiner bestehenden Redis eingerichtet werden. Wirkliche Schande, das wäre so viel effizienter.
- Ich habe nur einen Redis-Server zu migrieren, mit etwa 3 GB Daten.
- Die Ausfallzeit muss weniger als 10 Minuten betragen. Ich nehme an, dass das übliche "Stoppt die Seite, Stop-Redis, Provision-Cluster mit Snapshot" länger dauern wird.
ähnlich wie diese Frage: How do I set an elasticache redis cluster as a slave?
Eine Idee, wie dies funktionieren könnte:
- Set Redis einen AOF und Trigger BGSAVE zur gleichen Zeit zu nutzen.
- Wenn BGSAVE fertig ist, stellen Sie den Elasticache-Cluster mit RDB-Seed bereit.
- Stoppen Sie die Site und fahren Sie meine lokale Redis-Instanz herunter.
- Verwenden Sie ein AOF-Tool, um die AOF in Elasticache wiederzugeben.
- Starten Sie die Site erneut, zeigte auf den Elasticache-Cluster.
Meine Fragen:
- Wie kann ich garantieren, dass meine AOF-Datei an genau dem Punkt beginnt die RDB-Datei endet, und dass keine Daten zwischen geschrieben werden?
- Gibt es ein AOF-Tool vom Maintainer Redis unterstützt, oder sie sind alle Lösungen von Drittanbietern, und damit (möglicherweise) von fragwürdiger Zuverlässigkeit? *
* Keine Handlung zu allen Autoren solcher Werkzeuge bestimmt Ich bin mir sicher, dass sie großartig sind. Ich fühle mich viel sicherer bei der Verwendung eines Tools, das vom selben Team wie das Produkt geschrieben wurde, um potenzielle Kompatibilitätsprobleme zu vermeiden.
Kann Ihre App ohne Redis arbeiten? Wird es nur langsamer (kein Zugriff auf den Cache) oder wird es scheitern? –
Wie aktiv sind Ihre Nutzer über Nacht? 3 Uhr morgens? Das war der Zeitpunkt, an dem ich eine große Änderung in der Produktions-App migrieren würde, die für unsere Geschäftsbenutzer erforderlich war. Selbst wenn Ihre App rund um die Uhr genutzt wird, haben Sie wahrscheinlich eine geringe Nutzungsdauer, die Sie einplanen könnten, um die bemerkten Auswirkungen zu minimieren, wenn Sie während einer Migration 30 Minuten offline sind. –
App ist meistens ohne Redis nutzlos, und es gibt nicht wirklich ein tägliches Nutzungsmuster. Es ist eine ständig geladene Anwendung über einen Zeitraum von 24 Stunden. Was lässt Sie vermuten, dass es nur 30 Minuten Ausfallzeit sind? – arrtchiu