コストと使用状況レポートのUseTypeをまとめてみた

:::note info
追記：2025/2/6
VantageさんからUseTypeを包括的にまとめているサイトがリリースされたようです。ありがたいですね
https://cur.vantage.sh/
:::


この記事は [Cocone Advent Calendar 2022](https://qiita.com/advent-calendar/2022/cocone) の6日目の記事になります！

# はじめに
ココネ株式会社でサービスインフラを担当している kaibeam です。

今年は円安がすごいですね。
1月の時点では1ドル**115円**だったのに、めきめき上がって10月には**150円**に...
今は落ち着いて134円くらいですが、それでもまだまだお高くAWSの料金なんかは特にダメージが大きいです。

そういったこともあり、**最近はAWSのコスト調査をすることが多くなりました**。

通常、AWSのコスト調査というとCost Explorerなどを活用することが多いと思うのですが、弊社ではリセラー契約をしておりそういった機能が使えません。
その代わりAWSの「コストと使用状況レポート」を少しアレンジした明細情報をリセラー側から提供されており、それを利用して細かいコスト調査を行っています。
その**レポート内の項目「UseType」について今回まとめてみました。** 

# UseTypeとは？

AWSには **「コストと使用状況レポート」というコストに関する利用状況や利用額が記載されたCSV形式のレポート** を配信してくれる機能があります。 **「UseType」はこのレポートの項目の1つです。**

例えば「EC2の東京リージョンのr5.xlargeタイプのオンデマンド料金」を知りたいのであれば、

| 項目 | 値 |
|:-|:-|
| ProductCode | AmazonEC2 |
| UseType | APN1-BoxUsage:r5.xlarge |

で絞り込めば利用した時間や金額がわかります。
ちなみに使用量に関してはデータ転送に関するUseTypeであれば転送量もわかりますし、リクエストに関するUseTypeであればリクエスト数もわかります。

ただ、この項目、直感でわかりづらい名称も結構あるのに、自分がググった限りだとまとまっているページが見つからず（Developer's IOさんのページを1件見つけたのですが、これは「請求明細」という古い形式のCSVでUseTypeも若干異なってました）いつも料金表と照らし合わせながら内容を把握していました。

そこで、**主要なサービスのUseTypeをまとめてみました。**
※先述の通り、まとまっているページがなかったためすべて網羅しているわけではありません。ご了承ください


# データ転送

基本的に本まとめは「ProductCode」の値ごとにしているのですが、**データ転送については複数のProductCodeで使われていたため別途こちらにまとめました。**

| UseType | 例 | 内容 |
|:-|:-|:-|
| {リージョン}-DataTransfer-In-Bytes | APN1-DataTransfer-In-Bytes | インターネットからの受信 |
| {リージョン}-DataTransfer-Out-Bytes | APN1-DataTransfer-Out-Bytes | インターネットへの送信 |
| {リージョン}-{別のリージョン}-AWS-In-Bytes | APN1-AFS1-AWS-In-Bytes | 別のリージョンからの受信 |
| {リージョン}-{別のリージョン}-AWS-Out-Bytes | APN1-AFS1-AWS-Out-Bytes | 別のリージョンへの送信 |
| {リージョン}-CloudFront-In-Bytes | APN1-CloudFront-In-Bytes | CloudFrontからの受信 |
| {リージョン}-CloudFront-Out-Bytes | APN1-CloudFront-Out-Bytes | CloudFrontからの送信 |
| {リージョン}-CloudFrontChina-In-Bytes | APN1-CloudFrontChina-In-Bytes | 中国のCloudFront POPからの受信 |
| {リージョン}-CloudFrontChina-Out-Bytes | APN1-CloudFrontChina-Out-Bytes | 中国のCloudFront POPへの送信 |
| {リージョン}-DataTransfer-Regional-Bytes | APN1-DataTransfer-Regional-Bytes | 同一のAWSリージョン間の送受信 |
| {リージョン}-DataTransfer-AZ-In-Bytes | APN1-DataTransfer-AZ-In-Bytes | 同一AZからの受信 |
| {リージョン}-DataTransfer-AZ-Out-Bytes | APN1-DataTransfer-AZ-Out-Bytes | 同一AZへの送信 |
| {リージョン}-DataTransfer-xAZ-In-Bytes | APN1-DataTransfer-xAZ-In-Bytes | 別のAZからの受信|
| {リージョン}-DataTransfer-xAZ-Out-Bytes | APN1-DataTransfer-xAZ-Out-Bytes | 別のAZへの送信 |

※リージョンの記載がない場合はバージニア北部（us-east-1）の料金です



# AmazonEC2

ProductCodeが「AmazonEC2」のUseTypeです。
こちらの表には記載していませんが、先述のデータ転送のUseTypeも含まれています。

**何気にNATゲートウェイが含まれているのが罠です**（コンソールではVPC内にあるのに）

| UseType | 例 | 内容 |
|:-|:-|:-|
| {リージョン}-BoxUsage:{タイプ}  | APN1-BoxUsage:r5.xlarge  | オンデマンド料金 |
| {リージョン}-HeavyUsage:{タイプ} | APN1-HeavyUsage:r5.xlarge  | リザーブドインスタンス料金 |
| {リージョン}-SpotUsage:{タイプ} | APN1-SpotUsage:t3.small | スポットインスタンス料金 |
| {リージョン}-EBSOptimized:{タイプ} | APN1-EBSOptimized:r5.xlarge | EBS最適化インスタンス料金 |
| {リージョン}-CPUCredits:{クラス} | APN1-CPUCredits:t3 | T2/T3/T4g Unlimited モードの料金 |
| {リージョン}-ElasticIP:IdleAddress | APN1-ElasticIP:IdleAddress | Elastic IPアドレス料金 |
| {リージョン}-EBS:VolumeUsage.{タイプ} | APN1-EBS:VolumeUsage.gp3 | EBS - ストレージ料金 |
| {リージョン}-EBS:VolumeP-IOPS.{タイプ} | APN1-EBS:VolumeP-IOPS.gp3 | EBS - IOPS料金 |
| {リージョン}-EBS:VolumeP-Throughput.{タイプ} | APN1-EBS:VolumeP-Throughput.gp3 | EBS - スループット料金 |
| {リージョン}-EBS:VolumeIOUsage | APN1-EBS:VolumeIOUsage | 旧世代EBSボリュームの100万I/Oリクエストあたりの料金 |
| {リージョン}-EBS:SnapshotUsage | APN1-EBS:SnapshotUsage | EBSスナップショットのストレージ料金 |
| {リージョン}-NatGateway-Hours | APN1-NatGateway-Hours | NATゲートウェイの時間単位料金 |
| {リージョン}-NatGateway-Bytes | APN1-NatGateway-Bytes | NATゲートウェイのデータ処理料金 |

※リージョンの記載がない場合はバージニア北部（us-east-1）の料金です
※EC2のタイプの記載がない場合はm1.smallの料金です
※EBSのタイプの記載がない場合はマグネティックの料金です


＜参考＞ 料金ページ
EC2： https://aws.amazon.com/jp/ec2/pricing/
EBS： https://aws.amazon.com/jp/ebs/pricing/
EBS 旧世代ボリューム： https://aws.amazon.com/jp/ebs/previous-generation/
NATゲートウェイ： https://aws.amazon.com/jp/vpc/pricing/


# AmazonCloudFront

ProductCodeが「AmazonCloudFront」のUseTypeです。

| UseType | 例 | 内容 |
|:-|:-|:-|
| {リージョン}-DataTransfer-Out-Bytes | AP-DataTransfer-Out-Bytes | インターネットへのリージョン内データ転送アウト |
| {リージョン}-DataTransfer-Out-OBytes | AP-DataTransfer-Out-OBytes | オリジンへのリージョン内データ転送アウト |
| {リージョン}-Requests-Tier1 | AP-Requests-Tier1 | HTTPリクエスト料金 |
| {リージョン}-Requests-Tier2-HTTPS | AP-Requests-Tier2-HTTPS | HTTPSリクエスト料金  |
| {リージョン}-Requests-HTTP-Proxy | AP-Requests-HTTP-Proxy | CloudFrontからオリジンサーバへのHTTPリクエスト料金 |
| {リージョン}-Requests-HTTPS-Proxy | AP-Requests-HTTPS-Proxy | CloudFrontからオリジンサーバへのHTTPSリクエスト料金 |
| {リージョン}-Lambda-Edge-Request | APN1-Lambda-Edge-Request | Lambda@Edgeの呼び出し料金 |
| {リージョン}-Lambda-Edge-GB-Second | APN1-Lambda-Edge-GB-Second | Lambda@Edgeの容量と使用時間料金 |
| Executions-CloudFrontFunctions | Executions-CloudFrontFunctions | CloudFront Functionの呼び出し料金 |
| Invalidations | Invalidations | 無効リクエストの料金 |

※リージョンの記載がない場合はバージニア北部（us-east-1）の料金です

＜参考＞ 料金ページ
https://aws.amazon.com/jp/cloudfront/pricing/


# AmazonRDS

ProductCodeが「AmazonRDS」のUseTypeです。
こちらの表には記載していませんが、先述のデータ転送のUseTypeも含まれています。

| UseType | 例 | 内容 |
|:-|:-|:-|
| {リージョン}-InstanceUsage:{タイプ} | APN1-InstanceUsage:db.t3.small | オンデマンド料金 |
| {リージョン}-RDS:{タイプ}-Storage | APN1-RDS:GP2-Storage | データベースストレージ料金（RDS） |
| {リージョン}-Aurora:StorageUsage | APN1-Aurora:StorageUsage | データベースストレージ料金（Aurora） |
| {リージョン}-Aurora:StorageIOUsage | APN1-Aurora:StorageIOUsage | データベースストレージIOPS料金 |
| {リージョン}-Aurora:BackupUsage | APN1-Aurora:BackupUsage | バックアップストレージ料金 |
| {リージョン}-Aurora:ServerlessUsage | APN1-Aurora:ServerlessUsage | Aurora Serverless キャパシティユニット料金 |

＜参考＞ 料金ページ
https://aws.amazon.com/jp/rds/pricing/

# AWSELB

ProductCodeが「AmazonELB」のUseTypeです。
こちらの表には記載していませんが、先述のデータ転送のUseTypeも含まれています。

| UseType | 例 | 内容 |
|:-|:-|:-|
| {リージョン}-LoadBalancerUsage | APN1-LoadBalancerUsage | ロードバランサー時間料金 |
| {リージョン}-LCUUsage | APN1-LCUUsage | LCU料金 |
| {リージョン}-DataProcessing-Bytes | APN1-DataProcessing-Bytes | CLBのデータ処理料金 |

＜参考＞ 料金ページ
https://aws.amazon.com/jp/elasticloadbalancing/pricing/

# AmazonVPC

ProductCodeが「AmazonVPC」のUseTypeです。
こちらの表には記載していませんが、先述のデータ転送のUseTypeも含まれています。

**NATゲートウェイはこちらではなく「AmazonEC2」にあるので注意です。**

| UseType | 例 | 内容 |
|:-|:-|:-|
| {リージョン}-VPN-Usage-Hours:ipsec.1 | APN1-VPN-Usage-Hours:ipsec.1 | サイト間VPN料金 |
| {リージョン}-ClientVPN-EndpointHours | APN1-ClientVPN-EndpointHours | ClientVPN エンドポイントアソシエーション料金 |
| {リージョン}-ClientVPN-ConnectionHours | APN1-ClientVPN-ConnectionHours | ClientVPN 接続料金 |

具体的な料金はAWS公式を参照
https://aws.amazon.com/jp/vpn/pricing/


# AmazonS3

公式でかなり詳細に記載してくれているページがありました
https://docs.aws.amazon.com/ja_jp/AmazonS3/latest/userguide/aws-usage-report-understand.html
S3はストレージのタイプなど種類が多岐にわたるのでありがたいですね。
（他のサービスも同じようなものがあればいいのですが。。）


# AmazonCloudWatch

こちらもUseTypeの記載がありました。
https://docs.aws.amazon.com/ja_jp/AmazonCloudWatch/latest/monitoring/cloudwatch_billing.html
CloudWatchも料金の種類が多いので助かりますね


# まとめ

S3やCloudWatchなど公式でまとまっているページを見るとUseTypeの種類、かなり多いですね。
今回主要なサービスでまとめはしたものの、こちらで確認できたものだけなのでまだまだたくさんのUseTypeがありそうです。
自分用にまとめている側面もあるので、また新しいUseTypeが見つかったら追記していこうと思います！

明日は7日目 @rougan さんの記事になります！
お楽しみに！