S3 リクエスタ支払いが請求明細でどのように表示されるか確認してみた
はじめに
S3 リクエスタ払いを利用した際、請求明細でどのように表示されるか確認しました。以下の 4 つの方法で、どこまで判別できるかを検証しました。
- Cost Explorer
- クラスメソッドメンバーズポータル(Web 画面・CSV)
- Members Cost Explorer
- メンバーズ CUR(AWS のレガシー CUR 仕様)
検証結果
いずれの方法でも、リクエスタ払い専用の項目やフラグは存在しません。判別手がかりはリソース ID(バケット名)のみです。
| 確認方法 | リクエスタ払いの判別 | 備考 |
|---|---|---|
| Cost Explorer | ◯ | 過去 14 日分しか確認できない |
| メンバーズポータル(Web) | ☓ | リソース ID が表示されない |
| メンバーズポータル(CSV) | ◯ | リソース ID 列にバケット名あり |
| Members Cost Explorer | ☓ | リソースでグループ化できない |
| メンバーズ CUR(Athena) | ◯ | lineItem/ResourceId で確認 |
リソース ID にバケット名が記録されます。リクエスタ払いでアクセスしたバケット名で検索すれば、該当の請求を確認できます。
S3 リクエスタ払いとは
通常、S3 の Get などのリクエスト料金やデータ転送料金はバケット所有者が負担します。リクエスタ払いを有効にすると、これらの料金がリクエスト側の AWS アカウントに費用を負担させることができます。
リクエスタ払いの仕組みや設定方法の詳細は、以下の記事を参照してください。
検証環境
リクエスタ側アカウントから他アカウントのリクエスタ設定を有効化したバケットにアクセスしました。
- バケット名:
devio-test-20260221
実行したコマンドは以下のとおりです。ファイルを確認して、ローカルにダウンロードしました。
$ aws s3 ls s3://devio-test-20260221 --request-payer requester
2026-02-21 11:35:21 25180 test.png
$ aws s3 cp s3://devio-test-20260221/test.png ~/work --request-payer requester
download: s3://devio-test-20260221/test.png to work/test.png
Cost Explorer での確認
Cost Explorer ではリソース単位でバケット名を確認できます。
前提条件、制約事項
前提
Cost Explorer の設定でリソースレベルデータを有効化しておく必要があります。
- 有効化後、データが利用可能になるまで最大 48 時間かかる
制約
Cost Explorer のリソースレベルデータにはいくつかの制約があります。
- 日次粒度で過去 14 日分のみ表示可能
- サービスごとに上位 5,000 リソースのみ表示
- 大量のリソースがある場合はメンバーズ CUR を Athena で確認するほうが確実
確認方法
以下の手順で確認します。
- Cost Explorer を開く
- 期間を指定 ※最大 14 日分のみ
- グループ化のディメンションに「リソース」を選択する
- フィルターで Service に「S3 (Simple Storage Service)」を選択する
リソース ID としてバケット名が表示されます。リクエスタ払いでアクセスしたバケット名で検索すれば、該当の請求を特定できます。

メンバーズポータルでの確認
クラスメソッドメンバーズポータルでリクエスタ払いの請求がどう見えるか確認しました。
Web 画面での確認
月毎の利用料金の詳細画面では、Description レベルまで確認できます。しかし、リソース情報までの情報はないため通常の S3 リクエストと区別がつきません。そもそも、リクエスタ払いを示す情報は存在しないため確認できませんでした。
CSV ダウンロードでの確認
月毎の明細 CSV をダウンロードして確認しました。CSV にはリソース ID が含まれており、リクエスタ払いでアクセスしたバケット名で検索すれば、該当の請求を特定できます。

Members Cost Explorer での確認
クラスメソッドメンバーズの Members Cost Explorer では、ディメンションをリソースでグループ化できません。そのため、バケット名を特定できず、リクエスタ払いの判別には利用できません。
メンバーズ CUR を Athena で確認
S3 バケットに保存されているメンバーズ CUR のデータを Athena でクエリし、リクエスタ払いの明細を確認しました。
Athena の準備
まず、データベースを作成します。
CREATE DATABASE IF NOT EXISTS cur_blog;
次に、CUR データを参照するテーブルを作成します。LOCATION には、CUR の S3 パスで最新の assembly ID を指定してください。
テーブル作成 SQL 全文
CREATE EXTERNAL TABLE IF NOT EXISTS cur_blog.cur_hourly (
`identity_lineitemid` string,
`identity_timeinterval` string,
`bill_invoiceid` string,
`bill_billingentity` string,
`bill_billtype` string,
`bill_payeraccountid` string,
`bill_billingperiodstartdate` string,
`bill_billingperiodenddate` string,
`bill_invoicingentity` string,
`lineitem_usageaccountid` string,
`lineitem_lineitemtype` string,
`lineitem_usagestartdate` string,
`lineitem_usageenddate` string,
`lineitem_productcode` string,
`lineitem_usagetype` string,
`lineitem_operation` string,
`lineitem_availabilityzone` string,
`lineitem_resourceid` string,
`lineitem_usageamount` string,
`lineitem_normalizationfactor` string,
`lineitem_normalizedusageamount` string,
`lineitem_currencycode` string,
`lineitem_unblendedrate` string,
`lineitem_unblendedcost` string,
`lineitem_lineitemdescription` string,
`lineitem_taxtype` string,
`lineitem_legalentity` string,
`product_productname` string,
`product_acceleratorsize` string,
`product_acceleratortype` string,
`product_accesstype` string,
`product_activitytype` string,
`product_addonfeature` string,
`product_alarmtype` string,
`product_apitype` string,
`product_attachmenttype` string,
`product_availability` string,
`product_availabilityzone` string,
`product_bitrate` string,
`product_brokerengine` string,
`product_bundle` string,
`product_cacheengine` string,
`product_cachememorysizegb` string,
`product_callingtype` string,
`product_capacitystatus` string,
`product_category` string,
`product_clientlocation` string,
`product_clockspeed` string,
`product_cloudsearchversion` string,
`product_codec` string,
`product_computefamily` string,
`product_computetype` string,
`product_concurrencyscalingfreeusage` string,
`product_contenttype` string,
`product_country` string,
`product_countsagainstquota` string,
`product_cputype` string,
`product_currentgeneration` string,
`product_data` string,
`product_datatransfer` string,
`product_datatransferquota` string,
`product_databaseedition` string,
`product_databaseengine` string,
`product_datatransferout` string,
`product_dedicatedebsthroughput` string,
`product_deploymentlocation` string,
`product_deploymentoption` string,
`product_describes` string,
`product_description` string,
`product_device` string,
`product_devicetype` string,
`product_directconnectlocation` string,
`product_directorysize` string,
`product_directorytype` string,
`product_directorytypedescription` string,
`product_dominantnondominant` string,
`product_durability` string,
`product_ebsoptimized` string,
`product_ecu` string,
`product_edition` string,
`product_elasticgraphicstype` string,
`product_endpoint` string,
`product_endpointtype` string,
`product_engine` string,
`product_enginecode` string,
`product_enhancednetworkingsupport` string,
`product_enhancednetworkingsupported` string,
`product_entitytype` string,
`product_eventtype` string,
`product_executionfrequency` string,
`product_executionlocation` string,
`product_feecode` string,
`product_feedescription` string,
`product_filesystemtype` string,
`product_framerate` string,
`product_freeoverage` string,
`product_freequerytypes` string,
`product_freetier` string,
`product_freetrial` string,
`product_freeusageincluded` string,
`product_frequencymode` string,
`product_fromlocation` string,
`product_fromlocationtype` string,
`product_georegioncode` string,
`product_gets` string,
`product_gpu` string,
`product_gpumemory` string,
`product_graphqloperation` string,
`product_group` string,
`product_groupdescription` string,
`product_highavailability` string,
`product_indexingsource` string,
`product_ingesttype` string,
`product_input` string,
`product_inputmode` string,
`product_instance` string,
`product_instancecapacity10xlarge` string,
`product_instancecapacity12xlarge` string,
`product_instancecapacity24xlarge` string,
`product_instancecapacity2xlarge` string,
`product_instancecapacity4xlarge` string,
`product_instancecapacity8xlarge` string,
`product_instancecapacitylarge` string,
`product_instancecapacityxlarge` string,
`product_instancefamily` string,
`product_instancefunction` string,
`product_instancetype` string,
`product_instancetypefamily` string,
`product_instances` string,
`product_instancesku` string,
`product_intelavx2available` string,
`product_intelavxavailable` string,
`product_intelturboavailable` string,
`product_io` string,
`product_license` string,
`product_licensemodel` string,
`product_licensetype` string,
`product_linetype` string,
`product_location` string,
`product_locationtype` string,
`product_logssource` string,
`product_logstype` string,
`product_machinelearningprocess` string,
`product_mailboxstorage` string,
`product_maxiopsburstperformance` string,
`product_maxiopsvolume` string,
`product_maxthroughputvolume` string,
`product_maxvolumesize` string,
`product_maximumcapacity` string,
`product_maximumextendedstorage` string,
`product_maximumstoragevolume` string,
`product_memory` string,
`product_memorygib` string,
`product_memorytype` string,
`product_messagedeliveryfrequency` string,
`product_messagedeliveryorder` string,
`product_meteringtype` string,
`product_minvolumesize` string,
`product_minimumstoragevolume` string,
`product_networkperformance` string,
`product_newcode` string,
`product_normalizationsizefactor` string,
`product_offer` string,
`product_operatingsystem` string,
`product_operation` string,
`product_operationtype` string,
`product_opsitems` string,
`product_origin` string,
`product_oslicensemodel` string,
`product_output` string,
`product_outputmode` string,
`product_overagetype` string,
`product_parametertype` string,
`product_physicalcores` string,
`product_physicalcpu` string,
`product_physicalgpu` string,
`product_physicalprocessor` string,
`product_pipeline` string,
`product_portspeed` string,
`product_preinstalledsw` string,
`product_processorarchitecture` string,
`product_processorfeatures` string,
`product_productfamily` string,
`product_protocol` string,
`product_provisioned` string,
`product_queuetype` string,
`product_readtype` string,
`product_realtimeoperation` string,
`product_recipient` string,
`product_region` string,
`product_requestdescription` string,
`product_requesttype` string,
`product_resolution` string,
`product_resourceendpoint` string,
`product_resourcetype` string,
`product_rootvolume` string,
`product_routingtarget` string,
`product_routingtype` string,
`product_runningmode` string,
`product_servicecode` string,
`product_servicename` string,
`product_singleordualpass` string,
`product_sku` string,
`product_softwareincluded` string,
`product_softwaretype` string,
`product_standardstorageretentionincluded` string,
`product_steps` string,
`product_storage` string,
`product_storageclass` string,
`product_storagedescription` string,
`product_storagemedia` string,
`product_storagetype` string,
`product_subscriptiontype` string,
`product_supportedmodes` string,
`product_tenancy` string,
`product_tenancysupport` string,
`product_throughput` string,
`product_throughputclass` string,
`product_tier` string,
`product_tiertype` string,
`product_tolocation` string,
`product_tolocationtype` string,
`product_trafficdirection` string,
`product_transcodingresult` string,
`product_transfertype` string,
`product_type` string,
`product_updates` string,
`product_usagefamily` string,
`product_usagetype` string,
`product_uservolume` string,
`product_vcpu` string,
`product_version` string,
`product_videocodec` string,
`product_videoframerate` string,
`product_videomemorygib` string,
`product_videoquality` string,
`product_videoqualitysetting` string,
`product_videoresolution` string,
`product_virtualinterfacetype` string,
`product_volumeapiname` string,
`product_volumetype` string,
`product_vqsetting` string,
`pricing_leasecontractlength` string,
`pricing_offeringclass` string,
`pricing_purchaseoption` string,
`pricing_publicondemandcost` string,
`pricing_publicondemandrate` string,
`pricing_term` string,
`pricing_unit` string,
`reservation_amortizedupfrontcostforusage` string,
`reservation_amortizedupfrontfeeforbillingperiod` string,
`reservation_availabilityzone` string,
`reservation_effectivecost` string,
`reservation_endtime` string,
`reservation_modificationstatus` string,
`reservation_normalizedunitsperreservation` string,
`reservation_numberofreservations` string,
`reservation_recurringfeeforusage` string,
`reservation_reservationarn` string,
`reservation_starttime` string,
`reservation_totalreservednormalizedunits` string,
`reservation_totalreservedunits` string,
`reservation_unitsperreservation` string,
`reservation_unusedamortizedupfrontfeeforbillingperiod` string,
`reservation_unusednormalizedunitquantity` string,
`reservation_unusedquantity` string,
`reservation_unusedrecurringfee` string,
`reservation_upfrontvalue` string,
`resourcetags_user_cmbillinggroup` string,
`savingsplan_totalcommitmenttodate` string,
`savingsplan_savingsplanarn` string,
`savingsplan_savingsplanrate` string,
`savingsplan_usedcommitment` string,
`savingsplan_savingsplaneffectivecost` string,
`savingsplan_amortizedupfrontcommitmentforbillingperiod` string,
`savingsplan_recurringcommitmentforbillingperiod` string,
`savingsplan_region` string,
`savingsplan_paymentoption` string,
`savingsplan_endtime` string,
`savingsplan_instancetypefamily` string,
`savingsplan_purchaseterm` string,
`savingsplan_offeringtype` string,
`savingsplan_starttime` string
)
ROW FORMAT SERDE 'org.apache.hadoop.hive.serde2.OpenCSVSerde'
WITH SERDEPROPERTIES (
'separatorChar' = ',',
'quoteChar' = '"',
'escapeChar' = '\\'
)
STORED AS TEXTFILE
LOCATION 's3://your-cur-bucket/CUR/report-name/YYYYMMDD-YYYYMMDD/assembly-id/'
TBLPROPERTIES (
'skip.header.line.count'='1',
'compressionType'='gzip'
)
リソース ID(バケット名)を確認
CUR の lineitem_resourceid にバケット名が記録されているか確認します。以下のクエリで S3 のリソース ID を一覧しました。バケット名確認できたので大丈夫そうです。
SELECT
lineitem_resourceid AS bucket_name,
COUNT(*) AS line_count,
format('%.10f', SUM(CAST(lineitem_unblendedcost AS double))) AS total_cost
FROM cur_blog.cur_hourly
WHERE lineitem_productcode = 'AmazonS3'
AND lineitem_resourceid != ''
GROUP BY lineitem_resourceid
ORDER BY total_cost DESC;

リクエスタ払いの明細を検索
バケット名を特定したら、以下のクエリで明細を抽出します。lineitem_resourceid にバケット名を指定してフィルタリングしています。
SELECT
lineitem_usagestartdate,
lineitem_usagetype,
lineitem_operation,
lineitem_resourceid,
format('%.10f', CAST(lineitem_unblendedcost AS double)) AS cost,
lineitem_lineitemdescription
FROM cur_blog.cur_hourly
WHERE lineitem_productcode = 'AmazonS3'
AND lineitem_resourceid = 'devio-test-20260221'
ORDER BY lineitem_usagestartdate, lineitem_operation;
クエリ結果は以下のとおりです。利用金額が確認できました。

確認結果
メンバーズ CUR のデータを確認した結果、以下のことがわかりました。
- CUR にリクエスタ払いを示す専用カラムやフラグは存在しない
- UsageType は
APN1-Requests-Tier1、APN1-Requests-Tier2、APN1-DataTransfer-Out-Bytesで通常の S3 と同じ - Operation は
GetObject、HeadObject、ListBucketで通常と同じ - LineItemType は
Usageで通常と同じ - Description にも RequesterPays 的な記述はない
lineitem_resourceidに他アカウントのバケット名がそのまま表示される
つまり、リクエスタ払いの明細は通常の S3 利用とまったく同じフォーマットで記録されます。
まとめ
- S3 リクエスタ払いの請求明細に専用の項目やフラグは存在しない
- UsageType、Operation、Description は通常の S3 利用と同じ内容で記録される
- 唯一の判別手がかりはリソース ID に記録されるバケット名
- リクエスタ払いでアクセスしたバケット名を検索すれば、該当の請求を特定できる
おわりに
リクエスタ払いの請求項目あるのかドキュメントを確認したところなさそうだということがわかったので、実際に確認してみた結果をまとめました。なんだかんだ「リクエスタ払い」というラベルがどこかにあると思っていたのですがないんですね。請求明細からリクエスタ払いを判別したい方の参考になれば幸いです。






