S3 Files가 과금되는 방식
S3 Files가 과금되는 방식 (How S3 Files is metered)
S3 Files는 S3 버킷에 연결된 공유 파일 시스템으로, 비용을 활성 작업 집합에 비례하게 유지하면서 저지연 파일 액세스를 제공하도록 설계되었어요. 파일 시스템은 버킷의 객체에 대한 뷰를 유지하고 파일 시스템 작업을 사용자 대신 효율적인 S3 요청으로 지능적으로 변환해요. 파일 시스템을 통해 특정 파일과 디렉터리로 작업하면 관련 파일 메타데이터와 내용이 파일 시스템의 고성능 스토리지에 배치되며, 특히 저지연 액세스의 이점이 있는 부분이 그렇고요. 많은 읽기 작업은 파일 시스템을 완전히 우회해 S3 GET 요청 요금으로 S3 버킷에서 직접 데이터를 제공하며 S3 파일 데이터 요금이 없어요. 사용자의 권위 있는 데이터는 항상 S3 버킷에 남아 있어요. 데이터를 쓰면 파일 시스템의 내구성이 높은 고성능 스토리지에 저장된 다음 S3 버킷으로 다시 동기화되어 파일 시스템과 S3 버킷이 양방향으로 일관되게 유지돼요.
S3 Files를 사용하면 파일 시스템의 고성능 스토리지에 있는 활성 데이터 비율에 대한 스토리지 요금을 지불하고, 파일 시스템의 고성능 스토리지에서 읽고 쓸 때 데이터 액세스 요금을 지불해요. 이 페이지에서는 각 차원이 어떻게 과금되는지 설명해 비용을 이해하고 최적화할 수 있게 해줘요. AWS 리전별 요금은 Amazon S3 요금을 참고하세요.
출처: 문서
본문
파일 시스템 스토리지 과금 방식
데이터에 액세스하면 파일 시스템은 파일 메타데이터와 내용의 일부를 온디맨드로 파일 시스템의 고성능 스토리지에 로드해 전체 데이터셋을 복제하지 않고도 빠른 읽기를 제공해요. 어떤 파일을 고성능 스토리지에 저장할지 결정하는 파일 크기 임계값(기본 128 KiB)을 구성해요. 이 임계값 이하의 파일은 저지연 액세스의 이점을 가장 많이 받아요. 임계값을 초과하는 파일은 S3 버킷에서 직접 스트리밍되며 S3 Files 스토리지 요금이 발생하지 않아요. 구성 가능한 기간(1~365일, 기본 30일) 내에 액세스되지 않은 데이터는 고성능 스토리지에서 자동으로 만료돼요. 고성능 스토리지에 있는 활성 데이터 비율에 대한 스토리지 요금을 지불해요. 일반적으로 대용량 파일은 S3 버킷에서 직접 스트리밍되고 만료된 데이터는 자동으로 만료되며 저지연에 민감한 작은 파일만 고성능 스토리지에 저장되므로 그 비율은 작아요. 고성능 스토리지의 최소 과금 파일 크기는 10 KiB예요.
데이터 액세스 과금 방식
메타데이터 작업과 파일 시스템의 고성능 스토리지에 대한 읽기 및 쓰기에 대해 데이터 액세스 요금을 지불해요. 대용량 파일 읽기(1MiB 이상의 파일 IO)는 데이터가 파일 시스템의 고성능 스토리지에 있더라도 항상 S3 버킷에서 직접 스트리밍돼요. S3는 고처리량 읽기에 최적화되어 있고 고성능 스토리지는 저지연 소규모 파일 액세스에 최적화되어 있어요. 직접 읽기는 파일 읽기 요금 없이 S3 GET 요청과 S3 Files 메타데이터 읽기(4 KiB)를 발생시켜요. 백그라운드 동기화 작업도 데이터 액세스 요금과 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 메트릭을 사용해 메타데이터 사용량을 모니터링할 수 있어요. 메타데이터 만료는 요금을 발생시키지 않아요. chown과 chmod 같은 POSIX 메타데이터 변경은 S3 버킷의 객체를 업데이트해요. S3 객체는 불변하므로 S3 Files는 업데이트된 메타데이터로 객체의 새 버전을 쓰며, 이는 S3 PUT 요청과 S3 Files 내보내기로 측정돼요. 각 메타데이터 변경은 객체의 추가 버전을 만들어요.
과금 예시
큰 디렉터리를 처음 나열하기
디렉터리를 처음 나열하면 S3 Files는 해당 디렉터리의 모든 파일 메타데이터를 가져와요. 각 파일의 메타데이터 가져오기는 4KiB 쓰기로 측정돼요. 가져오기 구성(기본 128KiB)에 따라 S3 Files는 최저 지연 시간에 최적화하기 위해 해당 디렉터리의 작은 파일 데이터도 파일 시스템의 고성능 스토리지로 미리 가져와 복사해요. 각 파일의 데이터 가져오기는 파일 크기(최소 32KiB)의 쓰기로 측정돼요. 가져오기 규칙을 구성해 어떤 파일의 데이터가 가져와지는지 제어할 수 있어요. 자세한 내용은 S3 Files 동기화 사용자 지정을 참고하세요.
고성능 스토리지에 저장되지 않은 작은 파일 읽기
S3 Files는 S3 버킷에서 클라이언트로 직접 읽기를 스트리밍하고 데이터를 파일 시스템의 고성능 스토리지로 비동기적으로 가져와 이후 읽기가 더 빠르도록 해요. 이는 전송된 데이터 크기(최소 32KiB)의 파일 시스템 읽기로 측정돼요. 고성능 스토리지로 데이터를 비동기적으로 가져오는 것은 전송된 데이터 크기의 쓰기로 측정돼요. 파일 시스템에서 데이터가 만료된 파일을 읽을 때도 유사한 프로세스가 수행돼요. 고성능 스토리지에서 파일이 만료되면 파일 시스템 작업 요금이 발생하지 않아요.
파일 시스템에 쓰기
모든 파일 쓰기는 고성능 스토리지에 저장되며 쓴 데이터 크기(최소 32KiB)로 측정돼요. S3 Files는 같은 파일에 대한 연속 변경 사항을 집계하기 위해 쓰기 활동이 없는 기간(60초)을 기다린 다음 S3 버킷으로 복사해요. 빠른 쓰기는 각 개별 변경에 대한 새 객체 버전을 생성하는 대신 단일 S3 PUT으로 캡처돼요. 이렇게 하면 S3 요청 비용과 파일 고성능 스토리지 비용이 모두 줄어들어요. 이 버킷 동기화는 고성능 스토리지에서 읽은 데이터에 대한 파일 시스템 읽기와 S3 PUT 요청으로 측정돼요.