Les traductions sont fournies par des outils de traduction automatique. En cas de conflit entre le contenu d'une traduction et celui de la version originale en anglais, la version anglaise prévaudra.
Didacticiel : Utilisation de balises pour spécifier les clusters de bases de données Aurora à arrêter
Supposons que vous créez un certain nombre de clusters de base de données Aurora dans un environnement de développement ou de test. Vous devez conserver tous ces clusters pendant plusieurs jours. Certains clusters exécutent des tests pendant la nuit. D’autres clusters peuvent être arrêtés pendant la nuit et redémarrés le lendemain. L’exemple suivant montre comment affecter une balise aux clusters qu’il convient d’arrêter pendant la nuit. Ensuite, l’exemple montre comment un script peut détecter les clusters qui possèdent cette balise, puis comment arrêter ces clusters. Dans cet exemple, la partie valeur de la paire clé-valeur n’a pas d’importance. La présence de la balise stoppable signifie que le cluster possède cette propriété définie par l’utilisateur.
Spécifier les clusters de bases de données Aurora à arrêter
-
Déterminez l’ARN d’un cluster que vous voulez désigner comme pouvant être arrêté.
Les commandes et les API pour le balisage fonctionnent avec les ARN. De cette façon, on arrive à un fonctionnement en toute transparence entre les régions AWS, les comptes AWS et différents types de ressources qui pourraient avoir des noms courts identiques. Vous pouvez spécifier l’ARN au lieu de l’ID du cluster dans les commandes CLI qui fonctionnent sur les clusters. Remplacez le nom de votre propre cluster par
dev-test-cluster. Dans les commandes suivantes qui utilisent des paramètres d’ARN, remplacez l’ARN de votre propre cluster. L’ARN inclut l’ID de votre propre compte AWS et le nom de la région AWS où se trouve votre cluster.$aws rds describe-db-clusters --db-cluster-identifierdev-test-cluster\ --query "*[].{DBClusterArn:DBClusterArn}" --output textarn:aws:rds:us-east-1:123456789:cluster:dev-test-cluster -
Ajoutez la balise
stoppableà ce cluster.Vous choisissez le nom de cette balise. Cette approche signifie que vous pouvez éviter de concevoir une convention de dénomination qui encode toutes les informations pertinentes dans les noms. Dans une telle convention, vous pouvez encoder des informations dans le nom de l’instance de base de données ou les noms d’autres ressources. Étant donné que cet exemple traite la balise comme un attribut présent ou absent, il omet la partie
Value=du paramètre--tags.$aws rds add-tags-to-resource \ --resource-namearn:aws:rds:us-east-1:123456789:cluster:dev-test-cluster\ --tags Key=stoppable -
Confirmez que la balise est présente dans le cluster.
Ces commandes récupèrent les informations sur la balise pour le cluster au format JSON et en texte brut séparé par des tabulations.
$aws rds list-tags-for-resource \ --resource-namearn:aws:rds:us-east-1:123456789:cluster:dev-test-cluster{ "TagList": [ { "Key": "stoppable", "Value": "" } ] }$aws rds list-tags-for-resource \ --resource-namearn:aws:rds:us-east-1:123456789:cluster:dev-test-cluster--output textTAGLIST stoppable -
Pour arrêter tous les clusters désignés comme
stoppable, préparez une liste de tous vos clusters. Passez la liste en revue et vérifiez que chaque cluster est balisé avec l’attribut approprié.Cet exemple Linux utilise le scripting Shell pour enregistrer la liste des ARN de cluster dans un fichier temporaire, puis pour exécuter des commandes CLI pour chaque 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 doneCluster 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", ...
Vous pouvez exécuter un script comme celui-ci à la fin de chaque journée pour vous assurer que les clusters non essentiels sont arrêtés. Vous pouvez également planifier une tâche à l’aide d’un utilitaire tel que cron pour effectuer une telle vérification chaque nuit. Par exemple, vous pouvez le faire si certains clusters de bases de données restaient en cours d’exécution par erreur. Dans ce cas, vous pouvez optimiser la commande qui prépare la liste des clusters à vérifier.
La commande suivante crée une liste de vos clusters, mais uniquement ceux au statut available. Le script peut ignorer les clusters qui sont déjà arrêtés, car ils auront des valeurs de statut différentes telles que stopped ou stopping.
$aws rds describe-db-clusters \ --query '*[].{DBClusterArn:DBClusterArn,Status:Status}|[?Status == `available`]|[].{DBClusterArn:DBClusterArn}' \ --output textarn: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
Astuce
Vous pouvez utiliser l’attribution de balises et la recherche de clusters qui ont ces balises pour réduire les coûts par d’autres moyens. Par exemple, prenez ce scénario avec des clusters de base de données Aurora utilisés pour le développement et les tests. Ici, vous pouvez désigner certains clusters à supprimer à la fin de chaque journée, ou pour lesquels il faut uniquement supprimer leurs instances de base de données du lecteur. Vous pouvez également désigner celles pour lesquelles leurs instances de base de données sont remplacées par de petites classes d’instance de base de données pendant les périodes de faible utilisation prévues.