Amazon Simple Storage Service(Amazon S3) 워크로드가 매우 많을 때(요청 빈도 및 성능 지침에 설명된 요청 빈도 초과), Amazon S3 성능이 워크로드에 맞게 확장되지 않습니다. 이 경우 가끔 HTTP 500 또는 503 오류가 발생합니다. 대량 요청을 처리하도록 Amazon S3 버킷 성능을 최적화하려면 어떻게 하면 됩니까?

중요: 이 정보는 요청 빈도 및 성능 지침에 설명된 요청 빈도를 초과하는 워크로드에만 적용됩니다. 다음 해결 방법은 워크로드가 적은 경우에는 필요하지 않습니다.

Amazon S3는 각 AWS 리전에 객체 키 이름의 인덱스를 유지합니다. 객체 키는 인덱스의 여러 파티션에서 UTF-8 이진 순서대로 저장됩니다. 키 이름은 키가 저장된 파티션을 결정합니다. 타임스탬프 또는 알파벳 순서와 같은 순차적 접두사를 사용하면 Amazon S3에서 많은 키에 대해 특정 파티션을 대상으로 삼을 확률이 증가하여 파티션의 I/O 용량이 모자랄 수 있습니다.

워크로드에 다양한 요청 유형이 포함될 경우 키 이름에 해시 문자열을 접두사로 추가하여 키 이름에 임의성을 추가합니다. 키 이름에 임의성을 추가하면 I/O 로드가 여러 인덱스 파티션에 분산됩니다. 예를 들어 키로 할당하려는 문자 시퀀스의 MD5 해시를 계산하고 키 이름에 해시의 3~4자를 접두사로 추가할 수 있습니다. 다음 예제에서는 접두사로 추가된 4자 16진수 해시가 포함된 키 이름을 보여 줍니다. 

exampleawsbucket/232a-2019-14-03-15-00-00/cust1234234/photo1.jpg
exampleawsbucket/7b54-2019-14-03-15-00-00/cust3857422/photo2.jpg
exampleawsbucket/921c-2019-14-03-15-00-00/cust1248473/photo2.jpg
exampleawsbucket/ba65-2019-14-03-15-00-00/cust8474937/photo2.jpg
exampleawsbucket/8761-2019-14-03-15-00-00/cust1248473/photo3.jpg
exampleawsbucket/2e4f-2019-14-03-15-00-01/cust1248473/photo4.jpg
exampleawsbucket/9810-2019-14-03-15-00-01/cust1248473/photo5.jpg
exampleawsbucket/7e34-2019-14-03-15-00-01/cust1248473/photo6.jpg
exampleawsbucket/c34a-2019-14-03-15-00-01/cust1248473/photo7.jpg
...

4자 해시 접두사가 없는 경우 각 객체 이름이 exampleawsbucket/2019-14-03-15-00-0으로 시작하므로 Amazon S3는 이러한 모든 로드를 인덱스 파티션 1~2개에 분산할 수 있으며, 인덱스의 모든 객체는 영숫자 순으로 저장됩니다. 4자 해시 접두사는 로드가 여러 인덱스 파티션에 분산되도록 합니다.

워크로드에서 주로 GET 요청을 보내는 경우 키 이름에 임의성을 추가할 수 있습니다. 또한 Amazon CloudFront를 Amazon S3와 통합하면 짧은 지연 시간 및 높은 데이터 전송 속도로 콘텐츠를 사용자에게 배포할 수 있습니다.


페이지 내용이 도움이 되었습니까? | 아니요

AWS 지원 지식 센터로 돌아가기

도움이 필요하십니까? AWS 지원 센터를 방문하십시오.

게시된 날짜: 2017년 9월 25일

업데이트된 날짜: 2018년 7월 19일