請求とコスト管理のPDF形式のダッシュボードを定期的に指定したメールアドレスへ通知する機能が追加されました

請求とコスト管理のPDF形式のダッシュボードを定期的に指定したメールアドレスへ通知する機能が追加されました

定期的な料金レポートが必要な場合に
2026.04.11

定期的にAWSの利用料金の通知をしてほしい

こんにちは、のんピ(@non____97)です。

皆さんは定期的にAWSの利用料金の通知をしてほしいと思ったことはありますか? 私はあります。

以下のようにAWSの利用料金を定期的に通知をするためには手組みをしていることが多かったでしょう。

https://dev.classmethod.jp/articles/notify-line-aws-billing/

https://dev.classmethod.jp/articles/notify-aws-billing-for-cloudformaiton/

https://dev.classmethod.jp/articles/step-functions-cost-notify/

しかし、手組みをするのは中々に手間です。

そんな折、請求とコスト管理のPDF形式のダッシュボードを定期的に指定したメールアドレスへ通知する機能が追加されました。

https://aws.amazon.com/jp/about-aws/whats-new/2026/04/aws-billing-and-cost-management-dashboards-scheduled-email-delivery/

AWS Blogsにも投稿されています。

https://aws.amazon.com/jp/blogs/aws-cloud-financial-management/automate-aws-cost-reporting-with-scheduled-dashboard-email-delivery/

ドキュメントとしては以下にまとまっています。

https://docs.aws.amazon.com/cost-management/latest/userguide/schedule-dashboard-reports.html

AWS Blogsに投稿されている記事によると、こちらの機能は以下のような特徴があります。

  • 既存のダッシュボードの情報をPDF形式のレポートとして出力する
  • レポートの生成通知はメールのみ
    • AWS User Notificationsを使用する
  • メール内に含まれるURLからPDFレポートを表示できる
    • AWSアカウントの認証は不要で、PDFレポートを表示するためにはメール本文内のパスワードが必要
    • PDFレポートのURLの有効期限は15日
  • 日次や週次、月次など任意のサイクルで配信が可能

SlackやTeamsなどのチャットツールに通知をしたり、都度パスワードを用いてPDFを自身で開くのは少し手間ですが、既存のダッシュボードをそのままPDFとして出力してくれるのはかなりありがたいです。ダッシュボードの作成自体はマネジメントコンソール上からグラフィカルに行えるため、自身でグラフをプロットするコードを作成するよりか圧倒的に手間を省けます。

実際に触ってみました。

やってみた

レポートの作成

今回は以下のようなダッシュボードを用意しました。

1.Sample dashboard.png

今月分の課金情報を日次で把握したかったので日付範囲は以下のようにしています。

  • Monthly costs by service : 過去一ヶ月
  • Daily costs : 今月

これを月次でレポートされたいのであれば、次月に日付範囲を先月にすることで意図した範囲を表示できると考えます。

それでは、アクション-メールレポートを管理をクリックします。

2.メールレポートを管理.png

現在は空ですね。レポートを作成をクリックします。

3.メールレポート管理対象- Sample dashboard.png

レポート名と説明、レポート内容を選択します。

4.レポート詳細を作成.png

レポート内容はダッシュボード全体単一のウィジェットかを選択可能です。ダッシュボード内の特定のウィジェットのみをレポートとして表示したい場合は後者を選択する形になります。

5.単一のウィジェット.png

報告期間は以下から選択可能です。

  • ウィジェット固有の範囲
  • 過去7日間
  • 前月
  • 過去3ヶ月間
  • 過去1年
  • カスタム

6.報告期間.png

カスタムは固定の日付範囲になります。あまり出番はないかと考えます。ダッシュボードで表示されているものと全く同じものをレポートしたいのであれば、ウィジェット固有の範囲を選択することになると考えます。

レポートのイメージはレポートをプレビューで確認できます。こちらをクリックすると実際のPDFが表示されます。

7.プレビュー.png

続いて送信先の指定です。

既存の構成から選択新しいメールアドレスを入力のどちらかから選択します。既に他にレポート設定があるのであれば前者を選択する形になるでしょう。

7.受信者を選択する.png

今回ははじめましてなので、後者を選択します。既に私はAWS User Notificationsで通知設定をしていたので、そちらの通知先を設定します。実際の運用では組織内のコスト管理をされている方分登録する形になると考えます。

8.新しいメールアドレスを入力.png

次はレポートスケジュールです。

レポート送信の間隔と時刻、開始日、終了日が選択できます。時刻はUTC固定です。

9.レポートスケジュールの設定.png

また、Cron式での指定も可能です。少なくとも一時間間隔でなければならないといった制約はなさそうです。

10.カスタムcron.png

現在は17:10です。なるべく早めに確認をしたいので17:15に送信するようにします。

11.日次でレポート.png

CURへのアクセスやレポートのメール配信を管理するための権限を渡すためにIAMロールを定義します。今回は新しくIAMロールを作成しました。

22.その他の設定を行う.png

IAMロールに設定されているIAMポリシーのステートメントは以下のとおりです。<IAMロール名> + Policyという名前のマネージドポリシーが作成されます。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AwsBcmDashboardsScheduleReportsDataAccess",
      "Effect": "Allow",
      "Action": [
        "bcm-dashboards:GetDashboard"
      ],
      "Resource": [
        "arn:aws:bcm-dashboards::*:dashboard/*"
      ]
    },
    {
      "Sid": "AwsBcmDashboardsScheduleReportsDataAccessCE",
      "Effect": "Allow",
      "Action": [
        "ce:GetDimensionValues",
        "ce:GetCostAndUsageWithResources",
        "ce:GetCostAndUsage",
        "ce:GetCostForecast",
        "ce:GetTags",
        "ce:GetUsageForecast",
        "ce:GetCostCategories",
        "ce:GetSavingsPlansCoverage",
        "ce:GetReservationUtilization",
        "ce:GetReservationCoverage",
        "ce:GetSavingsPlansUtilization",
        "ce:GetSavingsPlansUtilizationDetails"
      ],
      "Resource": "*"
    }
  ]
}

IAMロールの信頼ポリシーは以下のとおりです。

{
  "Version": "2012-10-17",
  "Statement": [
    {
      "Sid": "AllowBcmDashboardScheduledReportAssumeRole",
      "Effect": "Allow",
      "Principal": {
        "Service": "bcm-dashboards.amazonaws.com"
      },
      "Action": "sts:AssumeRole",
      "Condition": {
        "StringEquals": {
          "aws:SourceAccount": "{{accountId}}"
        },
        "StringLike": {
          "aws:SourceArn": "arn:aws:bcm-dashboards::{{accountId}}:*"
        }
      }
    }
  ]
}

最後に確認をして、作成をします。

12.確認して作成.png

すると、レポートの説明の文字に制限があるらしく弾かれてしまいました。

13.エラー.png

裏側ではレポート送信のIAMロールやAWS User Notificationsの設定も作成されていました。

これらを削除して、再チャレンジします。

15.再チャレンジ.png

こちらで無事作成ができました。

16.sample report.png

AWS User Notificationsの通知設定を確認すると、新たに作成がされていました。

17.non-97-cost-report.png

マネージドルールのEventBridge Ruleの設定は以下のとおりです。

> aws events describe-rule --name AWSUserNotificationsManagedRule-ak4ugid
{
    "Name": "AWSUserNotificationsManagedRule-ak4ugid",
    "Arn": "arn:aws:events:us-east-1:<AWSアカウントID>:rule/AWSUserNotificationsManagedRule-ak4ugid",
    "EventPattern": "{\"source\": [\"aws.bcm-dashboards\"], \"detail-type\": [\"Billing and Cost Management Dashboard Schedule Report Created\"]}",
    "State": "ENABLED",
    "Description": "AWS User Notifications rule for source \"aws.bcm-dashboards\"",
    "ManagedBy": "notifications.amazonaws.com",
    "EventBusName": "default",
    "CreatedBy": "<AWSアカウントID>"
}

> aws events list-targets-by-rule --rule AWSUserNotificationsManagedRule-ak4ugid
{
    "Targets": [
        {
            "Id": "AWSNotifications-Rule-a3e6t13",
            "Arn": "arn:aws:notifications:us-east-1:::",
            "InputTransformer": {
                "InputPathsMap": {
                    "event": "$"
                },
                "InputTemplate": "{\n  \"managedRuleArn\": \"arn:aws:events:us-east-1:<AWSアカウントID>:rule/AWSUserNotificationsManagedRule-ak4ugid\",\n  \"event\": <event>\n}"
            }
        }
    ]
}

動作確認

現在の時刻は17:30です。

17:25に通知するように設定していたのですが、まだです。

試しに10分ごとに通知するようにCron式を変更してみます。

18.cronに設定.png

すると、Sample dashboard | AWS Billing and Cost Managementという件名でbcm-dashboards@aws.comからメールがありました。

実際のメールの内容は以下のとおりです。

19.Sample dashboard | AWS Billing and Cost Management.png

メールの文面からして、17:25に通知するように設定していた時のものが5分遅れで受信した形です。

Download PDFのURLをAWSマネジメントコンソールを開いていないシークレットウィンドウで開きます。

パスワードを聞かれました。

20.パスワードを入力してください.png

メール本文内のパスワードを入力すると、確かにダッシュボードと同じPDFレポートが表示されました。

21.PDFレポート.png

なお、ただのPDFなのでマウスをホバーしても詳細な内訳や金額は表示されません。

次にメール本文内のView in Notification Centerをクリックすると、通知センターが開きメール本文とほぼ同じ情報を確認することができました。

23.Billing and Cost Management Dashboard Schedule Report Created.png

ユーザー設定通知一覧からでも確認できます。

24.通知センター.png

定期的な料金レポートが必要な場合に

請求とコスト管理のPDF形式のダッシュボードを定期的に指定したメールアドレスへ通知する機能が追加されたアップデートを紹介しました。

定期的な料金レポートが必要な場合に非常に役立ちそうですね。AWSアカウントにアクセスする権限がなくとも表示できるのでメールの転送をしてしまえば、誰でもすぐにレポートを確認できるのも嬉しいポイントかと考えます。

個人的にはあとはSlackやTeamsへの通知、および通知内にそのまま料金情報が表示される形で通知できるようになると最高だと感じました。

この記事が誰かの助けになれば幸いです。

以上、クラウド事業本部 コンサルティング部の のんピ(@non____97)でした!

この記事をシェアする

関連記事