본문 바로가기

AWS Design Pattern/정적 콘텐츠 처리 패턴

Cache Distribution - 사용자와 물리적으로 가까운 위치에 데이터 배치

ㅁ  풀어야 할 문제

-       컴퓨터나 모바일 장치의 보급에 따라 더 많은 사람이 더 많은 지역에서 인터넷 상의 콘텐츠에 액세스하게 됨

-       또 이미지나 동영상 데이터는 품질이 좋아져 데이터 양도 굉장히 많아지고 있음

-       사용자 경험(User Experience) 관점에서 보면, 보다 빠르고 안정적으로 데이터를 이용자에게 제공하고 싶어하지만 현재의 기술로는 어느 정도 통신 지연이 발생

-       이런 이유로 콘텐츠 배포 장소가 한 곳 밖에 없다면 사용자 경험이 나빠짐

 

ㅁ  해결/패턴

-       세계 각지에 있는 지역에 콘텐츠 배포 장소(origin)에서 배포되는 콘텐츠 캐시 데이터를 배치

-       이렇게 하여 지리적으로 이용자와 더 가까운 지역에서 콘텐츠를 배포하게 되고, 지리적/물리적 제약 해결 가능

-       이 패턴을 적용하면 사용자와 콘텐츠 배포 장소와 거리가 짧아져 사용자에게 빠른 응답 가능

 

  구현

-       AWS CloudFront를 이용하여 전 세계의 캐시 서버(에지 서버)를 사용

-       콘텐츠 배포 장소인 오리진 서버를 결정해 콘텐츠를 배치

-       마스터 서버를 사용하도록 CloudFront를 설정함. 설정을 하면 [xxx.cloudfront.net/xxx]이라는 DNS명이 발급됨

-       자동으로 발급되는 이 DNS를 사용해도 되나 자신의 도메인 명을 사용하는 것도 가능

-       그 때는 오리진 서버 DNS명의 CNAME 레코드에 발급되는 CloudFront DNS명을 설정

 

ㅁ  장점

-       거리가 떨어진 사용자에게 보다 좋은 사용자 경험 제공 가능

-       파일 다운로드 처리를 분산하여 부하분산 효과 가능

-       On-Premise나 호스팅 등의 EC2 이외의 서버를 오리진 서버로 함으로써 기존 서버를 사용하면서 패턴 적용 가능

-       오리진 서버로는 S3를 직접 오리진으로 사용할 수 있다.

 

ㅁ  주의점

-       기본적으로 캐시 서버는 배포 장소인 마스터 서버 캐시 타임아웃 설정에 따라 캐싱을 함

-       그 때문에 캐시 타임아웃 전에 마스터 서버의 파일을 변경해도 캐시 서버는 변경되지 않는 경우가 발생

-       콘텐츠의 특성을 고려하여 캐시 타임아웃 설정을 해야 하며 Rename Distribution 패턴 이용도 검토 필요