본문으로 건너뛰기
HexaTransfer
블로그로 돌아가기
클라우드 및 스토리지

클라우드 스토리지 Cost Optimization: Save Up to 70%

Reduce 클라우드 스토리지 costs with proven optimization strategies. Storage class selection, lifecycle policies, and cost monitoring techniques.

클라우드 스토리지 비용을 50~70% 줄이는 방법은 순서대로 실행하는 다섯 가지 작업입니다. S3 Standard(GB당 $0.023)에서 S3 Glacier Instant(GB당 $0.004) 또는 Backblaze B2(GB당 $0.006)로 웜 데이터 이동, Cloudflare R2(이그레스 무료)로 사용자 대상 다운로드 이그레스 제거, Glacier Deep Archive(GB당 $0.00099)로 콜드 데이터 라이프사이클 관리, 고아 멀티파트 업로드와 미완성 스냅샷 삭제, CloudWatch 또는 Azure Cost Management 알림으로 팀별 예산 적용. S3 Standard 기준 월 310만 원인 100TB 워크로드가 Glacier Instant에서 약 90만 원, Deep Archive에서 약 13만 원으로 줄어듭니다. 70% 절감이라는 수치는 마케팅이 아니라 산술입니다.

절감 전에 지출 현황 파악

측정 없는 최적화는 추측입니다. 변경 전에 스토리지 인벤토리를 생성하세요:

aws s3api list-buckets --query 'Buckets[].Name' --output text | \
  xargs -I{} aws s3 ls s3://{} --recursive --summarize

더 좋은 방법: S3 Storage Lens 또는 Azure Cost Management의 스토리지 분석기를 실행합니다. 버킷별로 객체 수, 총 바이트, 평균 객체 크기, 스토리지 클래스 분포를 확인합니다. 80/20 법칙이 거의 항상 적용됩니다. 하나 또는 두 개의 버킷이 전체 비용의 80%를 차지하며, 여기서 최적화 효과가 가장 큽니다.

모든 버킷에 owner, env, project, lifecycle-policy 태그를 붙여 비용 보고서가 실제로 조치를 취할 수 있는 담당자와 연결되도록 합니다.

접근 패턴에 맞는 스토리지 클래스 선택

스토리지 클래스는 단일 가격으로 모든 워크로드를 처리할 수 없기 때문에 존재합니다. 대략적인 분류:

  • 핫 (일 단위 읽기): S3 Standard, Azure Hot, GCS Standard. 낮은 지연을 위한 프리미엄.
  • 웜 (월 단위 읽기): S3 Standard-IA, Azure Cool, GCS Nearline. 40~60% 저렴.
  • 콜드 (분기 단위 읽기): S3 Glacier Instant, Azure Archive, GCS Coldline. Standard 대비 80% 저렴.
  • 아카이브 (연 단위 또는 거의 안 봄): Glacier Flexible / Deep Archive. 95% 저렴.

잘못된 클래스에 파일을 배치하면 두 배로 손실입니다. 프리미엄 클래스에 과도하게 비용을 지불하거나, 콜드 파일을 열 때마다 검색 수수료를 냅니다. Glacier Deep Archive는 GB당 $0.02 검색 수수료와 요청당 수수료가 발생합니다. 1TB 데이터셋을 한 번 꺼내면 스토리지 절감액을 넘어서는 $20 이상이 추가로 청구됩니다.

새 버킷의 안전한 기본값: 사용량에 따라 자동으로 접근 티어를 조정하는 S3 Intelligent-Tiering. 객체 1,000개당 $0.0025 모니터링 수수료는 접근 패턴이 불규칙한 워크로드에서 충분한 가치를 제공합니다.

핵심 역할을 하는 라이프사이클 정책

일반적인 라이프사이클 정책은 단독으로 60%의 비용을 줄입니다:

{
  "Rules": [{
    "ID": "age-out",
    "Status": "Enabled",
    "Transitions": [
      { "Days": 30,  "StorageClass": "STANDARD_IA" },
      { "Days": 90,  "StorageClass": "GLACIER_IR" },
      { "Days": 365, "StorageClass": "DEEP_ARCHIVE" }
    ],
    "Expiration": { "Days": 2555 },
    "AbortIncompleteMultipartUpload": { "DaysAfterInitiation": 7 }
  }]
}

실제 접근 감소 패턴에 맞게 임계값을 설정하세요. 트랜잭션 로그는 핫 14일, 웜 30일, 콜드 90일이 적합합니다. 미디어 아카이브는 첫 전환이 90일 이상일 수 있습니다. AbortIncompleteMultipartUpload 항목은 중요합니다. 중단된 멀티파트 세션이 아무도 보지 못하는 수백 GB의 청구 스토리지를 조용히 쌓을 수 있습니다.

이그레스 비용 제거

이그레스는 클라우드 스토리지 청구서의 30~50%를 차지하는 경우가 많고, 단일 항목으로는 가장 쉽게 공략할 수 있습니다. 선택지:

  • Cloudflare R2: 이그레스 무료, S3 호환, 스토리지 GB당 $0.015. 사용자 대상 CDN 기반 다운로드에 가장 확실한 선택.
  • Backblaze B2 + Cloudflare Bandwidth Alliance: Cloudflare로의 이그레스 무료, 이후 CDN이 사용자를 처리.
  • Wasabi: 월 저장량의 1배까지 이그레스 무료.
  • AWS S3 + CloudFront: CloudFront 이그레스($0.085/GB)가 직접 S3 이그레스보다 저렴하며, 같은 리전의 S3와 CloudFront 간 이그레스는 무료.

내부 워크로드는 S3용 VPC 게이트웨이 엔드포인트를 활성화하세요. NAT 게이트웨이 처리 수수료(주의하지 않으면 스토리지 비용을 초과할 수 있음)를 제거합니다. 크로스 리전 복제는 리전을 명확히 지정하고 크로스 리전 이그레스를 GB당 $0.02 미만으로 유지하도록 최소화하세요.

압축과 중복 제거

스토리지 비용을 내기 전에 저장량을 줄이세요:

  • 텍스트와 로그: zstd 압축이 보통 8:1 비율을 달성합니다. 10TB 로그 더미가 1.25TB 저장으로 줄어듭니다.
  • 이미지: PNG를 WebP 또는 AVIF로 재인코딩하면 사용자 대상 자산의 크기가 60~80% 감소합니다.
  • 동영상: H.264 대비 H.265 또는 AV1은 동일 화질에서 30~50% 작은 파일을 만듭니다.
  • 백업: restic과 Borg는 스냅샷 간 중복 제거를 수행합니다. 1TB 작업 세트를 매일 백업하면 30일 보존 기준 약 1.2TB가 필요합니다.

압축은 CPU를 바이트로 교환합니다. 스토리지 비용이 GB당 월 $0.023, EC2가 시간당 약 $0.05임을 고려하면, 압축은 거의 항상 며칠 내에 본전을 뽑습니다.

잊고 있던 것들 삭제

오래 운영된 계정은 감사 전까지 보이지 않는 낭비가 쌓입니다:

  • 고아 EBS 스냅샷: 소스 볼륨보다 오래된 스냅샷, 또는 태그 없이 90일 이상 된 스냅샷
  • 오래된 AMI: 배포할 때마다 새 AMI가 생성되고, 오래된 것들은 등록 해제 전까지 계속 청구됨
  • 라이프사이클 없는 버전 관리 버킷: 객체 버전마다 스토리지에 포함되며, 버전 관리는 기본으로 활성화됨
  • 로그 보존: CloudWatch Logs는 기본적으로 무기한 보존, 수년치 청구 로그가 쌓임
  • 방치된 버킷: 퇴직 직원 프로젝트, 수년 전 마이그레이션 테스트 환경

AWS Trusted Advisor 또는 비프로덕션 계정의 aws-nuke를 활용한 분기별 정리로 후보를 파악합니다. 프로덕션에서는 삭제 전 2주의 소유자 통보 기간을 두고, 삭제 후 30일간 복구 스냅샷을 유지하세요.

예약 용량과 절감 플랜

AWS와 Azure 모두 예측 가능한 스토리지에 대해 선불 할인을 제공합니다. AWS S3 스토리지 클래스에는 예약이 없지만, EBS와 EFS는 Compute Savings Plans를 통해 가능합니다. Azure는 Blob Storage 예약 용량을 제공합니다. 100TB를 1년 약정하면 약 17% 절감됩니다.

예약은 사용량을 자신 있게 예측할 수 있을 때만 효과가 있습니다. 아직 최적화 중이라면 먼저 그 작업을 하세요. 비효율적인 스토리지에 대한 예약 용량은 낭비를 선불하는 것과 같습니다.

지출 모니터링과 알림

월별 비용 검토는 너무 늦습니다. 일별 신호가 필요합니다. 설정할 항목:

  • 일별 이상 알림: AWS Cost Anomaly Detection 또는 Azure Anomaly Detection. 서비스별 일별 지출이 7일 평균 대비 20% 이상 벗어나면 카카오톡 또는 Slack으로 알림.
  • 버킷별 예산: 예상 월 지출의 80%, 100%, 120%에 하드 알람 설정.
  • 이그레스 급증 알림: 1시간 내에 특정 버킷의 GET 트래픽이 기준치의 2배를 초과하면 URL 유출 또는 스크래퍼의 징후.
  • 성장 예측: 6개월 후 스토리지 성장을 추정하고, 현재 추세로 월 $10,000을 초과할 버킷에 플래그 지정.

대시보드도 좋지만 알림이 더 효과적입니다. 청구서가 도착하기 전까지는 아무도 대시보드를 확인하지 않습니다.

거버넌스: 비용을 KPI로

지속하지 않는 비용 최적화는 원상 복귀됩니다. 절감 효과를 유지하는 세 가지 방법:

  • FinOps 리뷰: 팀별 월 30분 회의, 상위 3개 비용 요인과 하나의 액션 아이템 집중 검토.
  • 차지백 또는 쇼백: 클라우드 비용을 제품 라인별로 배분. 새 분석 기능을 출시하는 팀이 S3 PUT 수수료를 직접 체감합니다.
  • 비용 추정을 요구하는 PR 템플릿: Terraform PR의 새 인프라에는 예상 월별 증감액을 포함하는 항목 추가 (Infracost 연동).

HexaTransfer는 암호문만 저장(미리보기 생성 없음, 서버 측 복호화 없음)하고 이그레스 무료 오브젝트 스토리지를 사용해 비용을 낮게 유지합니다. hexatransfer.com에서 무료로 사용해 보세요 — 계정 불필요, 최대 10GB.

전체 계획 통합

100TB 워크로드에 대한 현실적인 6개월 계획: 1주차, 모든 버킷 인벤토리 및 태그 부착; 2~3주차, 30/90/365일 전환 라이프사이클 정책 적용; 2개월차, 사용자 대상 다운로드를 R2로 마이그레이션하고 이그레스 제거; 3개월차, zstd로 로그 압축 및 미디어 재인코딩; 4개월차, 고아 스냅샷, 오래된 AMI, 방치된 버킷 정리; 5개월차, FinOps 리뷰와 일별 비용 알림 구축; 6개월차, 지출이 안정화되면 예약 용량 평가. 이 계획을 완료한 팀은 대대적인 재설계 없이도 50~70% 절감 구간에 도달합니다. 소규모의 잘 정의된 작업에 꾸준히 적용하는 규율의 결과입니다.

엔드투엔드 암호화로 대용량 파일을 안전하게 전송

엔드투엔드 암호화로 최대 10GB의 파일을 무료로 전송하세요. 계정이 필요하지 않습니다. 업로드 전에 브라우저에서 파일이 암호화되어 다른 사람은 읽을 수 없습니다.

파일 보내기