전 세계에 콘텐츠를 배포하는 CDN 서비스인 CloudFront

이재홍 http://www.pyrasis.com 2014.03.24 ~ 2014.06.30

외부 서버와 CloudFront 연동하기

AWS가 아닌 외부의 웹 서버를 CloudFront와 연동하는 방법을 알아보겠습니다.


그림 12-30 외부 서버와 CloudFront 연동하기

예제로 사용할 웹 서버는 따로 준비하지 않고, 인터넷상에서 흔히 볼 수 있는 사이트를 사용해보겠습니다. 부트스트랩은 트위터에서 개발한 유명한 웹 프론트엔드 프레임워크입니다. 이 http://getbootstrap.com을 오리진으로 하여 CloudFront와 연동해보겠습니다(예제로 설명하기 위해 이 사이트를 사용한 것일 뿐, 실무에서는 여러분들의 웹 서버를 사용하면 됩니다).


그림 12-31 http://getbootstrap.com

이제 CloudFront 배포 목록으로 이동하여 위쪽 Create Distribution 버튼을 클릭합니다.


그림 12-32 CloudFront 배포 목록에서 배포 생성

전송 방식을 선택합니다(그림 12-33).

  • Web: 일반적인 웹 서버 방식입니다.
  • RTMP: 동영상 실시간 스트리밍 프로토콜 입니다.

오리진이 일반적인 웹 서버이므로 Web의 Get Started 버튼을 클릭합니다.


그림 12-33 CloudFront 전송 방식 설정

커스텀 오리진(외부 웹서버)을 사용한 배포를 생성합니다(그림 12-34).

  • Origin Domain Name: 커스텀 오리진을 사용하려면 이곳에 오리진 서버의 도메인을 설정하면 됩니다. 우리는 부트스트랩 웹사이트를 오리진으로 사용하기로 했으므로 getbootstrap.com을 입력합니다.
  • Origin ID: 오리진을 구분하는 ID입니다. 크게 중요한 것은 아니며 Origin Domain Name을 설정하면 자동으로 생성됩니다.
  • Origin Protocol Policy: CloudFront로 보여질 프로토콜 정책입니다. 기본값 그대로 사용합니다.
    • HTTP Only: HTTP 프로토콜만 사용합니다.
    • Match Viewer: CloudFront에 HTTP로 접속하면 HTTP로 전송하고, HTTPS로 접속하면 HTTPS로 전송합니다.
  • HTTP Port: HTTP 프로토콜의 포트 번호입니다. 기본값 그대로 사용합니다.
  • HTTPS Port: HTTPS 프로토콜의 포트 번호입니다. 기본값 그대로 사용합니다.
  • Path Pattern: CloudFront로 파일을 가져올 규칙입니다. 기본값은 *로 설정되어 있어서 모든 파일을 가져오게 됩니다. 이 부분은 여기서는 수정할 수 없고 배포(Distribution)를 생성한 뒤 따로 추가할 수 있습니다.
  • Viewer Protocol Policy: CloudFront로 보여질 프로토콜 정책입니다. 기본값 그대로 사용합니다.
    • HTTP and HTTPS: HTTP와 HTTPS를 둘 다 사용합니다.
    • Redirect HTTP to HTTPS: 모든 HTTP 접속을 HTTPS로 리다이렉트 합니다.
    • HTTPS Only: HTTPS만 사용합니다.
  • Allowed HTTP Methods: 허용하는 HTTP 메서드 종류입니다. 기본값 그대로 사용합니다.
    • GET, HEAD: 파일을 읽기만 할 때 선택합니다.
    • GET, HEAD, PUT, POST, PATCH, DELETE, OPTIONS: 동적 콘텐츠 전송을 사용할 때 선택합니다.


그림 12-34 CloudFront 배포 생성 설정

이어지는 세부 설정입니다(그림 12-35).

  • Object Caching: 파일의 캐시 유지 시간을 설정합니다. 유지 시간이 지나면 CloudFront에서 파일이 삭제됩니다. 기본값 그대로 사용합니다.
    • Use Origin Cache Headers: 오리진 HTTP 헤더의 캐시 설정(Cache-Control)을 따릅니다. 각 파일마다 캐시 설정을 다르게 할 수 있는 장점이 있습니다. 캐시 설정이 없으면 기본 캐시 유지 시간은 24시간 입니다.
    • Customize: 기본 캐시 유지 시간을 따로 설정합니다.
      • Minimum TTL: 최소 캐시 유지시간 입니다. 초 단위로 설정해야 합니다. 이 Minimum TTL 설정 시간과 오리진 HTTP 헤더의 캐시 설정(Cache-Control) 시간 중 긴 시간이 적용됩니다.
  • Forward Cookies: 오리진의 쿠키를 CloudFront를 거쳐 사용자에게 전달할지 설정합니다. 기본값 그대로 사용합니다.
    • None: 쿠키를 전달하지 않습니다. 캐시 성능이 좀더 향상됩니다.
    • Whitelist: 쿠키를 선별하여 전달합니다.
      • Whitelist Cookies: 전달할 쿠키 이름을 설정합니다. 각 쿠키는 새 줄로 구분합니다.
  • Forward Query Strings: CloudFront에서 오리진으로 쿼리 문자열을 전달합니다. 오리진에서 쿼리 문자열에 따라 파일을 구분하여 보여주고 싶을 때 설정합니다. 설정하지 않으면 캐시 성능이 향상됩니다. 기본값 그대로 사용합니다.
  • Smooth Streaming: 실시간 스트리밍 프로토콜인 Microsoft Smooth Streaming을 사용하고 싶을 때 설정합니다. 기본값 그대로 사용합니다.
  • Restrict Viewer Access: Signed URL로 CloudFront 사용을 제한하고 싶을 때 설정합니다. Signed URL에 대해서는 뒤에서 자세히 설명하겠습니다. 기본값 그대로 사용합니다.
  • Price Class: 요금 수준입니다. 에지 로케이션 사용 범위를 설정하는데 실제 서비스에서 그다지 필요가 없는 지역을 제외할 때 설정합니다. 세부적으로 설정할 수는 없으며 3가지 옵션이 있습니다. 기본값 그대로 사용합니다.
    • Use Only US and Europe: 미국과 유럽의 에지 로케이션만 사용합니다.
    • Use Only US, Europe and Asia: 미국과 유럽, 아시아의 에지 로케이션만 사용합니다.
    • Use All Edge Locations: 모든 에지 로케이션을 사용합니다. 위의 두 옵션보다는 요금이 많이 나옵니다.
  • Alternate Domain Names: Route 53에서 도메인을 연결하려면 이 부분을 설정해야 합니다. 여러 도메인이라면 새 줄로 구분하고 최대 10개까지 설정할 수 있습니다. 각자 구입한 도메인 이름을 설정하면 됩니다. 기본값 그대로 비워둡니다.


그림 12-35 CloudFront 배포 생성 설정

이어지는 세부 설정입니다(그림 12-36).

  • SSL Certificate: HTTPS 프로토콜을 사용하기 위한 인증서 설정입니다. 기본값 그대로 사용합니다.
    • Default CloudFront Certificate: CloudFront의 인증서를 사용합니다.
    • Custom SSL Certificate: 사용자가 구입한 도메인과 인증서를 사용하고 싶을 때 설정합니다. 인증서 저장은 IAM에서 할 수 있습니다.
  • Custom SSL Client Support: 커스텀 SSL 클라이언트 설정입니다. 앞에서 Custom SSL Certificate를 설정해야 합니다.
  • Default Root Object: CloudFront 배포 도메인의 최상위(Root)로 접속했을 때 기본적으로 보여줄 파일 이름입니다. getbootstrap.com의 인덱스 파일은 index.html이므로 index.html로 설정합니다(외부 서버에서 사용하는 서버 사이드 프로그래밍 언어에 따라 index.php, index.aspx, index.jsp 등도 가능합니다).
  • Logging: CloudFront 접속 로그 설정입니다. 기본값 그대로 사용합니다.
    • Bucket for Logs: CloudFront 로그를 저장할 S3 버킷을 선택합니다.
    • Log Prefix: S3 버킷에 로그를 저장할 때, 디렉터리 명을 설정합니다.
  • Comment: 메모입니다. 추가적인 설명을 기록하고 싶을 때 사용합니다. 기본값 그대로 비워둡니다.
  • Distribution State: 배포를 생성한 뒤 배포 상태 설정입니다. Enabled로 설정하면 곧바로 사용할 수 있는 상태가 되며 Disabled로 설정하면 그냥 배포만 생성하고 비활성화 상태로 둡니다. 기본값 그대로 사용합니다.

설정이 완료되었으면 Create Distribution 버튼을 클릭합니다.


그림 12-36 CloudFront 배포 생성 설정

CloudFront 배포가 생성되었습니다. Status를 보면 InProgress로 표시되며 인디케이터가 회전하고 있습니다. 배포가 모든 에지 로케이션에 전파되기까지 약 15~20분이 소요됩니다.


그림 12-37 CloudFront 배포 생성 완료, 전파 중

모든 에지 로케이션에 전파가 완료되면 Status가 Deployed로 바뀝니다. Domain Name에 CloudFront 배포의 도메인이 표시됩니다. CloudFront 배포 도메인 형태는 http://d29e8f57534cis.cloudfront.net이며 앞의 d29e8f57534cis 부분은 배포를 생성할 때마다 바뀝니다.


그림 12-38 CloudFront 배포 도메인 확인

웹 브라우저에서 CloudFront에 접속합니다. http://getbootstrap.com의 내용이 그대로 표시됩니다.


그림 12-39 웹 브라우저에서 외부 서버와 연동한 CloudFront에 접속

이처럼 외부 서버를 오리진으로 CloudFront를 사용할 수 있습니다.


저작권 안내

이 웹사이트에 게시된 모든 글의 무단 복제 및 도용을 금지합니다.
  • 블로그, 게시판 등에 퍼가는 것을 금지합니다.
  • 비공개 포스트에 퍼가는 것을 금지합니다.
  • 글 내용, 그림을 발췌 및 요약하는 것을 금지합니다.
  • 링크 및 SNS 공유는 허용합니다.