이미지 용량 최적화

해결하고 싶은 문제

고용량 이미지 파일이 서비스되는 경우 전송비용이 상승할 뿐만 아니라 클라이언트 서비스 품질이 저하되는 문제가 발생한다.

솔루션/패턴 설명

이미지가 스토리지에 저장되면 통제가 불가능하다고 생각하는 경향이 있다. 스토리지에 저장되기 전에 이미지 최적화 프로세스를 진행하려는 시도는 실패할 확률이 높다. 서비스 고도화에 따라 스토리지로 향하는 입구가 많아지기 때문이다.

입구를 모두 통제할 수 없다면 단일 출구 정책을 사용하는 것이 효과적이다.

../../_images/dgm001.png

이미지서버가 이미지를 전송/배포하기 전 고용량 이미지를 최적화한다.

구현

  • hyperdims 함수를 활성화한다.

  • urlRewrites 를 이용해 모든 URL 호출에 이미지 최적화 옵션을 붙인다.

    "pattern": "image.example.com/(.*)",
    "replace": "image.example.com/(.*)/hdims/optimize"
    

장점/효과

  • 기존 URL을 변경없이 사용한다.

  • 항상 균일하게 최적화된 이미지 서비스가 가능하다.

  • 별도의 관리/배치 프로세스 없이 이미지 처리가 자동화된다.

  • 이미지 최적화 정책이 변경되더라도 무중단 정책 변경이 가능하다.

  • 이미지 처리량이 많아질 경우 손쉽게 Scale-out이 가능하다.

주의점

이미지 저장시 최소한의 용량 최적화는 반드시 필요하다.

  • 이미지 크기가 너무 크면 자칫 스토리지 대역폭에 병목이 발생할 수 있다.

  • 이미지 최적화를 위한 컴퓨팅 파워가 과도하게 투입될 수 있다.

기타

  • 자주 변환되는 이미지를 캐싱해 놓으면 불필요한 중복 최적화를 방지할 수 있다.