파일 수명 주기 관리 생성부터 삭제까지
수명 주기 전반에 걸쳐 파일을 관리하세요. 디지털 자산의 생성, 활성 사용, 보관, 안전한 삭제를 위한 정책입니다.
파일 수명 주기 관리는 각 단계에서 모든 파일에 발생하는 일을 정의합니다. 생성(태그 지정, 분류, 암호화), 활성 사용(핫 스토리지, 버전 관리, 접근 제어 하의 공유), 비활성(30~90일에 IA 또는 쿨 티어로 이동), 아카이빙(Glacier Deep Archive 또는 Azure Archive), 파괴(암호화 삭제 + 감사 기록). 잘 설계된 수명 주기는 GDPR 제5조(1)(e)의 스토리지 제한과 HIPAA §164.316의 보존 요건 — 그리고 개인정보보호법(PIPA) 제21조의 개인정보 파기 의무 — 을 만족하면서 스토리지 비용을 60~80% 절감합니다. 모두 수동 작업이 아닌 정책으로 시행됩니다. 핵심은 정책을 코드로 작성하고 페타바이트에 적용하기 전에 소규모 샘플로 테스트하는 것입니다.
1단계: 의도를 갖춘 생성
파일의 수명 주기는 생성 시 시작됩니다. 이 시점에 설정된 메타데이터가 이후 모든 것을 결정합니다. 보존 클래스, 기밀 수준, 소유자, 프로젝트. 이것들을 캡처하지 않는 업로드 엔드포인트는 결코 이루어지지 않는 수동 태그 지정을 강제합니다.
수집 시 최소 메타데이터 세트:
owner: AD/SSO 사용자 ID 또는 서비스 계정created-by-app: 파일을 작성한 시스템content-class: 문서, 로그, 미디어, 백업, 임시retention-class: sox-7y, hipaa-6y, temp-30d, indefiniteconfidentiality: public, internal, restricted, secret
PutObject 시점에 S3 Object Tags 또는 Azure Blob Index Tags를 통해 삽입하세요. 필수 태그를 검증하고 누락된 업로드를 거부하는 Lambda가 처음부터 카탈로그를 깨끗하게 유지합니다.
2단계: 핫 티어에서의 활성 사용
활성 사용 중인 파일은 가장 빠르고 비싼 티어에 있습니다. S3 Standard($0.023/GB), Azure Hot($0.0184/GB), GCS Standard($0.020/GB). 지연 시간(100 ms 미만)과 처리량이 중요하고, 접근 패턴은 예측 불가능합니다.
활성 사용 중에는:
- 덮어쓰기와 실수 삭제를 잡는 버전 관리 활성화
- 감사를 위해 SIEM으로 흐르는 접근 로그
- KMS 고객 관리 키로 암호화
- 외부 공유를 위한 서명된 URL(최대 7일)
핫 티어 일반 체류 기간: 30~90일. 그 이후에는 보통 접근 빈도가 충분히 낮아져 더 차가운 티어가 비용 절감이 됩니다.
3단계: 웜 스토리지로 전환
30일 접근 없이 지나면 대부분의 파일은 비정기 접근 티어로 전환됩니다. S3 Standard-IA($0.0125/GB), Azure Cool($0.0152/GB), GCS Nearline($0.010/GB). 검색 지연 시간은 100 ms 미만으로 유지되지만 검색 비용이 발생합니다. S3 IA는 검색당 $0.01/GB를 청구합니다.
이 전환을 위한 라이프사이클 규칙:
{
"ID": "active-to-ia",
"Status": "Enabled",
"Filter": {"Prefix": "documents/"},
"Transitions": [{"Days": 30, "StorageClass": "STANDARD_IA"}]
}
최소 객체 크기에 주의하세요. S3 IA는 4 KB 객체라도 128 KB당 요금을 청구합니다. 128 KB 미만 객체는 Standard보다 IA에서 비용이 더 듭니다. ObjectSizeGreaterThan: 131072로 소형 객체를 제외하도록 라이프사이클 규칙을 필터링하세요.
4단계: 장기 보존을 위한 아카이빙
90일 이상 접근하지 않은 파일은 다시 접근하는 경우가 드물지만 보존 요건이 있을 수 있습니다. 콜드 아카이브 티어로 이동하세요. S3 Glacier Flexible Retrieval($0.0036/GB), S3 Glacier Deep Archive($0.00099/GB — 약 1,300원/TB/월), Azure Archive($0.00099/GB), GCS Archive($0.0012/GB).
검색 지연이 중요해집니다:
- Glacier Instant Retrieval: 밀리초
- Glacier Flexible Retrieval: 표준 3~5시간, 긴급 1~5분
- Glacier Deep Archive: 표준 12시간, 대량 48시간
- Azure Archive: 최대 15시간 리하이드레이션
현실적인 복원 SLA에 티어를 맞추세요. 감사인이 24시간 전에 통보한다면 분기별 감사 파일을 Deep Archive에 넣지 마세요.
5단계: 보존 유지와 컴플라이언스
규정은 종종 비즈니스 유용성을 넘어 파일 보존을 요구합니다. SOX: 7년. HIPAA: 6년. SEC Rule 17a-4: 3~6년. GDPR: 명시된 목적에 필요한 기간 동안(삭제권 예외 포함). PIPA 제21조는 개인정보 처리 목적이 달성되면 지체 없이 파기할 의무를 부과합니다.
태그 기반 보존과 WORM 스토리지로 구현하세요:
retention-class태그가 라이프사이클 타이밍을 구동- 컴플라이언스 모드의 S3 Object Lock이 보존 기간 동안 삭제를 방지 — 루트도 삭제 불가
- 법적 유지 태그(
legal-hold: true)가 라이프사이클 전환을 무기한 동결 - 감사 로그가 모든 접근과 태그 변경을 캡처
FINRA 4511과 SEC 17a-4(f) 적용 브로커-딜러의 경우 WORM 스토리지가 의무입니다. 잘못 구현하면(예: 컴플라이언스 모드 대신 거버넌스 모드) 7자리 벌금이 부과된 사례가 있습니다.
6단계: 안전한 파기
최종 삭제로 수명 주기가 마감됩니다. "안전"은 데이터가 복구 불가능하고 그 행위가 문서화됨을 의미합니다.
방법:
- 소프트 삭제 + 지연 제거: 삭제로 표시하고 30일 후 제거(복구 허용)
- 암호화 삭제: 암호화 키를 삭제해 암호문이 노이즈가 되게 함
- 물리적 덮어쓰기: DoD 5220.22-M 3패스 쓰기(온프레미스에만 해당)
클라우드 오브젝트 스토리지의 경우 암호화 삭제가 현실적인 방법입니다. 각 버킷 또는 객체 클래스는 KMS 키를 사용하고, 키를 삭제하면 몇 분 내에 객체가 복구 불가능해집니다. AWS, Azure, GCP 모두 이 패턴을 지원합니다. CloudTrail 동등 도구로 삭제를 기록하세요.
감사 로그 요건: 객체 키, VersionId, 타임스탬프, 행위자, 이유 코드, 일치한 보존 규칙을 캡처하세요. 감사 로그는 설명하는 데이터보다 더 오래 보관하세요. 7년 후 파일을 삭제한다면 삭제 로그는 10년간 보관하세요.
수명 주기 단계를 넘나드는 공유 처리
다른 수명 주기 단계에 있는 파일은 다르게 공유됩니다. 활성 프로젝트 파일: 편집자 권한이 있는 Drive 링크. 외부 법률 자문이 필요한 아카이브된 계약서: 웜 티어로 복원, 서명된 URL 생성, 참여 후 웜 복사본 삭제.
아카이브된 파일을 일회성으로 공유할 때 전송 도구가 아카이브 시스템에 외부 접근을 부여하는 복잡성을 피해줍니다. HexaTransfer는 AES-256-GCM 종단간 암호화와 일회성 링크로 최대 10 GB를 전송합니다. 아카이브된 파일을 검색하고, 보내고, 완료. 아카이브는 그대로 유지되고 법률 자문은 IAM 역할 프로비저닝 없이 필요한 것을 받습니다.
코드로서의 정책 패턴
모든 라이프사이클 규칙을 Terraform, CloudFormation, Pulumi, 또는 Bicep으로 인코딩하세요. 콘솔에서 직접 클릭하지 마세요. 장점:
- 풀 리퀘스트를 통한 동료 검토
- 정책 변경의 버전 기록
terraform plan으로 드라이런- 커밋 되돌리기로 롤백
Terraform 스니펫 예시:
resource "aws_s3_bucket_lifecycle_configuration" "docs" {
bucket = aws_s3_bucket.docs.id
rule {
id = "tiering"
status = "Enabled"
transition { days = 30 storage_class = "STANDARD_IA" }
transition { days = 90 storage_class = "GLACIER_IR" }
transition { days = 365 storage_class = "DEEP_ARCHIVE" }
expiration { days = 2555 }
}
}
커밋, 검토, 적용. 먼저 개발 버킷에서 테스트하세요. 필터 접두사를 점진적으로 확장해 프로덕션에 롤아웃하세요.
수명 주기 효과 측정
월별 추적:
- 티어별 총 스토리지(핫/웜/아카이브)
- 티어별 비용
- 객체 나이 분포
- 콜드 티어에서의 검색율(높은 비율은 티어가 잘못됐다는 의미)
- 삭제율과 이유
S3 Storage Lens, Azure Cost Management, GCP의 스토리지 인사이트가 모두 이 대시보드를 생성합니다. 건강한 성숙한 수명 주기: 핫 10%, 웜 20%, 아카이브 70%, 연간 콜드 검색 1% 미만. 그 외는 정책 조정이 필요하다는 의미입니다.
수명 주기 설계 연습
새 워크로드의 수명 주기를 설계할 때 다섯 가지 질문에 답하세요:
- 어떤 규정 보존 요건이 적용되는가?
- 30일, 90일, 365일 이후의 현실적인 접근 패턴은?
- 오래된 파일이 필요할 때 허용 가능한 복원 시간은?
- 삭제 트리거는 무엇인가 — 시간, 이벤트, 요청?
- 감사 증거 요건은?
답변이 티어 일정, 보존 잠금, 법적 유지 기능, 감사 파이프라인을 결정합니다. Terraform 작성 전에 이 다섯 가지 답을 얻으세요. 수명 주기가 잘못된 사례의 대부분은 질문 단계를 건너뛰고 다른 사람의 정책을 그대로 복사한 팀에서 시작됩니다.
hexatransfer.com에서 사용해보세요 — 무료, 계정 불필요, 최대 10 GB.
엔드투엔드 암호화로 대용량 파일을 안전하게 전송
엔드투엔드 암호화로 최대 10GB의 파일을 무료로 전송하세요. 계정이 필요하지 않습니다. 업로드 전에 브라우저에서 파일이 암호화되어 다른 사람은 읽을 수 없습니다.
파일 보내기