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.
Tutorial: Verwenden von Tags, um anzugeben, welche DB-Instances angehalten werden sollen
In diesem Tutorial wird davon ausgegangen, dass Sie über mehrere DB-Instances in einer Entwicklungs- oder Testumgebung verfügen. Sie müssen diese DB-Instances mehrere Tage lang beibehalten. Einige DB-Instances führen Tests über Nacht aus, während andere über Nacht angehalten und am nächsten Tag wieder gestartet werden können.
Das folgende Tutorial zeigt, wie Sie denjenigen DB-Instances ein Tag zuweisen, die sich dafür eignen, über Nacht angehalten zu werden. Das Tutorial zeigt, wie ein Skript erkennt, welche DB-Instances dieses Tag haben, und diese mit Tags versehenen DB-Instances anschließend anhält. In diesem Beispiel spielt der Wertanteil des Schlüssel-Wert-Paares keine Rolle. Das Vorhandensein des stoppable-Tags bedeutet, dass die DB-Instance diese benutzerdefinierte Eigenschaft besitzt.
Im folgenden Tutorial funktionieren die Befehle und APIs für das Tagging mit ARNs, sodass RDS nahtlos über AWS-Regionen, AWS-Konten und verschiedene Ressourcentypen hinweg arbeiten kann, die möglicherweise identische Kurznamen haben. Sie können in CLI-Befehlen, die mit DB-Instances arbeiten, den ARN anstelle der DB-Instance-ID angeben.
Angabe, welche DB-Instances angehalten werden sollen
-
Bestimmen Sie den ARN einer DB-Instance, die Sie als anhaltbar kennzeichnen wollen.
Ersetzen Sie im folgenden Beispiel den Namen Ihrer eigenen DB-Instances durch
dev-test-db-instance. Ersetzen Sie in nachfolgenden Befehlen mit ARN-Parametern den ARN Ihrer eigenen DB-Instance. Der ARN enthält Ihre eigene AWS-Konto-ID und den Namen der AWS-Region, in der sich Ihre DB-Instance befindet.$aws rds describe-db-instances --db-instance-identifierdev-test-db-instance\ --query "*[].{DBInstance:DBInstanceArn}" --output textarn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance -
Fügen Sie das Tag
stoppablezu dieser DB-Instance hinzu.Der Name für dieses Tag wird von Ihnen ausgewählt. Da das Tag in diesem Beispiel als Attribut behandelt wird, das entweder vorhanden ist oder nicht, wird der
Value=-Teil des--tags-Parameters weggelassen. Dieser Ansatz bedeutet, dass Sie vermeiden können, eine Namenskonvention zu entwickeln, die alle relevanten Informationen in Namen codiert. In einer solchen Konvention können Sie Informationen im DB-Instance-Namen oder Namen anderer Ressourcen codieren.$aws rds add-tags-to-resource \ --resource-namearn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance\ --tags Key=stoppable -
Bestätigen Sie, dass das Tag in der DB-Instance vorhanden ist.
Die folgenden Befehle rufen die Tag-Informationen für die DB-Instance im JSON-Format und in einfachem tabulatorgetrenntem Text ab.
$aws rds list-tags-for-resource \ --resource-namearn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance{ "TagList": [ { "Key": "stoppable", "Value": "" } ] }aws rds list-tags-for-resource \ --resource-namearn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance--output textTAGLIST stoppable -
Halten Sie alle DB-Instances an, die als
stoppableermittelt werden.Im folgenden Beispiel wird eine Textdatei erstellt, die alle Ihre DB-Instances auflistet. Der Shell-Befehl durchläuft die Liste und prüft, ob jede DB-Instance mit dem entsprechenden Attribut gekennzeichnet ist, und führt den Befehl
aws rds stop-db-instancefür jede DB-Instance aus.$aws rds describe-db-instances --query "*[].[DBInstanceArn]" --output text >/tmp/db_instance_arns.lst$for arn in $(cat /tmp/db_instance_arns.lst) do match="$(aws rds list-tags-for-resource --resource-name $arn --output text | grep stoppable)" if [[ ! -z "$match" ]] then echo "DB instance $arn is tagged as stoppable. Stopping it now." # Note that you need to get the DB instance identifier from the ARN. dbid=$(echo $arn | sed -e 's/.*://') aws rds stop-db-instance --db-instance-identifier $dbid fi doneDB instance arn:arn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance is tagged as stoppable. Stopping it now. { "DBInstance": { "DBInstanceIdentifier": "dev-test-db-instance", "DBInstanceClass": "db.t3.medium", ...
Sie können ein Skript wie das vorherige am Ende eines jeden Tages ausführen, um sicherzustellen, dass nicht benötigte DB-Instances angehalten werden. Sie können einen Job auch mit einem Dienstprogramm wie cron planen, um jede Nacht eine solche Überprüfung durchzuführen. Sie könnten so beispielsweise vorgehen, wenn einige DB-Instances versehentlich weiter ausgeführt wurden. Hier könnten Sie eine Feinabstimmung des Befehls vornehmen, mit dem die Liste der zu prüfenden DB-Instances vorbereitet wird.
Der folgende Befehl erzeugt eine Liste Ihrer DB-Instances mit dem Status available. Das Skript kann DB-Instances ignorieren, die bereits angehalten wurden, da sie unterschiedliche Statuswerte wie stopped oder stopping haben.
$aws rds describe-db-instances \ --query '*[].{DBInstanceArn:DBInstanceArn,DBInstanceStatus:DBInstanceStatus}|[?DBInstanceStatus == `available`]|[].{DBInstanceArn:DBInstanceArn}' \ --output textarn:aws:rds:us-east-1:123456789102:db:db-instance-2447 arn:aws:rds:us-east-1:123456789102:db:db-instance-3395 arn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance arn:aws:rds:us-east-1:123456789102:db:pg2-db-instance
Tipp
Sie können die Tags zuweisen und DB-Instances mit Hilfe dieser Tags finden, um die Kosten auf andere Weise zu senken. Nehmen wir zum Beispiel dieses Szenario mit DB-Instances, die für Entwicklungs- und Testzwecke verwendet werden. In diesem Fall können Sie einige DB-Instances festlegen, die am Ende eines jeden Tages gelöscht werden sollen. Oder Sie können sie so festlegen, dass ihre DB-Instances in Zeiten erwarteter geringer Auslastung in kleine DB-Instance-Klassen geändert werden.