성능 사양

성능 사양 (Performance specifications)

S3 Files는 용량을 프로비저닝하거나 관리할 필요 없이 워크로드에 맞게 처리량과 IOPS를 자동으로 확장해요. 이 페이지에서는 S3 Files의 성능 특성을 설명해요.

출처: 문서

본문

성능 요약

사양 값
파일 시스템당 총 읽기 처리량 초당 최대 테라바이트
파일 시스템당 총 쓰기 처리량 1–5 GiB/s
S3 Files가 적용된 S3 버킷당 최대 읽기 IOPS 제한 없음(같은 버킷에 여러 파일 시스템 연결)
S3 Files가 적용된 S3 버킷당 최대 쓰기 IOPS 제한 없음(같은 버킷에 여러 파일 시스템 연결)
파일 시스템당 최대 읽기 IOPS 250,000
파일 시스템당 최대 쓰기 IOPS 50,000
클라이언트당 최대 읽기 처리량 3 GiB/s

S3 Files가 성능을 제공하는 방식

S3 Files는 두 개의 스토리지 계층에서 데이터를 제공하며 각 작업을 그에 가장 적합한 계층으로 자동 라우팅해요.

  • 고성능 스토리지(High-performance storage) – 파일 시스템 내의 저지연 스토리지 계층으로, 적극적으로 사용되는 파일 데이터와 메타데이터가 이곳에 위치해요. S3 Files는 이 스토리지를 자동으로 관리하며, 파일에 액세스할 때 데이터를 복사하고 구성 가능한 만료 기간 안에 읽히지 않은 데이터를 제거해요. 고성능 스토리지에 있는 데이터에 대해 스토리지 요금을 지불해요.
  • S3에서 직접(Direct from S3) – S3 Files는 두 가지 경우에 S3 버킷에서 파일 읽기를 직접 스트리밍해요. 파일 데이터가 파일 시스템의 고성능 스토리지에 저장되지 않은 경우와 데이터가 파일 시스템의 고성능 스토리지에도 있더라도 1MiB 이상의 대용량 읽기인 경우예요. S3 버킷은 높은 처리량에 최적화되어 있고 파일 시스템의 고성능 스토리지 계층은 저지연 액세스에 최적화되어 있어요. S3 버킷에서 직접 데이터를 스트리밍하는 이 계층화 방식은 순차 읽기에 높은 처리량을 제공해 분석, 미디어 처리 및 기타 스트리밍 워크로드에 적합해요. S3 Files는 작은 파일(< 기본 128 KiB)의 데이터를 파일 시스템의 고성능 스토리지로 비동기적으로 가져와 이후 읽기에서 저지연 액세스를 제공해요.

S3 Files는 이 2계층 모델을 자동으로 적용하므로 지연 시간과 처리량 사이에서 선택할 필요가 없어요. 소규모 파일 워크로드는 파일 시스템 성능을 얻고, 대용량 파일 워크로드는 S3 처리량을 얻으며, 혼합 워크로드는 둘 다 얻어요.

읽기 성능

읽기 처리량은 연결된 컴퓨팅 인스턴스 수와 각 인스턴스 내의 병렬 처리 수준에 따라 확장돼요. 클라이언트당 최대 읽기 처리량은 3 GiB/s예요. S3 Files는 파일 시스템당 초당 최대 테라바이트의 총 읽기 처리량과 최대 250,000 읽기 IOPS를 지원해요.

쓰기 성능

쓰기는 고성능 스토리지로 가며 즉시 내구성이 확보돼요. 리전에 따라 S3 Files는 1–5 GiB/s의 총 쓰기 처리량과 파일 시스템당 최대 50,000 쓰기 IOPS를 지원해요. 쓰기 성능은 워크로드 활동에 따라 탄력적으로 확장돼요.

파일 시스템에서 파일을 수정하면 S3 Files는 약 60초를 기다리며 그 시간 동안 파일에 대한 연속적인 변경 사항을 집계한 다음 S3 버킷으로 복사해요. 즉 같은 파일에 대한 빠른 연속 쓰기는 매 개별 변경마다 새 객체 버전을 생성하는 대신 단일 S3 PUT 요청으로 캡처되어 S3 요청 비용과 스토리지 비용을 줄여줘요. S3 Files가 변경 사항을 S3 버킷으로 다시 복사한 후에도 파일을 계속 수정하면 필요에 따라 후속 변경 사항을 복사해요.

첫 액세스 지연 시간

디렉터리에 처음 액세스하면 S3 Files는 해당 디렉터리의 모든 파일 메타데이터를 가져오고, 가져오기 구성에 따라 작은 파일의 데이터도 가져와요. 따라서 초기 액세스는 이후 작업보다 오래 걸려요. 한 번 가져오면 이후 모든 디렉터리 목록과 파일 액세스는 낮은 지연 시간으로 반환돼요.

동기화 성능

S3 Files는 백그라운드에서 파일 시스템과 S3 버킷 간 변경 사항을 동기화해요.

  • S3에서 변경 사항 가져오기 – 다른 애플리케이션이 S3 버킷에서 객체를 추가하거나 수정하면 S3 Files는 일반적으로 몇 초 내에 변경 사항을 파일 시스템에 반영해요. S3 Files는 파일 시스템당 초당 최대 2,400개의 객체 변경을 처리하며 가져오기 데이터 처리량은 초당 최대 700MB예요.
  • S3로 변경 사항 내보내기 – 파일 시스템을 통해 파일을 쓰면 S3 Files는 약 60초 동안 변경 사항을 일괄 처리해 빠른 연속 쓰기를 단일 S3 객체 버전으로 통합해 S3 요청 및 스토리지 버전 비용을 줄여요. 일괄 처리 기간 후 S3 Files는 파일을 S3 버킷으로 복사해요. S3 Files는 파일 시스템당 초당 최대 800개 파일을 내보내며 내보내기 데이터 처리량은 초당 최대 2,700MB예요.
작업 메트릭 값 단위
S3 버킷에서 가져오기 IOPS 2,400 파일 시스템당 초당 객체 수
S3 버킷에서 가져오기 처리량 700 초당 메가바이트
S3 버킷으로 내보내기 IOPS 800 파일 시스템당 초당 파일 수
S3 버킷으로 내보내기 처리량 2,700 초당 메가바이트

Amazon S3는 객체가 키 이름으로 식별되는 플랫한 저장 구조를 사용해요. S3 Files는 디렉터리에서 데이터를 구성할 수 있게 해주지만 S3에는 기본적인 디렉터리 개념이 없어요. 파일 시스템에서 디렉터리로 보이는 것은 S3 버킷 내 객체 키가 공유하는 공통 프리픽스예요. 또한 S3 객체는 불변이며 원자적 이름 변경(atomic rename)을 지원하지 않아요. 결과적으로 파일 이름을 바꾸거나 이동하면 S3 Files는 데이터를 업데이트된 키를 가진 새 객체에 쓰고 원본을 삭제해야 해요. 디렉터리 이름을 바꾸거나 이동하면 S3 Files는 해당 프리픽스를 공유하는 모든 객체에 대해 이 프로세스를 반복해야 해요. 따라서 수천만 개의 파일이 있는 디렉터리 이름을 바꾸거나 이동하면 S3 요청 비용과 동기화 시간이 크게 늘어나요. 파일 시스템에서는 이름 변경이 즉시 이루어지지만 100,000개 파일의 디렉터리 이름 변경은 S3 버킷에 완전히 반영되는 데 몇 분이 걸려요. 자세한 내용은 이름 변경 및 이동 작업의 영향 이해하기를 참고하세요.

워크로드가 동기화 속도보다 더 빠르게 변경 사항을 생성하면 S3 Files는 변경 사항을 대기열에 넣고 순서대로 처리해요. PendingExports CloudWatch 메트릭을 사용해 대기 중인 내보내기 수를 모니터링할 수 있어요. 자세한 내용은 Amazon CloudWatch로 S3 Files 모니터링을 참고하세요.

성능 모니터링

Amazon CloudWatch를 사용해 파일 시스템의 성능을 모니터링할 수 있어요. S3 Files는 시간에 따른 처리량과 IOPS를 추적하는 데 사용할 수 있는 DataReadBytes, DataWriteBytes, MetadataReadBytes, MetadataWriteBytes 같은 메트릭을 게시해요. 자세한 내용은 Amazon CloudWatch로 S3 Files 모니터링을 참고하세요.