Tutorial: Geben Sie mithilfe von Tags an, welche DB-Instances gestoppt werden sollen - Amazon Relational Database Service

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: Geben Sie mithilfe von Tags an, welche DB-Instances gestoppt werden sollen

In diesem Tutorial wird davon ausgegangen, dass Sie mehrere DB-Instances in einer Entwicklungs- oder Testumgebung haben. Sie müssen diese DB-Instances mehrere Tage lang aufbewahren. Einige DB-Instances führen Tests über Nacht durch, während andere über Nacht gestoppt und am nächsten Tag wieder gestartet werden können.

Das folgende Tutorial zeigt, wie Sie DB-Instances, die für einen Stopp über Nacht geeignet sind, ein Tag zuweisen. Das Tutorial zeigt, wie ein Skript erkennen kann, welche DB-Instances das Tag haben, und dann die markierten DB-Instances stoppen kann. 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 werden die Befehle und APIs das Tagging verwendetARNs, sodass Sie RDS nahtlos zwischen AWS Regionen, AWS Konten und verschiedenen Ressourcentypen arbeiten können, die möglicherweise identische Kurznamen haben. Sie können ARN anstelle der DB-Instance-ID in CLI Befehlen, die auf DB-Instances ausgeführt werden, angeben.

Angabe, welche DB-Instances angehalten werden sollen
  1. Ermitteln Sie die Nummer ARN einer DB-Instance, die Sie als stopable kennzeichnen möchten.

    Ersetzen Sie im folgenden Beispiel den Namen Ihrer eigenen DB-Instances durch dev-test-db-instance. Ersetzen Sie in nachfolgenden Befehlen, die ARN ARN Parameter verwenden, durch Ihre eigene DB-Instance. ARNDazu gehören Ihre eigene AWS Konto-ID und der Name der AWS Region, in der sich Ihre DB-Instance befindet.

    $ aws rds describe-db-instances --db-instance-identifier dev-test-db-instance \ --query "*[].{DBInstance:DBInstanceArn}" --output text arn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance
  2. Fügen Sie das Tag stoppable zu 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-name arn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance \ --tags Key=stoppable
  3. Bestätigen Sie, dass das Tag in der DB-Instance vorhanden ist.

    Mit den folgenden Befehlen werden die Tag-Informationen für die DB-Instance im JSON Format und in einfachem tabulatorgetrenntem Text abgerufen.

    $ aws rds list-tags-for-resource \ --resource-name arn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance { "TagList": [ { "Key": "stoppable", "Value": "" } ] } aws rds list-tags-for-resource \ --resource-name arn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance --output text TAGLIST stoppable
  4. Beenden Sie alle DB-Instances, die als gekennzeichnet sind. stoppable

    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-instance fü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 done DB 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 am Ende eines jeden Tages ein Skript wie das vorherige ausführen, um sicherzustellen, dass nicht benötigte DB-Instances gestoppt 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 text arn: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.