사용자 지정 오류 문서 구성

사용자 지정 오류 문서 구성

버킷을 정적 웹사이트로 구성한 뒤 오류가 발생하면 Amazon S3는 HTML 오류 문서를 반환해요. 버킷에 사용자 지정 오류 문서를 선택적으로 구성해서, 오류가 발생할 때 Amazon S3가 그 문서를 반환하게 할 수 있어요.

출처: 문서

본문

참고 일부 브라우저는 오류가 발생할 때 Amazon S3가 반환하는 오류 문서를 무시하고 자체 오류 메시지를 표시해요. 예를 들어 HTTP 404 Not Found 오류가 발생하면 Google Chrome이 Amazon S3가 반환한 오류 문서를 무시하고 자체 오류를 표시할 수 있어요.

Amazon S3 HTTP 응답 코드 (Amazon S3 HTTP response codes)

다음 표는 오류가 발생했을 때 Amazon S3가 반환하는 HTTP 응답 코드의 일부를 보여줘요.

HTTP 오류 코드 설명
301 Moved Permanently 사용자가 Amazon S3 웹사이트 엔드포인트(http://s3-website.Region.amazonaws.com/)로 직접 요청을 보내면, Amazon S3는 301 Moved Permanently 응답을 반환하고 그 요청을 https://aws.amazon.com/s3/로 리디렉션해요.
302 Found Amazon S3가 끝 슬래시가 없는 키 x(http://bucket-name.s3-website.Region.amazonaws.com/x)에 대한 요청을 받으면, 먼저 키 이름 x인 객체를 찾아요. 객체를 찾지 못하면 Amazon S3는 요청이 하위 폴더 x에 대한 것이라고 판단하고 끝에 슬래시를 추가해 요청을 리디렉션하며 302 Found를 반환해요.
304 Not Modified Amazon S3는 요청 헤더 If-Modified-Since, If-Unmodified-Since, If-Match 및/또는 If-None-Match를 사용해 요청된 객체가 클라이언트가 보유한 캐시된 복사본과 같은지 판단해요. 객체가 같으면 웹사이트 엔드포인트는 304 Not Modified 응답을 반환해요.
400 Malformed Request 사용자가 잘못된 리전 엔드포인트로 버킷에 접근하려 하면 웹사이트 엔드포인트는 400 Malformed Request로 응답해요.
403 Forbidden 사용자 요청이 공개적으로 읽을 수 없는 객체로 이어지면 웹사이트 엔드포인트는 403 Forbidden으로 응답해요. 객체 소유자는 버킷 정책이나 ACL로 객체를 공개적으로 읽을 수 있게 해야 해요.
404 Not Found 웹사이트 엔드포인트는 다음 이유로 404 Not Found로 응답해요. 웹사이트 URL이 존재하지 않는 객체 키를 가리킨다고 판단된 경우. 존재하지 않는 인덱스 문서에 대한 요청으로 추론된 경우. URL에 지정된 버킷이 존재하지 않는 경우. URL에 지정된 버킷은 존재하지만 웹사이트로 구성되지 않은 경우. 404 Not Found에 대해 반환되는 사용자 지정 문서를 만들 수 있어요. 문서가 웹사이트로 구성된 버킷에 업로드되고, 웹사이트 호스팅 구성이 그 문서를 사용하도록 설정되어 있는지 확인해요. Amazon S3가 URL을 객체 요청이나 인덱스 문서 요청으로 해석하는 방법은 인덱스 문서 구성을 참고하세요.
500 Service Error 내부 서버 오류가 발생하면 웹사이트 엔드포인트는 500 Service Error로 응답해요.
503 Service Unavailable Amazon S3가 요청 빈도를 줄여야 한다고 판단하면 웹사이트 엔드포인트는 503 Service Unavailable로 응답해요.

이러한 각 오류에 대해 Amazon S3는 미리 정의된 HTML 메시지를 반환해요. 다음은 403 Forbidden 응답에 대해 반환되는 HTML 메시지의 예시예요.

사용자 지정 오류 문서 구성 (Configuring a custom error document)

버킷을 정적 웹사이트로 구성할 때, 사용자 친화적인 오류 메시지와 추가 도움말이 담긴 사용자 지정 오류 문서를 제공할 수 있어요. Amazon S3는 HTTP 4XX 클래스의 오류 코드에 대해서만 사용자 지정 오류 문서를 반환해요.

S3 콘솔로 사용자 지정 오류 문서를 구성하려면 다음 단계를 따라요. REST API, AWS SDK, AWS CLI, CloudFormation으로도 오류 문서를 구성할 수 있어요. 자세한 내용은 다음을 참고하세요.

버킷에 정적 웹사이트 호스팅을 활성화할 때 오류 문서 이름(예: 404.html)을 입력해요. 버킷에 정적 웹사이트 호스팅을 활성화한 뒤에는 이 오류 문서 이름과 같은 HTML 파일을 버킷에 업로드해요.

오류 문서를 구성하는 방법은 다음과 같아요.

  1. 예를 들어 404.html 같은 오류 문서를 만들어요.
  2. 오류 문서 파일을 로컬에 저장해요. 오류 문서 이름은 대소문자를 구분하며, 정적 웹사이트 호스팅을 활성화할 때 입력한 이름과 정확히 일치해야 해요. 예를 들어 Static website hosting 대화 상자의 Error document 이름에 404.html을 입력했다면, 오류 문서 파일 이름도 404.html이어야 해요.
  3. AWS Management Console에 로그인하고 https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 열어요.
  4. 왼쪽 탐색 창에서 General purpose buckets를 선택해요.
  5. 버킷 목록에서 정적 웹사이트 호스팅에 사용할 버킷 이름을 선택해요.
  6. 버킷에 정적 웹사이트 호스팅을 활성화하고 오류 문서의 정확한 이름(예: 404.html)을 입력해요. 자세한 내용은 웹사이트 호스팅 활성화와 사용자 지정 오류 문서 구성을 참고하세요. 정적 웹사이트 호스팅을 활성화한 뒤 7단계로 진행해요.
  7. 오류 문서를 버킷에 업로드하려면 다음 중 하나를 수행해요. 오류 문서 파일을 콘솔의 버킷 목록에 끌어다 놓거나, Upload를 선택해 프롬프트에 따라 인덱스 파일을 선택해 업로드해요. 단계별 안내는 객체 업로드를 참고하세요.

더 알아보기 (Learn more)