메뉴
Amazon Simple Storage Service
개발자 안내서 (API Version 2006-03-01)

요청 리디렉션 및 REST API

개요

Amazon S3에서는 DNS(도메인 이름 시스템)를 사용하여 요청을 처리할 수 있는 시설로 요청을 라우팅합니다. 이러한 시스템은 매우 효율적으로 작동합니다. 그러나 일시적인 라우팅 오류는 발생할 수 있습니다.

요청이 잘못된 Amazon S3 위치에 도착하는 경우, Amazon S3에서는 요청자에게 새 엔드포인트로 요청을 다시 전송하도록 지시하는 임시 리디렉션으로 응답합니다.

요청이 잘못 구성된 경우, Amazon S3에서는 영구 리디렉션을 사용하여 요청이 올바르게 수행되는 방법에 대한 지침을 제공합니다.

중요

각 Amazon S3 프로그램은 리디렉션 응답을 처리하도록 설계되어야 합니다. <CreateBucketConfiguration> 없이 생성된 버킷으로만 작동하는 프로그램에 대해서는 유일하게 예외가 적용됩니다. 위치 제한 조건에 대한 자세한 내용은 버킷 액세스 단원을 참조하십시오.

DNS 라우팅

DNS 라우팅은 요청을 적절한 Amazon S3 시설로 라우팅합니다.

다음 그림에 DNS 라우팅의 예가 나와 있습니다.

1 클라이언트는 Amazon S3에 저장된 객체를 가져오기 위해 DNS 요청을 만듭니다.
2 클라이언트는 요청을 처리할 수 있는 설비의 IP 주소를 하나 이상 수신합니다.
3 클라이언트는 Amazon S3 Facility B에 요청을 보냅니다.
4 Facility B에서 객체의 사본을 반환합니다.

임시 요청 리디렉션

임시 리디렉션은 요청을 다른 엔드포인트로 다시 전송해야 하는 요청자에게 신호를 보내는 일종의 오류 응답입니다.

Amazon S3의 분산 특성 때문에 요청이 일시적으로 잘못된 시설로 라우팅될 수 있습니다. 이러한 경우는 버킷을 만든 직후 또는 삭제한 직후에 발생할 가능성이 가장 높습니다. 예를 들어 새 버킷을 만들고 이 버킷에 즉시 요청을 보내는 경우, 버킷의 위치 제한에 따라 임시 리디렉션을 수신할 수 있습니다. 미국 동부(버지니아 북부) 리전(s3.amazonaws.com endpoint)에서 버킷을 만든 경우, 이곳 역시 기본 엔드포인트이기 때문에 리디렉션 현상이 나타나지 않습니다. 그러나 기타 리전에서 버킷을 만든 경우, 버킷의 DNS 항목이 전파되는 동안 이 버킷에 대한 모든 요청은 기본 엔드포인트로 이동합니다. 기본 엔드포인트에서는 HTTP 302 응답과 함께 요청을 정확한 엔드포인트로 리디렉션합니다.

임시 리디렉션에는 정확한 시설에 대한 URI가 포함되어 있어 이를 사용하여 요청을 즉시 재전송할 수 있습니다.

중요

이전 리디렉션 응답에서 제공한 엔드포인트를 재사용하지 마십시오. 긴 시간 동안 작동하는 것처럼 보일 수 있으나 예기치 않은 결과를 제공할 수 있으며 결국 예고 없이 실패하게 됩니다.

다음 그림에 임시 리디렉션의 예가 나와 있습니다.

1 클라이언트는 Amazon S3에 저장된 객체를 가져오기 위해 DNS 요청을 만듭니다.
2 클라이언트는 요청을 처리할 수 있는 설비의 IP 주소를 하나 이상 수신합니다.
3 클라이언트는 Amazon S3 Facility B에 요청을 보냅니다.
4 Facility B에서는 Location C에서 사용 가능한 객체를 나타내는 리디렉션을 반환합니다.
5 클라이언트에서 Location C로 요청을 다시 전송합니다.
6 Facility C에서 객체의 사본을 반환합니다.

영구 요청 리디렉션

영구 리디렉션은 요청에 리소스의 주소가 부적절하게 지정되었음을 나타냅니다. 예를 들어 <CreateBucketConfiguration>을 사용하여 생성한 버킷에 경로 스타일 요청을 사용하여 액세스하는 경우 영구 리디렉션이 발생합니다. 자세한 내용은 버킷 액세스를 참조하십시오.

개발 중에 이러한 오류를 쉽게 발견할 수 있도록 요청이 자동으로 올바른 위치를 따라가도록 하는 Location HTTP 헤더를 이 유형의 리디렉션에 포함하지 않습니다. 올바른 Amazon S3 엔드포인트 사용에 대한 도움을 받으려면 결과 XML 오류 문서를 참조하십시오.

REST API 리디렉션

Copy
HTTP/1.1 307 Temporary Redirect Location: http://johnsmith.s3-gztb4pa9sq.amazonaws.com/photos/puppy.jpg?rk=e2c69a31 Content-Type: application/xml Transfer-Encoding: chunked Date: Fri, 12 Oct 2007 01:12:56 GMT Server: AmazonS3 <?xml version="1.0" encoding="UTF-8"?> <Error> <Code>TemporaryRedirect</Code> <Message>Please re-send this request to the specified temporary endpoint. Continue to use the original request endpoint for future requests.</Message> <Endpoint>johnsmith.s3-gztb4pa9sq.amazonaws.com</Endpoint> </Error>

SOAP API 리디렉션

참고

HTTP를 통한 SOAP 지원은 중단되었지만 HTTPS를 통해 계속해서 사용할 수 있습니다. 새로운 Amazon S3 기능은 SOAP에 대해 지원되지 않습니다. REST API 또는 AWS SDK를 사용하는 것이 좋습니다.

Copy
<soapenv:Body> <soapenv:Fault> <Faultcode>soapenv:Client.TemporaryRedirect</Faultcode> <Faultstring>Please re-send this request to the specified temporary endpoint. Continue to use the original request endpoint for future requests.</Faultstring> <Detail> <Bucket>images</Bucket> <Endpoint>s3-gztb4pa9sq.amazonaws.com</Endpoint> </Detail> </soapenv:Fault> </soapenv:Body>