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: specificare le istanze database da interrompere utilizzando i tag
In questo tutorial si presuppone di avere più istanze database in un ambiente di sviluppo o di test. Sarà necessario mantenere queste istanze database per diversi giorni. Altre istanze database possono essere arrestate durante la notte e riavviate il giorno successivo.
Il tutorial seguente illustra come assegnare un tag alle istanze database che possono essere interrotte durante la notte. Il tutorial mostra come uno script può rilevare le istanze database che hanno il tag e quindi interromperle. In questo esempio, la parte del valore della coppia chiave-valore non ha importanza. La presenza del tag stoppable indica che l'istanza database ha questa proprietà definita dall'utente.
Nel seguente tutorial, i comandi e APIs i tag funzionano con ARNs, che consentono a RDS di funzionare senza problemi tra AWS regioni, AWS account e diversi tipi di risorse che potrebbero avere nomi brevi identici. Puoi specificare l'ARN anziché l'ID istanza database nei comandi della CLI che operano su istanze database.
Per specificare le istanze database da interrompere
-
Innanzitutto, determina l'ARN di un'istanza database che desideri indicare come arrestabile.
Nell'esempio seguente, sostituite il nome delle vostre istanze DB con.
dev-test-db-instanceNei comandi successivi che utilizzano i parametri ARN, sostituisci l'ARN della tua istanza database. L'ARN include l'ID AWS dell'account e il nome della AWS regione in cui si trova l'istanza DB.$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 -
Quindi, aggiungi il tag
stoppablea questa istanza database.Scegli il nome per il tag. Poiché questo esempio considera il tag come un attributo presente o assente, viene omessa la parte
Value=del parametro--tags. 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.$aws rds add-tags-to-resource \ --resource-namearn:aws:rds:us-east-1:123456789102:db:dev-test-db-instance\ --tags Key=stoppable -
Verifica che il tag sia presente nell'istanza database.
I comandi seguenti recuperano le informazioni sul tag per l’istanza database in formato JSON e in testo semplice separato da tabulazioni.
$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 -
Interrompi tutte le istanze database designate come
stoppable.L’esempio seguente crea un file di testo che elenca tutte le istanze database. Il comando shell scorre l’elenco, individua ogni istanza database contrassegnata con l’attributo pertinente ed esegue il comando
aws rds stop-db-instanceper ogni istanza database rilevata.$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", ...
Puoi eseguire uno script come quello precedente alla fine di ogni giorno per assicurarti che le istanze database non essenziali vengano interrotte. 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 alcune istanze database venissero lasciate in esecuzione per errore. Puoi quindi ottimizzare il comando che prepara l'elenco di istanze database da controllare.
Il comando seguente produce un elenco delle istanze database nello stato available. Lo script può ignorare le istanze database già arrestate, poiché avranno valori di stato diversi, ad esempio stopped o stopping.
$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
Suggerimento
Puoi utilizzare l'assegnazione di tag e la ricerca di istanze database con i tag per ridurre i costi in altri modi. Supponi, ad esempio, questo scenario con le istanze database utilizzate per lo sviluppo e il test. In questo caso, potresti designare alcune istanze database da eliminare alla fine di ogni giornata. In alternativa, potresti designarle per modificare le istanze database in piccole classi di istanza database durante i periodi previsti di basso utilizzo.