이어지는 글입니다. 이전 글 :: http://blog.wonhada.com/?p=1738

아래 링크에서 확인할 수 있듯이 S3(Simple Storage Service)는 인/아웃 요청 한도가 적고(GET 20,000건/PUT 2,000건) CDN에 비해 최적화 된 로딩 속도를 제공할 수 없습니다.
http://aws.amazon.com/ko/free/

따라서, 클라우드프론트(이하 CF, CloudFront)를 이용해 요청을 늘리고(2,000,000건) CDN 서비스를 제공하는게 좋습니다. 주의할 것은 CF가 S3에 요청하는 것도 S3의 Get 요청 건수로 잡히므로 수동 동기화 시 전체를 하지 말고 개별 파일로 해야 합니다.

요금 정책 때문에 걱정이 될 것입니다. 제가 CF로 연결해서 써보니 초기 구축 시 약 350개 정도의 파일(6MB)을 동기화 하고 월 7천명 정도가 25,000 페이지뷰 정도 하니 약 4,000원 정도가 발생했습니다. 참고하세요.

이제 CF를 생성하고 S3와 연결해 보겠습니다.

1. 좌상단 메뉴의 Services에서 클라우드프론트(CloudFront)를 클릭.
CF_01

2. ‘Create Distribution’ 버튼 클릭.
CF_02

3. 동영상 스트리밍 서비스는 RTMP, 일반 파일 서비스라면 Web을 선택합니다.
CF_03

4. Origin Domain Name은 우리가 만들었던 S3를 선택합니다. 아래에 있는 Origin Path는 동기화 하려는 폴더를 입력합니다. 기본은 / 이므로 모두 동기화 하려면 그냥 두면 됩니다. /images 폴더 이하만 동기화 하려면 /images 를 입력합니다. 끝에 / 는 붙이지 않습니다.
CF_04

5. 나머지 설정은 기본으로 두면 되지만 한 가지 살펴볼 부분이 있습니다. Price Class인데요. 동기화 할 서버 지점(Edge)을 선택하는 건데요. 필요한 곳만 지정해서 비용을 절약할 수 있는 것 같습니다. 얼마나 되는지는 모릅니다. 저는 기본(전체 지점)을 계속 사용중이라서요. 우측 하단의 ‘Create Distribution’을 클릭.
CF_05

6. 생성되었네요. 수동으로 동기화 하는 방법을 살펴보겠습니다. ID를 클릭.
CF_06

7. 우측 끝의 ‘Invalidations’ 탭의 ‘Create Invalidation’ 클릭.
CF_07

8. 팝업이 뜨면 동기화 하려는 파일의 경로를 입력합니다. 만약 폴더의 모든 파일을 동기화 하려면 /images/* 와 같이 입력합니다. 추천하는 방법은 아닙니다. 이유는 처음 설명한 것처럼 CF에서 S3로 Get 요청을 하게 되는데 그것도 비용이기 때문입니다. 꼭 필요한 것만 동기화 하시길.
CF_08

테스트 링크(S3): https://s3.ap-northeast-2.amazonaws.com/wonhada.com/Corona_Book.jpg
테스트 링크(CF): https://dgb3loki47gxb.cloudfront.net/Corona_Book.jpg