Cost ExplorerでリザーブドインスタンスとSavings Plansの利用率を確認してみた

2020.02.27

この記事は公開されてから1年以上経過しています。情報が古い可能性がありますので、ご注意ください。

AWSチームのすずきです。

購入したリザーブドインスタンス(RI)と Savings Plans(SP)の利用率、 Cost Explorer を利用して、WEB画面と、CLIで確認する機会がありましたので紹介させていただきます。

Webコンソール

2/22〜24 の期間を指定し、利用率を確認しました。

リザーブドインスタンス

Savings Plans

CLI

Savings Plans に対応した「awscli」と「jq」を利用しました。

$ /usr/local/bin/aws --version
aws-cli/2.0.1 Python/3.7.3 Linux/4.14.165-103.209.amzn1.x86_64 botocore/2.0.0dev5
$ jq --version
jq-1.5

AWS CLI v2 プレビューのインストーラが公開&AWS SSOに対応しました!

IAM

Cost Explorer(ce) の参照権限を付与したIAMロールを用意しました。

{
    "Version": "2012-10-17",
    "Statement": [
        {
            "Effect": "Allow",
            "Action": [
                "ce:Describe*",
                "ce:List*",
                "ce:Get*"
            ],
            "Resource": "*"
        }
    ]
}

4日前から3日分のRI、SPの使用率を求めました。

START_DATE=`date +"%Y-%m-%d" --date "-4 day"`
END_DATE=`date +"%Y-%m-%d" --date "1 day"`
aws ce get-reservation-utilization --time-period Start=${START_DATE},End=${END_DATE}
aws ce get-savings-plans-utilization --time-period Start=${START_DATE},End=${END_DATE}

リザーブドインスタンス

$ /usr/local/bin/aws ce get-reservation-utilization --time-period Start=${START_DATE},End=${END_DATE} | jq .Total
{
  "UtilizationPercentage": "100",
  "PurchasedHours": "2688.0",
  "TotalActualHours": "2688.0",
  "UnusedHours": "0.0",
 (略)
}

Savings Plans

$ /usr/local/bin/aws ce get-savings-plans-utilization --time-period Start=${START_DATE},End=${END_DATE} | jq .Total.Utilization
{
  "TotalCommitment": "18.9",
  "UsedCommitment": "18.9",
  "UnusedCommitment": "0.0",
  "UtilizationPercentage": "100"
}

まとめ

リザーブドインスタンス、Savings Plansの購入や、対象となるEC2に変更が発生した場合、 その数日後を目安に Cost Explorer を確認して、使用率をご確認ください。

使用率 100% を連続して大きく下回る状態が発生した場合には、 低い使用率、負の値の純貯蓄 が発生している契約の詳細を確認した上で、早めに損失回避を試みる事をおすすめします。

リザーブドインスタンスの使用率の低下が頻発する場合には、 次回のRI更新時、柔軟性に優れたSavings Plans の利用をご検討ください。