Tutorial: utilizza i tag per specificare i cluster DB Aurora da arrestare - Amazon Aurora

Le traduzioni sono generate tramite traduzione automatica. In caso di conflitto tra il contenuto di una traduzione e la versione originale in Inglese, quest'ultima prevarrà.

Tutorial: utilizza i tag per specificare i cluster DB Aurora da arrestare

Si assuma di creare un numero di cluster database Aurora in un ambiente di sviluppo o di test. È necessario mantenere tutti questi cluster per diversi giorni. Alcuni cluster eseguono test durante la notte. Altri cluster possono essere fermati durante la notte e ricominciare il giorno successivo. L'esempio seguente mostra come assegnare un tag a quei cluster che possono essere arrestati durante la notte. L'esempio mostra come uno script può rilevare i cluster che hanno quel tag e quindi arrestarli. In questo esempio, la parte del valore della coppia chiave-valore non ha importanza. La presenza del tag stoppable indica che il cluster dispone di questa proprietà definita dall'utente.

Per specificare quali cluster DB Aurora arrestare
  1. Determina il ARN tipo di cluster che desideri designare come bloccabile.

    I comandi e APIs per l'etichettatura funzionano con. ARNs In questo modo, possono funzionare senza problemi tra AWS regioni, AWS account e diversi tipi di risorse che potrebbero avere nomi brevi identici. È possibile specificare l'ID del cluster ARN anziché l'ID del cluster nei CLI comandi che operano sui cluster. Sostituisci il nome del tuo cluster con dev-test-cluster. Nei comandi successivi che utilizzano ARN parametri, sostituisci ARN il tuo cluster. ARNInclude l'ID AWS dell'account e il nome della AWS regione in cui si trova il cluster.

    $ aws rds describe-db-clusters --db-cluster-identifier dev-test-cluster \ --query "*[].{DBClusterArn:DBClusterArn}" --output text arn:aws:rds:us-east-1:123456789:cluster:dev-test-cluster
  2. Aggiungi il tag stoppable a questo cluster.

    Scegli il nome per il tag. Con questo approccio puoi evitare di definire una convenzione di denominazione che codifichi tutte le informazioni rilevanti nei nomi. Con la convenzione puoi codificare le informazioni nel nome dell'istanza database o nei nomi di altre risorse. Poiché questo esempio considera il tag come un attributo presente o assente, viene omessa la parte Value= del parametro --tags.

    $ aws rds add-tags-to-resource \ --resource-name arn:aws:rds:us-east-1:123456789:cluster:dev-test-cluster \ --tags Key=stoppable
  3. Verifica che il tag sia presente nel cluster.

    Questi comandi recuperano le informazioni sui tag per il cluster in JSON formato e in testo semplice separato da tabulazioni.

    $ aws rds list-tags-for-resource \ --resource-name arn:aws:rds:us-east-1:123456789:cluster:dev-test-cluster { "TagList": [ { "Key": "stoppable", "Value": "" } ] } $ aws rds list-tags-for-resource \ --resource-name arn:aws:rds:us-east-1:123456789:cluster:dev-test-cluster --output text TAGLIST stoppable
  4. Per arrestare tutti i cluster designati come stoppable, prepara un elenco di tutti i cluster. Scorri l'elenco e verifica se ogni cluster è contrassegnato con l'attributo pertinente.

    Questo esempio di Linux utilizza lo shell scripting per salvare l'elenco dei cluster in un file temporaneo e quindi eseguire CLI comandi ARNs per ogni cluster.

    $ aws rds describe-db-clusters --query "*[].[DBClusterArn]" --output text >/tmp/cluster_arns.lst $ for arn in $(cat /tmp/cluster_arns.lst) do match="$(aws rds list-tags-for-resource --resource-name $arn --output text | grep 'TAGLIST\tstoppable')" if [[ ! -z "$match" ]] then echo "Cluster $arn is tagged as stoppable. Stopping it now." # Note that you can specify the full ARN value as the parameter instead of the short ID 'dev-test-cluster'. aws rds stop-db-cluster --db-cluster-identifier $arn fi done Cluster arn:aws:rds:us-east-1:123456789:cluster:dev-test-cluster is tagged as stoppable. Stopping it now. { "DBCluster": { "AllocatedStorage": 1, "AvailabilityZones": [ "us-east-1e", "us-east-1c", "us-east-1d" ], "BackupRetentionPeriod": 1, "DBClusterIdentifier": "dev-test-cluster", ...

Puoi eseguire uno script come questo alla fine di ogni giorno per assicurarti che i cluster non essenziali vengano arrestati. Puoi inoltre pianificare un processo utilizzando un'utilità come cron per eseguire tale controllo ogni notte. Ad esempio, puoi eseguire questa operazione nel caso in cui alcuni cluster venissero lasciati in esecuzione per errore. Puoi quindi ottimizzare il comando che prepara l'elenco di cluster da controllare.

Il comando seguente produce un elenco di cluster che si trovano nello stato available. Lo script può ignorare i cluster che sono già stati arrestati, perché avranno valori di stato diversi, ad esempio stopped o stopping.

$ aws rds describe-db-clusters \ --query '*[].{DBClusterArn:DBClusterArn,Status:Status}|[?Status == `available`]|[].{DBClusterArn:DBClusterArn}' \ --output text arn:aws:rds:us-east-1:123456789:cluster:cluster-2447 arn:aws:rds:us-east-1:123456789:cluster:cluster-3395 arn:aws:rds:us-east-1:123456789:cluster:dev-test-cluster arn:aws:rds:us-east-1:123456789:cluster:pg2-cluster
Suggerimento

Puoi utilizzare l'assegnazione di tag e la ricerca di cluster con i tag per ridurre i costi in altri modi. Supponi, ad esempio, uno scenario in cui i cluster database Aurora sono utilizzati per lo sviluppo e il test. In questo caso, potresti designare alcuni cluster da eliminare alla fine di ogni giornata o eliminare solo le istanze database del lettore. In alternativa, potresti designarli per modificare le istanze database in classi di istanza database di piccole dimensioni durante i periodi previsti di basso utilizzo.