티스토리 뷰

반응형

방문자가 많은 시스템에서 이미지, 동영상, 자바스크립트, HTML, CSS 등의 정적 콘텐츠를 제공하는데는 많은 비용이 발생할 수 있다.
대량의 트래픽을 처리하려면 고성능의 웹 서버가 여러대 필요하게 된다. 그리고 EC2는 다운로드 통신량에 따라 종량 과금이 부과되므로 정적 콘텐츠의 전달이 많게 되면 비용 또한 많이 발생하게 된다.

이와 같은 상황에서 클라우드프론트와 S3를 사용하여 정적 콘텐츠 전달 비용을 줄일 수 있다.
오늘은 이와 같은 방법에 대해서 알아 보겠다.

클라우드프론트는 CDN(Content Delivery Network)의 일종으로 세계 각지에 배치된 서버에서 콘텐츠를 캐시하고 전달한다. 캐시에 히트한 경우에는 웹서버와 DB 서버에 접속하지 않게 되므로 서버의 부하를 줄이게되고 자연스레 운영 비용도 줄어들게 된다.

개발자가 html 속에 정적콘텐츠에 관한 url작성시 클라우드프론트 도메인을 지정하게 되면 최종 사용자가 도메인 접속시 브라우저에서 클라우드프론트를 통해 콘텐츠를 가져오게 된다.

클라우드프론트에 캐시되지 않은 콘텐츠에 대해서는 오리지널 ELB로 가지러 가게 된다. 일단 사용자가 액세스한 콘텐츠는 클라우드프론트에 캐시되며 이후 같은 콘텐츠에 대한 액세스는 클라우드프론트가 캐시된 콘텐츠를 그대로 배포한다. 이와 같은 구조로 동작하게 됨으로 EC2에 부하를 줄일 수 있는 것이다.

클라우드프론트뿐만 아니라 정적 콘텐츠를 S3에 두는 방법을 함께 사용하게되면 더욱 웹 서버의 부하를 줄여, 낮은 비용으로 배포할 수 있다. S3에 파일을 저장하면 파일 단위로 접속용 URL이 생성된다. 이것을 이용해서 정적 콘텐츠 저장소로 사용한다. S3 요금 체계는 EC2 보다 낮게 설정되어 있기 때문에 정적 콘텐츠는 S3에 배치하는 것이 비용상 유리하다.

클라우드프론트는 정적 콘텐츠 뿐만 아니라 동적 콘텐츠도 배포할 수 있다.
클라우드프론트의 참조 분리 기능을 이용하면 동적 콘텐츠는 ELB에서, 정적 콘텐츠는 S3에서 가져올 수 있다. 각각의 콘텐츠를 클라우드프론트에서 구분하여 처리할 수 있는 것이다.
다만 URL 와일드 카드를 지정하여 정적 및 동적 콘텐츠를 구별할 수 있다는 것을 전제로 한다. 만약 디렉터리 구성이나 파일 네이밍이 복잡한 경우 설정도 복잡해지게 된다.
그러므로 클라우드프론트 사용시에는 콘텐츠의 디렉터리 구성과 파일 네이밍 규칙도 함께 고려하는 것이 좋다.

클라우드프론트 이용은 시스템 운용이 시작된 이후라도 상관없다.
매니지먼트 콘솔에서 클라우드프론트 추가를 설정하고, 앞서 설명한 설정만으로 사용할 수 있다.
접속자 수가 증가하는 것을 보고 이용을 고려하면 된다.


[출처 : 실전 AWS 워크북]

반응형
댓글
공지사항
최근에 올라온 글
최근에 달린 댓글
Total
Today
Yesterday
링크
«   2024/04   »
1 2 3 4 5 6
7 8 9 10 11 12 13
14 15 16 17 18 19 20
21 22 23 24 25 26 27
28 29 30
글 보관함