S3 Files 측정 방법
S3 Files는 S3 버킷에 연결된 공유 파일 시스템으로서, 활성 작업 세트에 비례하는 비용으로 지연 시간이 짧은 파일 액세스를 제공하도록 설계되었습니다. 파일 시스템은 버킷의 객체에 대한 보기를 제공하며, 사용자를 대신하여 파일 시스템 작업을 효율적인 S3 요청으로 지능적으로 변환합니다. 파일 시스템을 통해 특정 파일 및 디렉터리에 대한 작업을 할 때는 관련 파일 메타데이터 및 콘텐츠가 파일 시스템의 고성능 스토리지에 저장됩니다. 특히 지연 시간이 짧은 액세스가 필요한 부분이 우선적으로 저장됩니다. 많은 읽기 작업은 파일 시스템을 완전히 우회하여 S3 버킷에서 직접 데이터를 제공받으며, S3 파일 데이터 요금 없이 S3 GET 요청 속도로 처리됩니다. 신뢰할 수 있는 데이터는 항상 S3 버킷에 유지됩니다. 데이터를 쓰면, 데이터가 파일 시스템의 내구성이 뛰어난 고성능 스토리지에 저장된 후 S3 버킷과 동기화되어 파일 시스템과 S3 버킷 간의 양방향 일관성을 유지합니다.
S3 Files를 사용하면 파일 시스템의 고성능 스토리지에서 활성 데이터의 비율에 따라 스토리지 요금이 부과되며, 파일 시스템의 고성능 스토리지에서 읽고 쓸 때 데이터 액세스 요금이 부과됩니다. 이 페이지에서는 비용을 이해하고 최적화할 수 있도록 각 차원을 측정하는 방법을 설명합니다. AWS 리전별 요금은 Amazon S3 요금
파일 시스템 스토리지 측정 방법
데이터에 액세스할 때 파일 시스템은 온디맨드 방식으로 파일 메타데이터와 콘텐츠의 일부를 고성능 스토리지에 로드하여 전체 데이터세트를 복제하지 않고도 빠른 읽기를 제공합니다. 파일 크기 임계값(기본값 128KiB)을 설정하여 고성능 스토리지에 저장할 파일을 결정합니다. 이 임계값 이하의 파일은 지연 시간이 짧은 액세스의 이점을 가장 많이 누릴 수 있습니다. 임계값을 초과하는 파일은 S3 버킷에서 직접 스트리밍되며 S3 파일 스토리지 요금이 발생하지 않습니다. 구성 가능한 기간(1~365일, 기본값 30) 내에 액세스되지 않은 데이터는 고성능 스토리지에서 자동으로 만료됩니다. 고성능 스토리지에 저장된 활성 데이터의 비율에 따라 스토리지 요금이 부과됩니다. 일반적으로 대용량 파일은 S3 버킷에서 직접 스트리밍되고, 오래된 데이터는 자동으로 만료되며, 지연 시간에 민감한 작은 파일만 고성능 스토리지에 저장되므로 이 비율은 낮습니다. 고성능 스토리지에서 요금이 부과되는 최소 파일 크기는 10KiB입니다.
데이터 액세스 측정 방식
데이터 액세스 요금은 메타데이터 작업과 파일 시스템의 고성능 스토리지를 사용한 읽기/쓰기 작업에 대해 부과됩니다. 대용량 파일 읽기(1MiB 이상)는 데이터가 파일 시스템의 고성능 스토리지에 있더라도 항상 S3 버킷에서 직접 스트리밍됩니다. S3는 높은 처리량의 읽기에 최적화되어 있으며, 고성능 스토리지는 지연 시간이 짧은 파일 액세스에 최적화되어 있습니다. 직접 읽기 작업에는 S3 GET 요청과 S3 파일 메타데이터 읽기(4KiB)가 발생하며, 파일 읽기 요금은 부과되지 않습니다. 백그라운드 동기화 작업에도 데이터 액세스 요금과 S3 요청 요금이 부과됩니다. 데이터를 고성능 스토리지로 가져오면 쓰기 요금이 발생하고 변경 사항을 S3 버킷으로 다시 내보내면 읽기 요금이 발생합니다.
파일 시스템의 데이터 액세스 측정 방식
S3 Files는 모든 파일 시스템 작업을 읽기 또는 쓰기로 측정하며, 이는 파일 또는 메타데이터에 적용됩니다. 각 작업에는 최소 측정 크기가 있으며, 그 값은 다음 1KiB 단위로 반올림됩니다. 모든 작업은 데이터 읽기, 메타데이터 읽기, 데이터 쓰기, 메타데이터 쓰기의 네 가지 범주 중 하나 또는 두 가지에 속합니다. 예를 들어, 파일을 읽는 작업은 데이터 읽기와 메타데이터 읽기로 측정되며, 파일 이름을 변경하는 작업은 메타데이터 읽기와 메타데이터 쓰기로 측정됩니다. 단일 작업이 두 가지 이상의 범주로 측정되는 경우는 없습니다.
고성능 스토리지에서 파일 읽기는 읽은 데이터 크기로 측정되며, 읽기 작업당 최소 32KiB가 적용됩니다.
고성능 스토리지에 파일 쓰기는 쓴 데이터 크기로 측정되며, 쓰기 작업당 최소 32KiB가 적용됩니다.
메타데이터 읽기는 최소 4KiB 크기로 측정되며 S3 Files 읽기로 적용됩니다. 메타데이터 읽기 작업의 예로는 디렉터리 나열 및 파일 속성 보기가 있습니다.
메타데이터 쓰기는 최소 4KiB 크기로 측정되며 S3 Files 쓰기로 적용됩니다. 메타데이터 쓰기 작업의 예로는 파일 및 디렉터리 생성 또는 삭제, 이름 변경, 권한 변경, fsync 직접 호출 등이 있습니다.
S3 버킷에서 직접 스트리밍의 측정 방식
S3 Files는 두 가지 경우에 S3 버킷에서 파일을 직접 읽어 스트리밍합니다. 파일 데이터가 고성능 스토리지에 저장되어 있지 않은 경우와 데이터가 고성능 스토리지에 있더라도 1MiB 이상의 읽기인 경우가 그것입니다. 이 설계는 각 스토리지 계층의 강점을 반영합니다. S3 버킷은 높은 처리량에 최적화되어 있고, 파일 시스템은 지연 시간이 짧은 액세스에 최적화되어 있습니다.
작은 파일(기본적으로 128KiB 미만)의 경우, S3 Files는 데이터를 고성능 스토리지로 비동기적으로 가져와 이후 읽기 작업을 짧은 지연 시간으로 처리합니다. 버킷에서 직접 스트리밍하는 경우, S3 GET 요청과 S3 Files 메타데이터 읽기(4KiB)에 대한 요금이 부과되며, 파일 읽기 요금은 부과되지 않습니다.
버킷 동기화 측정 방식
S3 Files는 파일 시스템 및 연결된 S3 버킷을 자동으로 동기화된 상태로 유지합니다. 동기화는 파일 읽기, 파일 쓰기 및 S3 요청 요금으로 측정됩니다. 자세한 내용은 동기화 작동 방식 이해 섹션을 참조하세요.
파일 시스템으로 데이터 가져오기: S3가 설정에 따라 S3 버킷에서 고성능 스토리지로 데이터를 복사하면 작업이 파일 시스템 쓰기로 측정됩니다. 가져오기 쓰기는 디렉터리에 처음 액세스할 때, 고성능 스토리지에 저장되지 않은 파일을 읽을 때, 그리고 S3 Files가 S3 버킷에 직접 적용된 변경 사항을 반영할 때 발생합니다. 측정되는 크기는 고성능 스토리지에 기록된 데이터 양과 메타데이터 쓰기 양을 합한 것입니다.
S3 버킷으로 변경 사항 내보내기: S3 Files가 파일 시스템을 복사하여 S3 버킷으로 다시 변경하면 작업이 파일 시스템 메타데이터 및 파일 읽기로 측정됩니다. 고성능 스토리지에서 읽은 데이터만 이 요금에 포함됩니다. 예를 들어 파일에 데이터를 추가하는 경우, S3 Files는 추가 전에 UploadPartCopy를 사용하여 전체 객체를 고성능 스토리지로 가져오지 않도록 합니다. 이렇게 하면 고성능 스토리지 비용이 최적화됩니다.
이름 변경 및 이동 작업: S3 버킷은 기본적으로 디렉터리 또는 이름 변경을 지원하지 않습니다. S3 파일 시스템에서 디렉터리로 표시되는 것은 버킷 내 객체 키에서 공유하는 공통 접두사이며, S3 객체는 변경할 수 없습니다. 따라서 파일 이름을 바꾸거나 파일을 이동할 때 S3 Files는 업데이트된 키(S3 PUT 요청으로 측정됨)를 사용하여 새 객체에 데이터를 복사하고 원본을 삭제합니다. 동기화는 데이터 위치에 따라 메타데이터 읽기 및 파일 읽기로 측정됩니다. 파일 데이터가 고성능 스토리지에 저장되지 않은 경우 4KiB의 메타데이터 읽기만 적용됩니다. 파일 이름 변경 또는 디렉터리 이동 시 S3 Files는 해당 접두사 아래의 모든 객체에 대해 이 복사 및 삭제 작업을 반복합니다. 자세한 내용은 이름 바꾸기 및 이동 작업의 영향 이해 섹션을 참조하세요.
파일 데이터 만료: 1일에서 365일(기본값 30일)까지 구성 가능한 기간 내에 액세스되지 않은 파일 데이터는 고성능 스토리지에서 자동으로 만료됩니다. 만료 시 데이터 액세스 또는 메타데이터 요금이 발생하지 않습니다.
메타데이터 업데이트: 파일 시스템 메타데이터(inode)는 연결된 S3 버킷의 콘텐츠를 반영합니다. 버킷이 변경되면 메타데이터도 버킷의 최신 상태와 일치하도록 업데이트됩니다. 액세스된 디렉터리의 메타데이터는 만료되지 않습니다. Inodes CloudWatch 지표를 사용하여 메타데이터 사용량을 모니터링할 수 있습니다. 메타데이터 만료에는 요금이 부과되지 않습니다.
측정 예
처음으로 큰 디렉터리 나열
디렉터리를 처음 나열하면 S3 Files가 해당 디렉터리의 모든 파일에 대한 메타데이터를 가져옵니다. 각 파일의 메타데이터 가져오기는 4KiB 쓰기로 측정됩니다. 가져오기 구성(기본값 128KiB)에 따라 S3 Files는 해당 디렉터리의 작은 파일에 대한 데이터를 미리 가져와 파일 시스템의 고성능 스토리지에 복사하여 지연 시간을 최소화하도록 최적화합니다. 각 파일의 데이터 가져오기는 파일 크기(최소 32KiB)의 쓰기로 측정됩니다. 가져오기 규칙을 구성하여 데이터를 가져오는 파일을 제어할 수 있습니다. 자세한 내용은 S3 Files에 대한 동기화 사용자 지정 섹션을 참조하세요.
고성능 스토리지에 저장되지 않은 작은 파일 읽기
S3 Files는 S3 버킷에서 클라이언트로 직접 데이터를 읽어온 후, 파일 시스템의 고성능 스토리지에 비동기적으로 데이터를 가져와 향후 읽기 속도를 향상시킵니다. 이는 전송된 데이터의 크기(최소 32KiB)로 파일 시스템 읽기로 측정됩니다. 파일 시스템의 고성능 스토리지에 데이터를 비동기적으로 가져오는 작업은 전송된 데이터 크기의 쓰기로 측정됩니다. 파일 시스템에서 데이터가 만료된 파일을 읽을 때도 비슷한 프로세스가 수행됩니다. 파일이 고성능 스토리지에서 만료되면 파일 시스템 작업 요금이 발생하지 않습니다.
파일 시스템에 쓰기
모든 파일 쓰기는 고성능 스토리지에 저장되며, 최소 32KiB의 쓴 데이터 크기로 측정됩니다. S3 파일은 S3 버킷에 복사하기 전에 동일한 파일에 대한 연속 변경 사항을 집계하기 위해 비활성 쓰기 활동 기간(60초) 동안 기다립니다. 빠른 쓰기 작업은 각 변경 사항마다 새 객체 버전을 생성하는 대신 단일 S3 PUT에 캡처됩니다. 이렇게 하면 S3 요청 비용과 파일 고성능 스토리지 비용이 모두 절감됩니다. 이 버킷 동기화는 고성능 스토리지에서 읽은 데이터에 대한 파일 시스템 읽기와 표준 S3 PUT 요청으로 측정됩니다.