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

모범 사례 설계 패턴: 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(Slow Down) 오류가 나타날 수 있어요. 확장이 완료되면 이 오류는 사라져요. 접두사 생성과 사용에 대한 자세한 내용은 접두사를 사용해 객체 구성을 참고하세요.

출처: 문서

본문

Amazon S3의 일부 데이터 레이크 애플리케이션은 페타바이트 단위의 데이터를 대상으로 하는 쿼리를 위해 수백만 또는 수십억 개의 객체를 스캔해요. 이런 데이터 레이크 애플리케이션은 Amazon EC2 인스턴스의 네트워크 인터페이스 활용을 최대화하는 단일 인스턴스 전송 속도를 달성하며, 단일 인스턴스에서 최대 100Gb/s에 이를 수 있어요. 그러고 나서 여러 인스턴스에서 처리량을 합산해 초당 수 테라비트를 얻어요.

소셜 미디어 메시징 애플리케이션처럼 지연 시간에 민감한 애플리케이션도 있어요. 이런 애플리케이션은 일관된 작은 객체 지연(큰 객체는 첫 바이트 출력 지연)을 약 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 Developer Guide의 AWS KMS 한도를 참고하세요.

다음 주제들은 Amazon S3를 사용하는 애플리케이션의 성능을 최적화하기 위한 모범 사례 지침과 설계 패턴을 설명해요. Amazon S3 성능 최적화에 대한 최신 정보는 Amazon S3 성능 지침과 Amazon S3 성능 설계 패턴을 참고하세요.

참고 디렉터리 버킷에서 Amazon S3 Express One Zone 스토리지 클래스를 사용하는 방법에 대한 자세한 내용은 S3 Express One Zone과 디렉터리 버킷 사용을 참고하세요.

관련 주제 (Topics)

더 알아보기 (Learn more)