스토리지 전송 및 사용을 위한 Requester Pays 일반 목적 버킷 사용

스토리지 전송 및 사용을 위한 Requester Pays 일반 목적 버킷 사용

일반적으로 버킷 소유자는 자기 버킷과 관련된 모든 Amazon S3 스토리지 및 데이터 전송 비용을 지불해요. 하지만 일반 목적 버킷을 Requester Pays 버킷으로 구성할 수 있어요. Requester Pays 버킷에서는 버킷 소유자 대신 요청자가 요청과 데이터 다운로드 비용을 지불해요. 버킷 소유자는 항상 데이터 저장 비용을 지불해요.

보통 데이터를 공유하고 싶지만 다른 사람이 데이터에 접근하는 것과 관련된 비용은 부담하고 싶지 않을 때 버킷을 Requester Pays 버킷으로 구성해요. 예를 들어 우편번호 디렉터리, 참조 데이터, 지리 공간 정보, 웹 크롤링 데이터 같은 대용량 데이터셋을 제공할 때 Requester Pays 버킷을 사용할 수 있어요.

중요: 일반 목적 버킷에서 Requester Pays를 활성화하면 그 버킷에 대한 익명 접근이 허용되지 않아요. Requester Pays 버킷과 관련된 모든 요청은 인증되어야 해요. 요청 인증을 통해 Amazon S3가 요청자를 식별하고 Requester Pays 버킷 사용 비용을 청구할 수 있어요.

출처: 문서

본문

요청자가 요청 전에 IAM 역할을 맡으면, 그 역할이 속한 계정이 요청 비용을 지불해요.

버킷을 Requester Pays 버킷으로 구성한 후에는 요청자가 요청과 데이터 다운로드 비용을 부담한다는 것을 인지해야 해요. 비용 지불을 수락했음을 표시하려면 요청자는 DELETE, GET, HEAD, POST, PUT 요청의 API 요청에 헤더로 x-amz-request-payer를 포함하거나, REST 요청에 RequestPayer 파라미터를 추가해야 해요. CLI 요청에는 --request-payer 파라미터를 사용할 수 있어요.

DeleteObjectVersion API 예시:

DELETE /Key+?versionId=VersionId HTTP/1.1
Host: Bucket.s3.amazonaws.com
x-amz-mfa: MFA
x-amz-request-payer: RequestPayer
x-amz-bypass-governance-retention: BypassGovernanceRetention
x-amz-expected-bucket-owner: ExpectedBucketOwner

요청자가 RestoreObject API로 객체를 복원하면, 요청에 x-amz-request-payer 헤더나 RequestPayer 파라미터가 있으면 Requester Pays가 지원돼요. 다만 이 경우 요청자는 요청 비용만 지불하고, 검색 비용은 버킷 소유자가 지불해요.

Requester Pays 버킷은 다음을 지원하지 않아요.

  • 익명 요청
  • SOAP 요청
  • 최종 사용자 로깅의 대상 버킷으로 Requester Pays 버킷을 사용하거나 그 반대. 단, 대상 버킷이 Requester Pays 버킷이 아닌 경우 최종 사용자 로깅을 Requester Pays 버킷에서 켤 수 있어요.

Requester Pays 요금이 작동하는 방식 (How Requester Pays charges work)

성공한 Requester Pays 요청의 요금은 단순해요: 요청자가 데이터 전송과 요청 비용을 지불하고, 버킷 소유자가 데이터 저장 비용을 지불해요. 단, 다음 조건에서는 버킷 소유자가 요청 비용을 청구받아요.

  • 요청이 AccessDenied(HTTP 403 Forbidden) 오류를 반환하고, 요청이 버킷 소유자의 개별 AWS 계정 또는 AWS 조직 내에서 시작된 경우
  • 요청이 SOAP 요청인 경우

다음 주제들을 다뤄요:

  • 버킷에서 Requester Pays 구성
  • REST API로 requestPayment 구성 검색
  • Requester Pays 버킷에서 객체 다운로드

더 알아보기 (Learn more)