ストレージ転送と使用量のリクエスタ支払いバケットの使用
一般に、Amazon S3 のバケットのストレージおよびデータ転送にかかるコストはすべて、そのバケット所有者が負担します。ただし、バケットをリクエスタ支払いバケットに設定することはできます。リクエスタ支払いバケットの場合、リクエストおよびバケットからのデータのダウンロードにかかるコストは、所有者でなくリクエストを実行したリクエスタが支払います。データの保管にかかるコストは常にバケット所有者が支払います。
通常は、データを共有したいが、他者がデータにアクセスする際に発生する費用を負担したくない場合に、リクエスタ支払いバケットをバケットに設定します。例えば、郵便番号リスト、参照データ、地理空間情報、ウェブクロールデータといった、大規模なデータセットを利用できるようにする際にリクエスタ支払いバケットを設定することができます。
重要
バケットでリクエスタ支払いを有効化すると、そのバケットには匿名アクセスができなくなります。
リクエスタ支払いバケットに関するリクエストはすべて認証する必要があります。リクエストの認証により、Amazon S3 はリクエスタを特定し、リクエスタ支払いバケットの使用に対して課金できるようになります。
リクエスタがリクエストを送る前に AWS Identity and Access Management (IAM) ロールを引き受ける際に、ロールが属するアカウントにリクエストの料金が発生します。IAM ロールの詳細については、IAM ユーザーガイド の「IAM ロール」を参照してください。
バケットをリクエスタ支払いバケットとして設定すると、リクエスタは、API リクエストヘッダーに x-amz-request-payer
を (DELETE、GET、HEAD、POST、PUT リクエストの場合はヘッダーに、REST リクエストの場合はパラメータとして) 含めることで、リクエストとデータのダウンロードに課金されることを了解している旨を示す必要があります。
リクエスタ支払いバケットは、次の場合サポートしていません。
-
匿名リクエスト
-
SOAP リクエスト
-
リクエスタ支払いバケットをエンドユーザーログのターゲットバケットとして使用する場合、あるいはその逆。ただし、ターゲットバケットがリクエスタ支払いバケットでない場合は、リクエスタ支払いバケット上でエンドユーザーのログを有効にできます。
リクエスタ支払いの課金の仕組み
成功したリクエスタ支払いリクエストに対する課金はシンプルです。リクエスタは、転送されたデータとリクエストに対して支払い、バケット所有者はデータのストレージに対して支払います。ただし以下の条件では、リクエストに対してバケット所有者が課金されます。
-
リクエスタが、リクエストにパラメータ
x-amz-request-payer
を (DELETE、GET、HEAD、POST、PUT の場合はヘッダーに、REST の場合はパラメータとして) 含めなかった場合 (HTTP コード 403) -
リクエストの認証に失敗した場合 (HTTP コード 403)
-
リクエストが匿名の場合 (HTTP コード 403)
-
リクエストが SOAP リクエストの場合
リクエスタ支払いの詳細については、以下のトピックを参照してください。