AWSの微少課金をCost and Usage Reports で調べる
動機
- AWSで毎日0.3USDくらいの課金が起きているが、何なのか分からない
- CostExploreでも一部表示できるが、もう少し具体的に知りたい
Cost Exploreだと
いちおう項目が表示されているのですが、いまいちよく分かりません。Othersとは・・・?
Cost and Usage Reportsを作成する
日本語だと「コストと使用状況レポート」です。
設定方法は以下の公式docで説明されています。
--- ここから最後までオレオレ ---
-
Cost and Usage Reportsのページに移動して Create reportを押す
https://us-east-1.console.aws.amazon.com/billing/home?region=ap-northeast-1#/reports -
Report 名を設定する
-
リソースIDを表示するにチェックする
-
S3は選択したら自動でポリシーをつけてくれます
-
Prefixは必須です
- S3 の中で、例えば
<bucket>/Prefix1/report名/20220801-20220901/
というフォルダにレポートファイルが入ることになります
- S3 の中で、例えば
-
Granualiryは HourlyとかDailyとか選べます
-
圧縮はZipで(お好みで)
これで作成されますが、24時間以内に最初のレポートができるので、すぐには見られません。自分の場合は、朝6時に作成して24時半くらいにできていました。
レポートができたらS3 Eventで通知する
最初のレポートがいつできるか分からないのは不便なので、レポートができたらすぐに通知を受けたい場合のやり方です。
S3 -> SNS -> Email -> User という流れで受け取ります。
SNS Topicの設定
- トピックを作る、サブスクリプションの設定をする
- access policyを設定する。これはS3 EventからのトリガーでSNSがメールを出すためのもの。SNS TopicのARNを設定する。
{
"Version": "2012-10-17",
"Statement": [
{
"Sid": "1",
"Effect": "Allow",
"Principal": {
"Service": "s3.amazonaws.com"
},
"Action": "sns:Publish",
"Resource": "<arn-of-this-sns-topic>"
}
]
}
S3 Eventの設定
Bucket選択 -> Event notifications
Event name: 自由
Suffix: .csv.zip
Event types: Object creation s3:ObjectCreated:Copyにチェック(Allでもよい)
Destination: SNS topic, Enter SNS topic ARN
設定するとこのような文面の入ったメールが来るはず。
"Service":"Amazon S3","Event":"s3:TestEvent"
ファイルを見る
S3バケットの中にオブジェクトができているのでダウンロードします。
私の場合、Google Sheetsで見ています。zipを解凍した中身のcsvをインポートします。項目が大量にありますが、整理します。
- lineItem/ を列名から消す
- 一行目を固定
- 一行目でフィルター。UnblendedCostが0より大きいものだけ残す。
- UsageStartDate〜UsageEndDateが1ヶ月分入っているので、一日分だけ残す。(このときは2022-08-31T00:00:00Zから2022-09-01T00:00:00Z)
項目 | 説明 |
---|---|
ProductCode | AWSサービス |
UsageType | 使用タイプ |
Operation | CRUD操作とか |
ResourceId | リソースIDがわかって便利 |
UsageAmount | 使用量 |
CurrencyCode | USD |
UnblendedRate | 単価 |
UnblendedCost | 料金 |
LineItemDescription | 単価の詳しい説明。リージョンの情報も |
結果
- 停止しているRDS Postgresが(ほとんどデータ入ってないつもりですが)0.6GBあるので課金1日0.09USD
- ほとんど同じ条件のはずのAurora MySQLは0.003GBしか使っていないらしい
- 停止しているEC2がTokyo、Ohio、Oregonリージョンにあって、1つにつき1日0.03USD
- Customer kmsがOhioにあって月1ドルの日割り(記憶になかったですが、チュートリアルで作っていたみたいです)
- CostExploreのOthersに相当するのはCloudTrailとS3で、合計1日0.03USD
--- ここまでオレオレ ---
まとめ
- Cost and Usage Reportsは便利です
- 試験にも出てますよね(たぶん)
更新のメモ
2023/11/05 画像差し替え、S3Eventでの通知を追加。
Discussion