6.4 클라우드·오브젝트 스토리지 아카이브
S3 호환 오브젝트 스토리지를 아카이브 계층으로 쓸 때의 스토리지 클래스, 복원 지연과 비용 구조, 멀티파트 업로드의 ETag가 체크섬이 아닌 이유(계산 실험), Range 읽기를 이용한 구간 복원을 정리합니다.
#왜 클라우드/오브젝트 스토리지인가
테이프 라이브러리는 설치·운영 인력과 공간, 정기 이관이 필요합니다. 오브젝트 스토리지는 S3 호환 API라는 사실상의 표준 인터페이스 덕분에 MAM이 자체 개발한 코드나 범용 도구로 직접 연동할 수 있고, 클라우드 서비스를 쓰면 용량 확장과 지리적 복제를 서비스가 맡습니다.
| 구분 | LTO 테이프 | 클라우드/오브젝트 |
|---|---|---|
| 초기 투자 | 장비 구입(라이브러리, 드라이브) | 거의 없음(종량제) |
| 운영 | 테이프 관리, 세대 이관, 보관 환경 | 서비스에 위임(비용 구조 이해 필요) |
| 접근 방식 | LTFS 또는 아카이브 소프트웨어 | S3 API |
| 접근 지연 | 수 분 | 클래스에 따라 즉시 ~ 수 시간 |
| 비용 구조 | 용량당 낮은 단가, 조회는 거의 무료 | 저장료 + 조회(복원)·전송(Egress) 요금 |
| 장기 위험 | 드라이브·미디어 호환 | 서비스·요금 정책 변경, 벤더 종속 |
#스토리지 클래스
클라우드 오브젝트 스토리지는 접근 빈도에 따라 클래스(계층) 를 제공합니다. 이름과 조건은 서비스마다 다르지만 구조는 같습니다.
| 클래스(개념) | 저장 단가 | 조회 | 용도 |
|---|---|---|---|
| 표준 | 높음 | 즉시, 조회료 낮음 | 자주 쓰는 소재 |
| 저빈도 접근 | 중간 | 즉시, 조회료 있음 | 가끔 쓰는 소재 |
| 아카이브(빙하형) | 낮음 | 수 분~수 시간 후 복원 | 장기 보관 |
| 딥 아카이브 | 가장 낮음 | 복원 옵션에 따라 다름(AWS 문서 기준 Standard는 통상 12시간 이내, Bulk는 통상 48시간 이내이며 대량 복원은 더 걸릴 수 있음) | 거의 쓰지 않는 영구 보관 |
#클라우드 아카이브의 비용: 저장보다 "꺼내는 비용"
영상 아카이브에서 흔한 오해는 "저장 단가가 싸니 총비용이 싸다"입니다. 실제로는 다음을 합산해야 합니다.
총비용 = 저장료 + 업로드 요청료 + 복원(조회)료 + 외부 전송(Egress)료 + 최소 보관기간 위약
- 방송 영상은 한 번 올리면 대용량이고, 복원 시 인터넷 전송료가 큽니다. 자주 복원한다면 저장 단가가 낮은 클래스가 오히려 비쌀 수 있습니다.
- 구간 복원(Range 읽기, 아래 설명)으로 전송량을 줄이면 비용이 크게 줄어듭니다.
- 클라우드 사업자를 바꾸거나 자체 환경으로 되돌릴 때의 이전 비용(Egress)도 장기 계획에 포함해야 합니다.
#대용량 업로드: 멀티파트
수 GB~수백 GB 파일은 한 번에 올리지 않고 파트(조각)로 나누어 병렬 업로드합니다(멀티파트 업로드). 장점은 병렬 처리로 빠르고, 실패한 파트만 재전송할 수 있다는 점입니다.
#ETag는 파일의 MD5가 아니다
S3에서 객체를 올리면 ETag가 반환됩니다. 암호화하지 않았거나 SSE-S3로 암호화한 단일 업로드에서는 보통 이 값이 파일의 MD5와 같지만(SSE-KMS, SSE-C 등에서는 단일 업로드도 MD5가 아닙니다), 멀티파트로 올린 객체의 ETag는 파일 전체의 MD5가 아닙니다. 문서화된 계산 방식은 다음과 같습니다.
ETag(멀티파트) = MD5( 각 파트의 MD5 바이너리를 이어 붙인 것 ) + "-" + 파트 개수
같은 10MB 데이터로 계산해 보았습니다(이 계산은 로컬에서 알고리즘대로 수행한 것이며 실제 S3와 비교한 값은 아닙니다).
파일 전체 MD5 : 8e53463838adc859873bbb1a172e1ab1
8MB 파트로 나눈 ETag : d52b304a9983640644d42c0e7cead1b0-2
5MB 파트로 나눈 ETag : 0f19691038865e87d093ed895276e9de-2
같은 파일인데 파트 크기에 따라 ETag가 달라집니다. 그러므로:
- ETag를 파일 무결성 검증에 그대로 쓰면 안 됩니다. 로컬 체크섬과 비교할 수 없습니다.
- 직접 계산한 체크섬(SHA-256 등)을 객체의 메타데이터나 별도 DB에 저장하고, 필요하면 서비스가 제공하는 추가 체크섬 기능(업로드 시 SHA-256, CRC32 등을 검증하는 옵션)을 사용하세요.
- 업로드 후에는 다시 내려받아 체크섬을 확인하거나, 사업자가 제공하는 무결성 검증 기능을 활용합니다.
#Range 읽기로 구간 복원
S3 API의 GET은 바이트 범위(Range) 를 지정할 수 있습니다. 앞 글에서 계산한 바이트 범위만 읽으면 구간 복원이 가능합니다.
GET /bucket/a1.mxf
Range: bytes=18611712-31363004
테이프와 달리 오브젝트 스토리지는 바이트 단위 임의 접근이 쉽습니다. 단, 복원 대기 시간이 필요한 아카이브 클래스의 객체는 먼저 복원 요청 후 접근 가능한 상태가 되어야 합니다. 구간 단위로 복원하려면 아카이브 시점에 프레임 인덱스를 추출해 DB에 보관하는 것이 전제입니다.
#설계 시 고려사항
| 항목 | 내용 |
|---|---|
| 객체 키 규칙 | 소재 ID 기반(asset/{id}/hires.mxf). 파일명 변경에 독립적 |
| 메타데이터 | 체크섬, 원본 파일명, 포맷 정보를 객체 메타데이터와 MAM DB 양쪽에 보관 |
| 버전·삭제 보호 | 버전 관리와 삭제 방지(오브젝트 락)로 실수·랜섬웨어 대비 |
| 리전·복제 | 재해 대비 지리적 복제. 규제상 데이터 위치 제한 확인 |
| 암호화 | 전송·저장 암호화. 키 관리 정책 |
| 접근 제어 | 최소 권한, 임시 자격 증명 사용 |
| 라이프사이클 | 정책에 따라 클래스 자동 이동. 최소 보관기간을 고려 |
| 개인정보·저작권 | 보관 기간, 삭제 요청 처리 |
#정리
- 오브젝트 스토리지는 S3 API로 연동이 쉽고 확장성이 좋지만, 총비용은 저장료가 아니라 복원·전송 비용까지 포함해야 합니다.
- 멀티파트 ETag는 파일의 MD5가 아니므로 무결성 검증은 별도 체크섬으로 합니다.
- Range 읽기로 구간 복원이 가능하며, 클래스별 복원 지연과 최소 보관기간을 설계에 반영합니다.
- 요금과 복원 시간은 사업자의 최신 문서로 확인하세요.
#참고 자료
링크는 2026-10-28에 열람이 되는 것을 확인했습니다. 규격과 도구 문서는 개정될 수 있으므로 적용하기 전에 최신 판을 확인하세요.