Skip to content

日々の EstimatedCharges をモニタリングし、使用量のしきい値に基づいて CloudWatch アラームを有効にするにはどうすればよいですか?

所要時間2分
0

日々の EstimatedCharges をモニタリングし、使用量のしきい値に基づいて Amazon CloudWatch アラームを有効にしたいです。

簡単な説明

EstimatedCharges メトリクスは、約 6 時間の間隔で公開されます。結果は毎月リセットされます。MetricMath RATE 式を使用して、日々の EstimatedCharges の値を計算します。MetricMath RATE を計算するには、最新のデータポイント値と以前のデータポイント値の差を除算します。次に、2 つの値の時間の差 (秒単位) で割ります。

解決策

**注:**AWS コマンドラインインターフェイス (AWS CLI) コマンドの実行中にエラーが発生した場合は、AWS CLI エラーのトラブルシューティングを参照してください。また、最新バージョンの AWS CLI を使用していることを確認してください。

AWS マネジメントコンソールを使用して CloudWatch アラームを作成する

次の手順を実行します。

  1. メトリクスの数式に基づいて、CloudWatch アラームを作成します
  2. ナビゲーションペインの メトリクス で、すべてのメトリクスを選択します。
  3. メトリクス ページのソースタブに次のコードを入力します。
    {    
        "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
    }
    **注:**上記のコードでは、「m1」というラベルのベースメトリクスとして EstimatedCharges を使用して、メトリクス数式 [ IF(RATE(m1)>0,RATE(m1)*86400,0) ] を作成します。
  4. メトリクス数式の CloudWatch アラームを作成するには、グラフ化されたメトリクスタブを選択します。
  5. DailyEstimatedCharges メトリクスのアクション列で、アラームアイコンを選択します。
  6. CloudWatch アラーム作成ウィザードで、次のステップを実行します。
    メトリクス設定の詳細を確認します。
    しきい値を超えたときに通知を受け取るには、適切なしきい値 (50.00 USD など) を追加します。
    アラームアクションを設定します。
    アラームの名前と説明を追加します。

AWS CLI を使用して CloudWatch アラームを作成する

次の手順を実行します。

  1. アラーム設定は JSON ファイルとして作成します
    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
        }]
    }

    **注:****REGION, ACCOUNT_ID、**および SNS\ _TOPIC\ _NAME を自分の値に置き換えます。

  2. PutMetricAlarm API を呼び出します。
    API コールの例:

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

    (オプション) Maximum DailyEstimatedCharges 値に対する前日の貢献者の上位 10 名を検索するには、次のクエリを実行します。

    $ 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

    StartTimeEndTime でサポートされている DateTime 形式は、2020-01-01T00:00:00Z です。

    **重要:**上記ののコマンドでは、各 GetMetricData API コールによって取得されるメトリクスの数に基づいて料金が発生します。詳細については、「Amazon CloudWatch の料金」を参照してください。

コメントはありません

関連するコンテンツ