Skip to main content
본 한국어 번역은 사용자 편의를 위해 제공되는 기계 번역입니다. 영어 버전과 한국어 버전이 서로 어긋나는 경우에는 언제나 영어 버전이 우선합니다.

S3 REST API 구현을 위한 권장사항

기여자

StorageGRID와 함께 사용할 S3 REST API를 구현할 때는 다음 권장 사항을 따라야 합니다.

존재하지 않는 객체에 대한 헤드 권장 사항

응용 프로그램에서 개체가 실제로 존재할 것으로 예상하지 않는 경로에 개체가 있는지 정기적으로 확인하는 경우 "사용 가능"을 사용해야 "정합성"합니다. 예를 들어, 응용 프로그램이 해당 위치에 배치하기 전에 해당 위치를 헤딩하는 경우 "사용 가능한" 일관성을 사용해야 합니다.

그렇지 않으면 헤드 작업에서 객체를 찾지 못할 경우 같은 사이트에 있는 두 개 이상의 스토리지 노드를 사용할 수 없거나 원격 사이트에 연결할 수 없는 경우 500개의 내부 서버 오류가 발생할 수 있습니다.

요청을 사용하여 각 버킷에 대해 "사용 가능한" 일관성을 설정하거나 개별 API 작업에 대한 요청 헤더에서 일관성을 지정할 수 "버킷 일관성을 유지합니다"있습니다.

개체 키에 대한 권장 사항

버킷이 처음 생성된 시점을 기준으로 오브젝트 키 이름에 대한 다음 권장 사항을 따르십시오.

StorageGRID 11.4 또는 이전 버전에서 생성된 버킷
  • 개체 키의 처음 네 문자로 임의 값을 사용하지 마십시오. 이는 이전 AWS에서 권장하는 키 접두사와 다릅니다. 대신 와 같이 고유하지 않은 임의 접두사를 사용합니다 image.

  • 이전 AWS 권장 사항에 따라 키 접두사에 랜덤 및 고유 문자를 사용하려면 오브젝트 키에 디렉토리 이름이 접두사로 지정됩니다. 즉, 다음 형식을 사용합니다.

    mybucket/mydir/f8e3-image3132.jpg

    이 형식 대신:

    mybucket/f8e3-image3132.jpg

StorageGRID 11.4 이상에서 생성된 버킷

성능 모범 사례에 맞게 개체 키 이름을 제한하는 것은 필요하지 않습니다. 대부분의 경우 개체 키 이름의 처음 4개 문자에 임의의 값을 사용할 수 있습니다.

팁 단, 짧은 시간 내에 모든 오브젝트를 지속적으로 제거하는 S3 워크로드가 예외입니다. 이 사용 사례에 대한 성능 영향을 최소화하려면 키와 같은 1000개의 오브젝트마다 주요 이름의 앞부분을 다르게 지정해야 합니다. 예를 들어, S3 클라이언트가 일반적으로 초당 2,000개의 오브젝트를 기록하고 ILM 또는 버킷 라이프사이클 정책에 따라 3일 후에 모든 오브젝트를 제거한다고 가정해 보겠습니다. 성능에 미치는 영향을 최소화하기 위해 다음과 같은 패턴을 사용하여 키의 이름을 지정할 수 있습니다. /mybucket/mydir/yyyymmddhhmmss-random_UUID.jpg

"범위 읽기"에 대한 권장 사항

이 설정된 경우 "저장된 개체를 압축하는 전역 옵션"S3 클라이언트 응용 프로그램은 반환되는 바이트 범위를 지정하는 GetObject 작업을 수행하지 않아야 합니다. 이러한 "범위 읽기" 작업은 StorageGRID에서 요청된 바이트에 액세스하기 위해 개체의 압축을 효과적으로 해제해야 하기 때문에 비효율적입니다. 매우 큰 개체에서 작은 범위의 바이트를 요청하는 GetObject 작업은 특히 비효율적입니다. 예를 들어, 50GB의 압축된 개체에서 10MB 범위를 읽는 것은 비효율적입니다.

압축된 개체에서 범위를 읽으면 클라이언트 요청이 시간 초과될 수 있습니다.

참고 개체를 압축해야 하고 클라이언트 응용 프로그램에서 범위 읽기를 사용해야 하는 경우 응용 프로그램의 읽기 시간 초과를 늘리십시오.