Comment surveiller les charges estimées quotidiennes et activer une alarme CloudWatch en fonction de mon seuil d’utilisation ?

Lecture de 3 minute(s)
0

Je souhaite surveiller les frais estimatifs quotidiens et activer une alarme Amazon CloudWatch en fonction de mon seuil d’utilisation.

Brève description

La métrique EstimatedCharges est publiée toutes les 6 heures environ. Les résultats sont réinitialisés tous les mois. Utilisez l’expression MetricMath RATE pour calculer la valeur EstimatedCharges pour chaque jour. Pour calculer MetricMath RATE, divisez la différence entre la dernière valeur de point de données et la valeur de point de données précédente. Divisez ensuite par la différence de temps en secondes entre les deux valeurs.

Résolution

Remarque : si des erreurs surviennent lorsque vous exécutez des commandes de l’interface de la ligne de commande AWS (AWS CLI), consultez la section Résoudre les erreurs liées à l’AWS CLI. Vérifiez également que vous utilisez la version la plus récente de l’interface de ligne de commande AWS.

Utiliser la console de gestion AWS pour créer une alarme CloudWatch

Procédez comme suit :

  1. Créez une alarme CloudWatch basée sur une expression mathématique métrique.
  2. Dans le volet de navigation, sous Métriques, sélectionnez Toutes les métriques.
  3. Sur la page Métriques, entrez le code suivant dans l’onglet Source :
    {    
        "metrics": [
            [ { "expression": "IF(RATE(m1)>0,RATE(m1)*86400,0)", "label": "Expression1", "id": "e1", "period": 86400, "stat": "Maximum" } ],
            [ "AWS/Billing", "EstimatedCharges", "Currency", "USD", { "id": "m1" } ]
        ],    
        "view": "timeSeries",
        "stacked": false,
        "region": "us-east-1",
        "stat": "Maximum",
        "period": 86400
    }
    Remarque : le code précédent crée l’expression mathématique métrique [ IF(RATE(m1)>0,RATE(m1)*86400,0) ] qui utilise EstimatedCharges comme métrique de base avec l’étiquette « m1 ».
  4. Pour créer une alarme CloudWatch pour l’expression mathématique métrique, choisissez l’onglet Graphed metrics.
  5. Dans la colonne Actions de la métrique DailyEstimatedCharges, choisissez l’icône Alarme.
  6. Dans l’assistant de création d’alarmes CloudWatch, procédez comme suit :
    Vérifiez les détails de la configuration des métriques.
    Ajoutez une valeur de seuil appropriée pour recevoir des notifications lorsque le seuil est dépassé, par exemple 50,00 USD.
    Configurez vos actions d’alarme.
    Ajoutez un nom et une description de l’alarme.

Utiliser l’interface de ligne de commande AWS pour créer une alarme CloudWatch

Procédez comme suit :

  1. Créez une configuration d’alarme sous forme de fichier JSON.
    Exemple de fichier JSON :

    $ cat alarm_config.json
    {
        "AlarmName": "DailyEstimatedCharges",
        "AlarmDescription": "This alarm would be triggered if the daily estimated charges exceeds 50$",
        "ActionsEnabled": true,
        "AlarmActions": [
            "arn:aws:sns:<REGION>:<ACCOUNT_ID>:<SNS_TOPIC_NAME>"
        ],
        "EvaluationPeriods": 1,
        "DatapointsToAlarm": 1,
        "Threshold": 50,
        "ComparisonOperator": "GreaterThanOrEqualToThreshold",
        "TreatMissingData": "breaching",
        "Metrics": [{
            "Id": "m1",
            "MetricStat": {
                "Metric": {
                    "Namespace": "AWS/Billing",
                    "MetricName": "EstimatedCharges",
                    "Dimensions": [{
                        "Name": "Currency",
                        "Value": "USD"
                    }]
                },
                "Period": 86400,
                "Stat": "Maximum"
            },
            "ReturnData": false
        },
        {
            "Id": "e1",
            "Expression": "IF(RATE(m1)>0,RATE(m1)*86400,0)",
            "Label": "DailyEstimatedCharges",
            "ReturnData": true
        }]
    }

    **Remarque :**Remplacez REGION, ACCOUNT_ID et SNS_TOPIC_NAME par vos valeurs.

  2. Appelez l’API PutMetricAlarm.
    Exemple d’appel d’API :

    aws cloudwatch put-metric-alarm --cli-input-json file://alarm_config.json

    (Facultatif) Pour trouver les dix principaux contributeurs de la journée précédente à la valeur Maximum DailyEstimatedCharges, exécutez la requête suivante :

    $ cat top_contributors_query.json
    {
        "MetricDataQueries": [{
            "Id": "e1",
            "Expression": "SORT(RATE(SEARCH('{AWS/Billing,Currency,ServiceName} AWS/Billing ServiceName', 'Maximum', 86400))*86400, MAX, DESC, 10)",
            "Label": "DailyEstimatedCharges",
            "Period": 86400
        }],
        "ScanBy": "TimestampAscending"
    }
    
    
    $ aws cloudwatch get-metric-data --cli-input-json file://top_contributors_query.json --start-time `date -v -2d '+%Y-%m-%dT%H:%M:%SZ'` --end-time `date '+%Y-%m-%dT%H:%M:%SZ'` --region us-east-1

    Le format DateTime pris en charge pour StartTime et EndTime est 2020-01-01T00:00:00Z.

    Important : la commande précédente entraîne des frais en fonction du nombre de métriques récupérées par chaque appel d’API GetMetricData. Pour en savoir plus, consultez la page Tarification Amazon Cloudwatch.

AWS OFFICIEL
AWS OFFICIELA mis à jour il y a 9 mois