Skalierung von Redis OSS-Clustern mit Replikaten - Amazon ElastiCache (Redis OSS)

Die vorliegende Übersetzung wurde maschinell erstellt. Im Falle eines Konflikts oder eines Widerspruchs zwischen dieser übersetzten Fassung und der englischen Fassung (einschließlich infolge von Verzögerungen bei der Übersetzung) ist die englische Fassung maßgeblich.

Skalierung von Redis OSS-Clustern mit Replikaten

Amazon ElastiCache bietet Konsolen-, CLI- und API-Unterstützung für die Skalierung Ihrer Redis OSS-Replikationsgruppe (Cluster-Modus deaktiviert).

Wenn der Scale-Up-Prozess eingeleitet wird, ElastiCache geht Folgendes vor:

  1. Es wird eine Replikationsgruppe unter Verwendung des neuen Knotentyps gestartet.

  2. Alle Daten aus dem derzeitigen primären Knoten werden in den neuen primären Knoten kopiert.

  3. Die neuen Read Replicas werden mit dem neuen primären Knoten synchronisiert.

  4. Die DNS-Einträge werden aktualisiert und verweisen nun auf die neuen Knoten. Daher müssen Sie die Endpunkte in Ihrer Anwendung nicht aktualisieren. Für Redis OSS 5.0.5 und höher können Sie Cluster mit auto Failover skalieren, während der Cluster weiterhin online bleibt und eingehende Anfragen bearbeitet. Bei Version 4.0.10 und niedriger stellen Sie bei vorherigen Versionen möglicherweise eine kurze Unterbrechung der Lese- und Schreibvorgänge vom Primärknoten fest, während der DNS-Eintrag aktualisiert wird.

  5. Die alten Knoten (CLI/API: Replikationsgruppe) werden gelöscht. Sie werden eine kurze Unterbrechung (ein paar Sekunden) der Lese- und Schreiboperationen der alten Knoten feststellen, da die Verbindungen zu den alten Knoten getrennt werden.

Die Dauer dieses Prozess ist abhängig vom Knotentyp und der Datenmenge im Cluster.

Wie in der folgenden Tabelle dargestellt, ist Ihr Redis OSS-Scale-Up-Vorgang blockiert, wenn Sie ein Engine-Upgrade für das nächste Wartungsfenster des Clusters geplant haben.

Blockierte Redis OSS-Operationen
Ausstehende Operationen Blockierte Operationen
Aufwärtsskalierung Unmittelbares Engine-Upgrade
Engine-Upgrade Unmittelbares Aufwärtsskalieren
Aufwärtsskalierung und Engine-Upgrade Unmittelbares Aufwärtsskalieren
Unmittelbares Engine-Upgrade

Wenn Sie durch ausstehende Operationen blockiert werden, haben Sie folgende Möglichkeiten.

  • Planen Sie Ihren Redis OSS-Scale-Up-Vorgang für das nächste Wartungsfenster, indem Sie das Kontrollkästchen Sofort anwenden deaktivieren (CLI use:--no-apply-immediately, API use:ApplyImmediately=false).

  • Warten Sie bis zum nächsten Wartungsfenster (oder danach), um Ihren Redis OSS-Scale-up-Vorgang durchzuführen.

  • Fügen Sie das Redis OSS-Engine-Upgrade zu dieser Cache-Cluster-Änderung hinzu, wobei das Kontrollkästchen Sofort anwenden aktiviert ist (CLI use:--apply-immediately, API use:ApplyImmediately=true). Dadurch wird die Skalierung freigegeben, da das Engine-Upgrade sofort ausgeführt wird.

In den folgenden Abschnitten wird beschrieben, wie Sie Ihren Redis OSS-Cluster mit Replikaten mithilfe der ElastiCache Konsole, der und der AWS CLI API skalieren können. ElastiCache

Wichtig

Wenn Ihre Parametergruppe Speicher für reserved-memory den Redis OSS-Overhead reserviert, stellen Sie vor Beginn der Skalierung sicher, dass Sie über eine benutzerdefinierte Parametergruppe verfügen, die die richtige Speichermenge für Ihren neuen Knotentyp reserviert. Alternativ können Sie eine benutzerdefinierte Parametergruppe anpassen, die reserved-memory-percent verwendet, und diese Parametergruppe für Ihren neuen Cluster verwenden.

Wenn Sie reserved-memory-percent verwenden, ist dies nicht erforderlich.

Weitere Informationen finden Sie unter Verwalten von reserviertem Speicher.

Wie lange die Aufwärtsskalierung auf einen größeren Knotentyp dauert, hängt vom Knotentyp und der Datenmenge in Ihrem derzeitigen Cluster ab.

Der folgende Prozess skaliert Ihren Cluster mit Replikaten mithilfe der Konsole vom aktuellen Knotentyp auf einen neuen, größeren Knotentyp. ElastiCache Während dieses Vorgangs kann für andere Versionen eine kurze Unterbrechung der Lese- und Schreibvorgänge vom Primärknoten auftreten, während der DNS-Eintrag aktualisiert wird. Für Knoten, die auf 5.0.6-Versionen ausgeführt werden, tritt möglicherweise eine Ausfallzeit unter 1 Sekunde und bei älteren Versionen von wenigen Sekunden auf.

So skalieren Sie den Redis OSS-Cluster mit Replikaten (Konsole)
  1. Melden Sie sich bei der an AWS Management Console und öffnen Sie die ElastiCache Konsole unter https://console.aws.amazon.com/elasticache/.

  2. Wählen Sie im Navigationsbereich Redis OSS-Clusters

  3. Wählen Sie aus der Liste der Cluster den Cluster aus, den Sie skalieren möchten. Auf diesem Cluster muss die Redis OSS-Engine und nicht die Clustered Redis OSS-Engine ausgeführt werden.

  4. Wählen Sie Ändern aus.

  5. Gehen Sie im Modify Cluster-Assistenten wie folgt vor:

    1. Wählen Sie in der Liste Node type den Knotentyp aus, auf den Sie skalieren möchten. Beachten Sie, dass nicht alle Knotentypen für das Herunterskalieren zur Verfügung stehen.

    2. Wenn Sie zur Speicherverwaltung reserved-memory verwenden, wählen Sie in der Liste Parameter Group die benutzerdefinierte Parametergruppe aus, die die korrekte Speichermenge für den neuen Knotentyp reserviert.

  6. Wenn Sie die Skalierung sofort starten möchten, aktivieren Sie das Kontrollkästchen Apply immediately. Wenn Sie das Kontrollkästchen für Apply immediately nicht aktivieren, wird die Skalierung während des nächsten Wartungsfensters des Clusters durchgeführt.

  7. Wählen Sie Ändern aus.

  8. Wenn der Status des Clusters von modifying zu available wechselt, wurde die Skalierung auf den neuen Knotentyp erfolgreich abgeschlossen. Die Endpunkte müssen nicht in der Anwendung aktualisiert werden.

Im nachfolgenden Verfahren wird eine Replikationsgruppe mithilfe der AWS CLI vom derzeitigen Knotentyp auf einen neuen, größeren Knotentyp skaliert. Während dieses Vorgangs aktualisiert ElastiCache (Redis OSS) die DNS-Einträge, sodass sie auf die neuen Knoten verweisen. Daher müssen Sie die Endpunkte in Ihrer Anwendung nicht aktualisieren. Für Redis OSS 5.0.5 und höher können Sie Cluster mit auto Failover skalieren, während der Cluster weiterhin online bleibt und eingehende Anfragen bearbeitet. Bei Version 4.0.10 und niedriger stellen Sie bei vorherigen Versionen möglicherweise eine kurze Unterbrechung der Lese- und Schreibvorgänge vom Primärknoten fest, während der DNS-Eintrag aktualisiert wird.

Wie lange die Aufwärtsskalierung auf einen größeren Knotentyp dauert, hängt vom Knotentyp und der Datenmenge in Ihrem derzeitigen Cache-Cluster ab.

So skalieren Sie eine Redis OSS-Replikationsgruppe ()AWS CLI
  1. Ermitteln Sie, auf welche Knotentypen Sie skalieren können, indem Sie den AWS CLI list-allowed-node-type-modifications Befehl mit dem folgenden Parameter ausführen.

    • --replication-group-id  der Name der Replikationsgruppe. Verwenden Sie diesen Parameter, um eine bestimmte Replikationsgruppe zu beschreiben, statt alle Replikationsgruppen anzugeben.

    Für Linux, macOS oder Unix:

    aws elasticache list-allowed-node-type-modifications \ --replication-group-id my-repl-group

    Für Windows:

    aws elasticache list-allowed-node-type-modifications ^ --replication-group-id my-repl-group

    Die Ausgabe dieser Operation sollte etwa wie nachfolgend dargestellt aussehen (JSON-Format).

    { "ScaleUpModifications": [ "cache.m3.2xlarge", "cache.m3.large", "cache.m3.xlarge", "cache.m4.10xlarge", "cache.m4.2xlarge", "cache.m4.4xlarge", "cache.m4.large", "cache.m4.xlarge", "cache.r3.2xlarge", "cache.r3.4xlarge", "cache.r3.8xlarge", "cache.r3.large", "cache.r3.xlarge" ] }

    Weitere Informationen finden Sie unter list-allowed-node-type-modifications in der AWS CLI -Referenz.

  2. Skalieren Sie Ihre aktuelle Replikationsgruppe mithilfe des AWS CLI modify-replication-group Befehls mit den folgenden Parametern auf den neuen Knotentyp.

    • --replication-group-id  der Name der Replikationsgruppe.

    • --cache-node-type  der neue, größere Knotentyp des Cache-Clusters in dieser Replikationsgruppe. Der Wert muss einer der Instance-Typen sein, die in Schritt 1 mit dem Befehl list-allowed-node-type-modifications zurückgegeben wurden.

    • --cache-parameter-group-name – [Optional) Verwenden Sie diesen Parameter, wenn Sie reserved-memory verwenden, um Speicher für den Cluster zu reservieren. Geben Sie eine benutzerdefinierte Cache-Parametergruppe an, die die korrekte Speichermenge für den neuen Knotentyp reserviert. Wenn Sie reserved-memory-percent verwenden, können Sie diesen Parameter weglassen.

    • --apply-immediately – Führt die Skalierung sofort aus. Wenn Sie die Skalierung für das nächste Wartungsfenster planen möchten, verwenden Sie --no-apply-immediately.

    Für Linux, macOS oder Unix:

    aws elasticache modify-replication-group \ --replication-group-id my-repl-group \ --cache-node-type cache.m3.xlarge \ --cache-parameter-group-name redis32-m3-2xl \ --apply-immediately

    Für Windows:

    aws elasticache modify-replication-group ^ --replication-group-id my-repl-group ^ --cache-node-type cache.m3.xlarge ^ --cache-parameter-group-name redis32-m3-2xl \ --apply-immediately

    Die Ausgabe dieses Befehls sollte etwa wie nachfolgend dargestellt aussehen (JSON-Format).

    { "ReplicationGroup": { "Status": "available", "Description": "Some description", "NodeGroups": [{ "Status": "available", "NodeGroupMembers": [{ "CurrentRole": "primary", "PreferredAvailabilityZone": "us-west-2b", "CacheNodeId": "0001", "ReadEndpoint": { "Port": 6379, "Address": "my-repl-group-001.8fdx4s.0001.usw2.cache.amazonaws.com" }, "CacheClusterId": "my-repl-group-001" }, { "CurrentRole": "replica", "PreferredAvailabilityZone": "us-west-2c", "CacheNodeId": "0001", "ReadEndpoint": { "Port": 6379, "Address": "my-repl-group-002.8fdx4s.0001.usw2.cache.amazonaws.com" }, "CacheClusterId": "my-repl-group-002" } ], "NodeGroupId": "0001", "PrimaryEndpoint": { "Port": 6379, "Address": "my-repl-group.8fdx4s.ng.0001.usw2.cache.amazonaws.com" } }], "ReplicationGroupId": "my-repl-group", "SnapshotRetentionLimit": 1, "AutomaticFailover": "disabled", "SnapshotWindow": "12:00-13:00", "SnapshottingClusterId": "my-repl-group-002", "MemberClusters": [ "my-repl-group-001", "my-repl-group-002" ], "PendingModifiedValues": {} } }

    Weitere Informationen finden Sie unter modify-replication-group in der AWS CLI -Referenz.

  3. Wenn Sie den --apply-immediately Parameter verwendet haben, überwachen Sie den Status der Replikationsgruppe mithilfe des AWS CLI describe-replication-group Befehls mit dem folgenden Parameter. Wenn der Status noch wird geändert lautet, tritt möglicherweise eine Ausfallzeit unter 1 Sekunde für Knoten auf, die auf 5.0.6-Versionen ausgeführt werden, und für ältere Versionen eine kurze Unterbrechung von Lese- und Schreibvorgängen vom Primärkonten, während der DNS-Eintrag aktualisiert wird.

    • --replication-group-id  der Name der Replikationsgruppe. Verwenden Sie diesen Parameter, um eine bestimmte Replikationsgruppe zu beschreiben, statt alle Replikationsgruppen anzugeben.

    Für Linux, macOS oder Unix:

    aws elasticache describe-replication-groups \ --replication-group-id my-replication-group

    Für Windows:

    aws elasticache describe-replication-groups ^ --replication-group-id my-replication-group

    Weitere Informationen finden Sie describe-replication-groupsin der AWS CLI Referenz.

Der folgende Prozess skaliert Ihre Replikationsgruppe mithilfe der ElastiCache API von ihrem aktuellen Knotentyp auf einen neuen, größeren Knotentyp. Für Redis OSS 5.0.5 und höher können Sie Cluster mit auto Failover skalieren, während der Cluster weiterhin online bleibt und eingehende Anfragen bearbeitet. Bei Version 4.0.10 und niedriger stellen Sie bei vorherigen Versionen möglicherweise eine kurze Unterbrechung der Lese- und Schreibvorgänge vom Primärknoten fest, während der DNS-Eintrag aktualisiert wird.

Wie lange die Aufwärtsskalierung auf einen größeren Knotentyp dauert, hängt vom Knotentyp und der Datenmenge in Ihrem derzeitigen Cache-Cluster ab.

So skalieren Sie eine Redis OSS-Replikationsgruppe (API) ElastiCache
  1. Ermitteln Sie, auf welche Knotentypen Sie mithilfe der ElastiCache ListAllowedNodeTypeModifications API-Aktion mit dem folgenden Parameter skalieren können.

    • ReplicationGroupId  der Name der Replikationsgruppe. Verwenden Sie diesen Parameter, um eine bestimmte Replikationsgruppe zu beschreiben, statt alle Replikationsgruppen anzugeben.

    https://elasticache.us-west-2.amazonaws.com/ ?Action=ListAllowedNodeTypeModifications &ReplicationGroupId=MyReplGroup &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>

    Weitere Informationen finden Sie ListAllowedNodeTypeModifications in der Amazon ElastiCache API-Referenz.

  2. Skalieren Sie Ihre aktuelle Replikationsgruppe mithilfe der ModifyRedplicationGroup ElastiCache API-Aktion und mit den folgenden Parametern auf den neuen Knotentyp.

    • ReplicationGroupId  der Name der Replikationsgruppe.

    • CacheNodeType  der neue, größere Knotentyp des Cache-Clusters in dieser Replikationsgruppe. Der Wert muss einer der Instance-Typen sein, die in Schritt 1 mit dem Aufruf ListAllowedNodeTypeModifications zurückgegeben wurden.

    • CacheParameterGroupName – [Optional) Verwenden Sie diesen Parameter, wenn Sie reserved-memory verwenden, um Speicher für den Cluster zu reservieren. Geben Sie eine benutzerdefinierte Cache-Parametergruppe an, die die korrekte Speichermenge für den neuen Knotentyp reserviert. Wenn Sie reserved-memory-percent verwenden, können Sie diesen Parameter weglassen.

    • ApplyImmediatelyLegen Sie true fest, um die Skalierung sofort auszuführen. Wenn Sie die Skalierung für das nächste Wartungsfenster planen möchten, verwenden Sie ApplyImmediately=false.

    https://elasticache.us-west-2.amazonaws.com/ ?Action=ModifyReplicationGroup &ApplyImmediately=true &CacheNodeType=cache.m3.2xlarge &CacheParameterGroupName=redis32-m3-2xl &ReplicationGroupId=myReplGroup &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20141201T220302Z &Version=2014-12-01 &X-Amz-Algorithm=&AWS;4-HMAC-SHA256 &X-Amz-Date=20141201T220302Z &X-Amz-SignedHeaders=Host &X-Amz-Expires=20141201T220302Z &X-Amz-Credential=<credential> &X-Amz-Signature=<signature>

    Weitere Informationen finden Sie ModifyReplicationGroup in der Amazon ElastiCache API-Referenz.

  3. Falls Sie dies verwendet haben ApplyImmediately=true, überwachen Sie den Status der Replikationsgruppe mithilfe der ElastiCache DescribeReplicationGroups API-Aktion mit den folgenden Parametern. Wenn der Status von modifying zu available wechselt, können Sie die neue, aufskalierte Replikationsgruppe verwenden.

    • ReplicationGroupId  der Name der Replikationsgruppe. Verwenden Sie diesen Parameter, um eine bestimmte Replikationsgruppe zu beschreiben, statt alle Replikationsgruppen anzugeben.

    https://elasticache.us-west-2.amazonaws.com/ ?Action=DescribeReplicationGroups &ReplicationGroupId=MyReplGroup &Version=2015-02-02 &SignatureVersion=4 &SignatureMethod=HmacSHA256 &Timestamp=20150202T192317Z &X-Amz-Credential=<credential>

    Weitere Informationen finden Sie DescribeReplicationGroups in der Amazon ElastiCache API-Referenz.