Verwendung von Amazon Neptune Serverless - Amazon Neptune

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.

Verwendung von Amazon Neptune Serverless

Sie können einen neuen Neptune-DB-Cluster als Serverless-Cluster erstellen, oder in einigen Fällen können Sie einen vorhandenen DB-Cluster auf Serverless umstellen. Sie können auch DB-Instances in einem Serverless-DB-Cluster in und aus Serverless-Instances konvertieren. Sie können Neptune Serverless nur in einem der folgenden verwenden AWS-Regionen wo es unterstützt wird, mit einigen anderen Einschränkungen (siehe). Einschränkungen von Amazon Neptune Serverless

Sie können auch den Neptune verwenden AWS CloudFormation Stapel, um einen Neptune Serverless DB-Cluster zu erstellen.

Einen neuen DB-Cluster erstellen, der Serverless verwendet

Um einen Neptune-DB-Cluster zu erstellen, der Serverless verwendet, können Sie dies mit dem AWS Management Consoleauf die gleiche Weise, wie Sie einen bereitgestellten Cluster erstellen. Der Unterschied besteht darin, dass Sie unter DB-Instance-Größe die DB-Instance-Klasse auf Serverless setzen müssen. Wenn Sie das tun, müssen Sie dann den Serverless-Kapazitätsbereich für den Cluster festlegen.

Sie können auch einen serverlosen DB-Cluster erstellen, indem Sie den AWS CLI mit Befehlen wie diesen (ersetzen Sie unter Windows '\' durch '^'):

aws neptune create-db-cluster \ --region (an AWS-Region region that supports serverless) \ --db-cluster-identifier (ID for the new serverless DB cluster) \ --engine neptune \ --engine-version (optional: 1.2.0.1 or above) \ --serverless-v2-scaling-configuration "MinCapacity=1.0, MaxCapacity=128.0"

Sie könnten den serverless-v2-scaling-configuration-Parameter auch wie folgt angeben:

--serverless-v2-scaling-configuration '{"MinCapacity":1.0, "MaxCapacity":128.0}'

Sie können dann den describe-db-clusters-Befehl für das ServerlessV2ScalingConfiguration-Attribut ausführen, der die von Ihnen angegebenen Einstellungen für den Kapazitätsbereich zurückgeben sollte:

"ServerlessV2ScalingConfiguration": { "MinCapacity": (the specified minimum number of NCUs), "MaxCapacity": (the specified maximum number of NCUs) }

Einen vorhandenen DB-Cluster oder eine bestehende Instance in Serverless konvertieren

Wenn Sie einen Neptune-DB-Cluster haben, der die Engine-Version 1.2.0.1 oder höher verwendet, können Sie ihn in einen Serverless-Cluster umwandeln. Dieser Prozess verursacht einige Ausfallzeiten.

Der erste Schritt besteht darin, dem vorhandenen Cluster einen Kapazitätsbereich hinzuzufügen. Sie können das tun, indem Sie AWS Management Console, oder mit einem AWS CLI Befehl wie dieser (unter Windows ersetzen Sie '\' durch '^'):

aws neptune modify-db-cluster \ --db-cluster-identifier (your DB cluster ID) \ --serverless-v2-scaling-configuration \ MinCapacity=(minimum number of NCUs, such as 2.0), \ MaxCapacity=(maximum number of NCUs, such as 24.0)

Der nächste Schritt besteht darin, eine neue Serverless-DB-Instance zu erstellen, um die bestehende primäre Instance (den Writer) im Cluster zu ersetzen. Auch hier können Sie diesen und alle nachfolgenden Schritte entweder mit dem AWS Management Console oder das AWS CLI. Geben Sie in beiden Fällen die DB-Instance-Klasse als serverlos an. Das Tool AWS CLI Der Befehl würde wie folgt aussehen (unter Windows ersetzen Sie '\' durch '^'):

aws neptune create-db-instance \ --db-instance-identifier (an instance ID for the new writer instance) \ --db-cluster-identifier (ID of the DB cluster) \ --db-instance-class db.serverless --engine neptune

Wenn die neue Writer-Instance verfügbar ist, führen Sie einen Failover durch, um sie zur Writer-Instance für den Cluster zu machen:

aws neptune failover-db-cluster \ --db-cluster-identifier (ID of the DB cluster) \ --target-db-instance-identifier (instance ID of the new serverless instance)

Löschen Sie als Nächstes die alte Writer-Instance:

aws neptune delete-db-instance \ --db-instance-identifier (instance ID of the old writer instance) \ --skip-final-snapshot

Gehen Sie abschließend genauso vor, um eine neue Serverlesss-Instance zu erstellen, die an die Stelle jeder vorhandenen bereitgestellten Reader-Instance tritt, die Sie in eine Serverless-Instance umwandeln möchten, und löschen Sie die vorhandenen bereitgestellten Instances (für Reader-Instances ist kein Failover erforderlich).

Ändern des Kapazitätsbereichs eines vorhandenen Serverless-DB-Clusters

Sie können den Kapazitätsbereich eines Neptune Serverless DB-Clusters ändern, indem Sie AWS CLI so (ersetzen Sie unter Windows '\' durch '^'):

aws neptune modify-db-cluster \ --region (an AWS region that supports serverless) \ --db-cluster-identifier (ID of the serverless DB cluster) \ --apply-immediately \ --serverless-v2-scaling-configuration MinCapacity=4.0, MaxCapacity=32

Durch Ändern des Kapazitätsbereichs können sich die Standardwerte einiger Konfigurationsparameter ändern. Neptune kann einige dieser neuen Standardeinstellungen sofort anwenden, aber einige der dynamischen Parameteränderungen werden erst nach einem Neustart wirksam. Status pending-reboot gibt an, dass ein Neustart erforderlich ist, um einige Parameteränderungen anzuwenden.

Änderung einer Serverless-DB-Instance in eine bereitgestellte

Um eine Neptune Serverless-Instance in eine bereitgestellte zu konvertieren, müssen Sie lediglich ihre Instance-Klasse in eine der bereitgestellten Instance-Klassen ändern. Siehe Ändern einer Neptune-DB-Instance (und sofortige Anwendung).

Überwachung serverloser Kapazitäten mit Amazon CloudWatch

Sie können CloudWatch es verwenden, um die Kapazität und Auslastung der serverlosen Neptune-Instances in Ihrem DB-Cluster zu überwachen. Es gibt zwei CloudWatch Metriken, mit denen Sie die aktuelle serverlose Kapazität sowohl auf Cluster- als auch auf Instance-Ebene verfolgen können:

  • ServerlessDatabaseCapacity— Als Metrik auf Instanzebene wird die aktuelle Instanzkapazität in angegeben. ServerlessDatabaseCapacity NCUs Als Metrik auf Clusterebene gibt sie den Durchschnitt der ServerlessDatabaseCapacity-Werte aller DB-Instances im Cluster an.

  • NCUUtilization – Diese Metrik gibt an, wie viel Prozent der möglichen Kapazität genutzt wird. Sie wird berechnet als der aktuelle ServerlessDatabaseCapacity (entweder auf Instance-Ebene oder auf Cluster-Ebene) geteilt durch die maximale Kapazitätseinstellung für den DB-Cluster.

    Wenn sich diese Metrik auf Clusterebene 100 % nähert, was bedeutet, dass der Cluster so hoch wie möglich skaliert wurde, sollten Sie eine Erhöhung der Einstellung für die maximale Kapazität in Betracht ziehen.

    Wenn sie sich für eine Reader-Instance 100 % nähert, während die Writer-Instance nicht annähernd die maximale Kapazität erreicht, sollten Sie erwägen, weitere Reader-Instances hinzuzufügen, um den Lese-Workload zu verteilen.

Beachten Sie, dass die Metriken CPUUtilization und FreeableMemory für Serverless-Instances eine etwas andere Bedeutung haben als für bereitgestellte Instances. In einem serverlosen Kontext CPUUtilization ist dies ein Prozentsatz, der berechnet wird, indem die Menge der CPU aktuell genutzten Daten geteilt durch die MengeCPU, die bei maximaler Kapazität verfügbar wäre, geteilt wird. FreeableMemory meldet in ähnlicher Weise die Menge an freiem Speicher, die verfügbar wäre, wenn eine Instance die maximale Kapazität erreicht hätte.

Das folgende Beispiel zeigt, wie Sie AWS CLI unter Linux, um die minimalen, maximalen und durchschnittlichen Kapazitätswerte für eine bestimmte DB-Instance abzurufen, gemessen alle 10 Minuten über eine Stunde. Der Linux-Befehl date gibt die Start- und Endzeiten relativ zum aktuellen Datum und zur aktuellen Uhrzeit an. Die sort_by-Funktion im --query-Parameter sortiert die Ergebnisse chronologisch basierend auf dem Feld Timestamp:

aws cloudwatch get-metric-statistics \ --metric-name "ServerlessDatabaseCapacity" \ --start-time "$(date -d '1 hour ago')" \ --end-time "$(date -d 'now')" \ --period 600 \ --namespace "AWS/Neptune" --statistics Minimum Maximum Average \ --dimensions Name=DBInstanceIdentifier,Value=(instance ID) \ --query 'sort_by(Datapoints[*].{min:Minimum,max:Maximum,avg:Average,ts:Timestamp},&ts)' \ --output table