View a markdown version of this page

소개 - 모범 사례 설계 패턴: Amazon S3 성능 최적화

소개

애플리케이션은 Amazon S3의 스토리지를 업로드하고 검색할 때 요청 성능에서 초당 수천 회의 트랜잭션을 쉽게 달성할 수 있습니다. Amazon S3은 높은 요청 빈도로 자동으로 조정됩니다. 예를 들어, 애플리케이션은 버킷의 접두사마다 초당 3,500개 이상의 PUT/COPY/POST/DELETE 요청 및 5,500개 이상의 GET/HEAD 요청을 달성할 수 있습니다. 버킷의 접두사 수에는 제한이 없습니다. 읽기를 병렬화하여 읽기 또는 쓰기 성능을 향상시킬 수 있습니다. 예를 들어, Amazon S3 버킷에서 접두사 10개를 만들어 읽기를 병렬화하는 경우 읽기 성능을 초당 읽기 요청 55,000개로 조정할 수 있습니다.

Amazon S3의 일부 데이터 레이크 애플리케이션은 페타바이트 이상의 데이터에 걸쳐 실행되는 쿼리에서 수백만 또는 수십억 개의 객체를 검색합니다. 이러한 데이터 레이크 애플리케이션으로 단일 인스턴스에서 최대 100Gb/s가 될 수 있는 Amazon EC2 인스턴스의 네트워크 인터페이스 사용을 극대화하는 단일 인스턴스 전송 속도를 달성합니다. 그런 다음 이러한 애플리케이션은 여러 인스턴스에서 처리량을 집계하여 초당 여러 테라비트를 얻습니다.

또 다른 예는 소셜 미디어 메시징 애플리케이션처럼 대기 시간에 민감한 애플리케이션입니다. 이러한 애플리케이션은 약 100~200밀리초의 일관된 작은 객체 대기 시간(큰 객체의 경우 첫 번째 바이트 출력 대기 시간)을 달성할 수 있습니다.

다른 AWS 서비스도 다른 애플리케이션 아키텍처의 성능을 가속화하는 데 도움이 됩니다. 예를 들어, 단일 HTTP 연결 또는 한 자릿수 밀리초 대기 시간에 비해 더 높은 전송 속도를 원한다면 Amazon S3으로 캐싱하기 위해 Amazon CloudFront 또는 Amazon ElastiCache를 사용합니다.

또한 클라이언트와 S3 버킷 간 장거리에 걸쳐 고속 데이터 전송을 원할 경우 Amazon S3 Transfer Acceleration을 사용합니다. Transfer Acceleration은 CloudFront에서 전 세계에 분산된 엣지 로케이션을 사용하여 지리적으로 먼 거리 간 데이터 전송을 가속화합니다.

Amazon S3 워크로드에서 AWS Key Management Service를 통한 서버 측 암호화(SSE-KMS)가 사용되는 경우 사용 사례에 지원되는 요청 빈도에 대한 자세한 내용은 AWS Key Management Service 개발자 가이드AWS KMS 제한 단원을 참조하세요.

다음 주제에서는 Amazon S3을 사용하는 애플리케이션의 성능을 최적화하기 위한 모범 사례 가이드와 설계 패턴에 대해 설명합니다.

이 가이드는 Amazon S3 성능 최적화에 대한 이전 가이드를 대체합니다. 예를 들어, 이전의 Amazon S3 성능 가이드에서는 잦은 데이터 검색 성능을 최적화하기 위해 해시된 문자를 사용하여 접두사 이름을 임의로 지정할 것을 권장했습니다. 그러나 더 이상 성능을 위해 접두사 이름을 무작위로 지정할 필요가 없으며 접두사에 대해 순차적 날짜 기반의 이름을 지정할 수 있습니다. Amazon S3의 성능 최적화에 대한 최신 정보는 성능 가이드성능 설계 패턴을 참조하세요.