모범 사례 설계 패턴: Amazon S3 성능 최적화 - Amazon Simple Storage Service

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

애플리케이션은 Amazon S3의 스토리지를 업로드하고 검색할 때 요청 성능에서 초당 수천 회의 트랜잭션을 쉽게 달성할 수 있습니다. Amazon S3는 높은 요청 빈도로 자동으로 조정됩니다. 예를 들어, 애플리케이션이 분할된 Amazon S3 접두사별로 초당 최소 3,500개의 PUT/COPY/POST/DELETE 또는 5,500개의 GET/HEAD 요청을 달성할 수 있습니다. 버킷의 접두사 수에는 제한이 없습니다. 병렬화를 사용하여 읽기 또는 쓰기 성능을 향상시킬 수 있습니다. 예를 들어, Amazon S3 버킷에서 접두사 10개를 만들어 읽기를 병렬화하는 경우 읽기 성능을 초당 읽기 요청 55,000개로 조정할 수 있습니다. 마찬가지로, 여러 접두사에 쓰면 쓰기 작업의 크기를 조정할 수 있습니다. 읽기 및 쓰기 작업 모두의 경우 크기 조정은 점진적으로 발생하며 즉각적이지 않습니다. Amazon S3가 더 높은 요청 비율에 맞춰 확장하는 동안 503(속도 저하) 오류가 발생할 수 있습니다. 이러한 오류는 크기 조정이 완료되면 사라집니다. 접두사 생성 및 사용에 대한 자세한 내용은 접두어를 사용한 객체 구성 단원을 참조하세요.

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 KMS를 사용한 서버 측 암호화를 사용하는 경우 사용 사례에 지원되는 요청 빈도에 대한 자세한 정보는 AWS Key Management Service 개발자 안내서의 AWS KMS 제한을 참조하세요.

다음 주제에서는 Amazon S3를 사용하는 애플리케이션의 성능을 최적화하기 위한 모범 사례 지침과 설계 패턴에 대해 설명합니다. Amazon S3 성능 최적화에 대한 최신 정보는 Amazon S3 성능 지침Amazon S3의 성능 디자인 패턴 섹션을 참조하십시오.

참고

Amazon S3 Express One Zone 스토리지 클래스를 디렉터리 버킷과 함께 사용하는 방법에 대한 자세한 내용은 디렉터리 버킷 및 S3 Express One Zone디렉터리 버킷 개요 섹션을 참조하세요.