Catarie를 배포한지 약 이틀이 지나고 자다가 AWS 알람메일이 왔다. S3 put 요청이 2천회를 넘긴 것 이다.
아직 주변 지인들에게만 소개했던 서비스인데 어떻게 이렇게 인기 폭발(?)이라고 생각한 것도 잠시 조금만 생각해보니 당연한 것이었다.
이전에 다른 글에서도 설명했는데, HLS 스트리밍 프로토콜을 사용하게되면, 원본 음원이나 영상이 .m3u8 확장자의 플레이어 리스트 파일과 *.ts 확장자로 이루어진 세그먼트들이 지정된 서버의 저장소로 저장되게 되는데, 이것이 청크의 단위를 짧게 할수록 영상의 끊김은 없을수 있지만 대신 그만큼 ts파일이 많아진다.

Amazon S3에서는 저 파일 하나당 PUT 요청 1회로 치는 것이다. 그리고 나의 경우 원본 데이터, 해상도별 썸네일까지 한 컨텐츠에 추가로 4번 더 PUT 요청이 발생하는 것이다. 위의 영상만해도 약 2~3 MB 밖에 되지 않지만 PUT 요청은 28회하게 된 것이다.
그래도 다행히 S3 는 사용량에 비해 가격 단가가 상당히 낮은 수준이다. 일반적으로는 1,000 건당 $0.005 라서 사실상 1,000 건당 6~7원 정도 인 셈이다.
진짜 비용이 나가는 부분은 스토리지(GB) 쪽이다. 하지만 Catarie의 경우 회원등급에 따라 일일 업로드회수가 제한되어있고, 그 용량도 한정적이므로 당장 유저가 엄청 많지 않은 이상 부담가지 않는다.
하지만 만약 나중에 유저수가 늘어난다면 아래의 것들을 고려해봐야한다.
- 멀티파트 파트 크기 키우기
(8MB → 32MB) → UploadPart 횟수↓ - LIST 호출 최소화
폴더 브라우징 대신 단건 HeadObject/GetObject - HLS 세그먼트 길이 늘리기
(6초 → 10초) → 세그먼트 수↓ → PUT↓ - Presigned URL 정책 강화
1회성 토큰·짧은 만료
'Typescript' 카테고리의 다른 글
| [js, ts] 시간 계산에 getTime()을 쓰면 좋은 이유 (0) | 2025.12.25 |
|---|---|
| [TypeScript] Type vs Interface (0) | 2025.10.14 |
| [TypeScript] module/ moduleResolution 에러 해결과 옵션 정리 (1) | 2025.09.01 |
| [TypeScript] TS Cheat Sheet (Type, Interface) (0) | 2025.08.19 |
| 배열 관련 메서드 (0) | 2024.10.22 |