Amazon CloudFront로 웹사이트 속도 향상 - Amazon Simple Storage Service

Amazon CloudFront로 웹사이트 속도 향상

Amazon CloudFront를 사용하여 Amazon S3 웹 사이트의 성능을 향상시킬 수 있습니다. CloudFront를 통해 웹 사이트 파일(HTML, 이미지, 동영상 등)을 엣지 로케이션이라고 하는 전 세계 각지의 데이터 센터에서 사용할 수 있습니다. 방문자가 웹 사이트에서 파일을 요청할 때 CloudFront는 가장 가까운 엣지 로케이션에 있는 파일 사본으로 요청을 자동 리디렉션합니다. 이렇게 하면 방문자가 더 멀리 있는 데이터 센터에서 콘텐츠를 요청한 경우보다 다운로드 시간이 빨라집니다.

CloudFront는 지정된 기간 동안 엣지 로케이션에 있는 콘텐츠를 캐시합니다. 방문자가 만료일보다 더 오래 캐시된 콘텐츠를 요청하는 경우에 CloudFront는 그 콘텐츠의 최신 버전이 사용 가능한지 알아보기 위해 오리진 서버를 확인합니다. 최신 버전이 사용 가능하다면, CloudFront는 새로운 버전을 엣지 로케이션에 복사합니다. 원본 콘텐츠에 대한 변경 사항은 방문객이 그 콘텐츠를 요청할 때 엣지 로케이션에 복제됩니다.

Route 53 없이 CloudFront 사용

이 페이지의 자습서에서는 Route 53을 사용하여 CloudFront 배포를 가리킵니다. 그러나 Route 53을 사용하지 않고 CloudFront를 사용하여 Amazon S3 버킷에 호스팅된 콘텐츠를 제공하려면 Amazon CloudFront 자습서, Amazon S3용 동적 콘텐츠 배포 설정을 참조하십시오. CloudFront를 사용하여 Amazon S3 버킷에 호스팅된 콘텐츠를 서비스할 때는 어떤 버킷 이름이라도 사용할 수 있으며 HTTP와 HTTPS가 모두 지원됩니다.

AWS CloudFormation 템플릿으로 설정 자동화

AWS CloudFormation 템플릿을 사용하여 웹 사이트에 제공할 CloudFront 배포를 생성하는 안전한 정적 웹 사이트를 구성하는 방법에 대한 자세한 내용은 Amazon CloudFront 개발자 안내서안전한 정적 웹 사이트 시작하기를 참조하십시오.

1단계: CloudFront 배포 생성

먼저 CloudFront 배포를 생성합니다. 이를 통해 전 세계 각지의 데이터 센터에서 웹 사이트를 사용할 수 있게 됩니다.

Amazon S3 오리진으로 배포 생성
  1. 에서 CloudFront 콘솔을 엽니다https://console.aws.amazon.com/cloudfront/v4/home

  2. 배포 생성(Create Distribution)을 선택합니다.

  3. [배포 생성(Create Distribution)] 페이지의 [오리진 설정(Origin Settings)] 섹션에서 [오리진 도메인 이름(Origin Domain Name)]에 해당 버킷에 대한Amazon S3 웹 사이트 엔드포인트를 입력합니다(예: example.com.s3-website.us-west-1.amazonaws.com).

    CloudFront가 사용자 대신 오리진 ID(Origin ID)를 채웁니다.

  4. Default Cache Behavior Settings(기본 캐시 동작 설정)에서는 기본값으로 설정되어 있는 값을 유지합니다.

    [뷰어 프로토콜 정책(Viewer Protocol Policy)]의 기본 설정을 사용하면 정적 웹 사이트에 HTTPS를 사용할 수 있습니다. 이 구성 옵션에 대한 자세한 내용은 Amazon CloudFront 개발자 안내서웹 배포의 생성 또는 업데이트 시 지정하는 값을 참조하십시오.

  5. Distribution Settings(배포 설정)에서 다음 작업을 수행합니다.

    1. Use All Edge Locations (Best Performance)(전체 엣지 로케이션 사용(최상의 성능))로 설정된 Price Class(가격 등급)를 그대로 둡니다.

    2. [대체 도메인 이름(CNAME)(Alternate Domain Names (CNAMEs))]을 루트 도메인과 www 하위 도메인으로 설정합니다. 이 자습서에서는 example.comwww.example.com입니다.

      중요

      이 단계를 수행하기 전에 대체 도메인 이름 사용과 관련된 요구 사항, 특히 유효한 SSL/TLS 인증서가 필요한지 확인하십시오.

    3. SSL 인증서(SSL Certificate)에서 사용자 정의 SSL 인증서(Custom SSL Certificate)(example.com)를 선택하고, 도메인 및 하위 도메인 이름을 포함하는 사용자 지정 인증서를 선택합니다.

      자세한 내용은 Amazon CloudFront 개발자 안내서SSL 인증서를 참조하십시오.

    4. 기본 루트 객체에 인덱스 문서의 이름을 입력합니다(예: index.html).

      배포에 액세스하는 데 사용된 URL에 파일 이름이 없으면 CloudFront 배포가 인덱스 문서를 반환합니다. 기본 루트 객체는 정적 웹 사이트에 대한 인덱스 문서의 이름과 정확히 일치해야 합니다. 자세한 내용은 인덱스 문서 구성 단원을 참조하십시오.

    5. 로깅설정으로 설정합니다.

      중요

      배포를 생성 또는 업데이트하고 CloudFront 로깅을 사용 설정하면 CloudFront는 버킷 액세스 제어 목록(ACL)을 업데이트하여 버킷에 로그를 쓸 수 있는 FULL_CONTROL 권한을 awslogsdelivery 계정에 부여합니다. 자세한 내용은 Amazon CloudFront 개발자 안내서표준 로깅 구성 및 로그 파일 액세스에 필요한 권한을 참조하세요. 로그를 저장하는 버킷이 S3 객체 소유권에 대해 버킷 소유자 적용 설정을 사용하여 ACL을 비활성화하면 CloudFront에서 버킷에 로그를 쓸 수 없습니다. 자세한 내용은 객체 소유권 제어 및 버킷에 대해 ACL 사용 중지 단원을 참조하십시오.

    6. Bucket for Logs(로그용 버킷)에서 앞서 생성한 로깅 버킷을 선택합니다.

      로깅 버킷 구성에 대한 자세한 내용은 (선택 사항) 웹 트래픽 로깅 단원을 참조하십시오.

    7. CloudFront 배포에 대한 트래픽에 의해 생성된 로그를 폴더에 저장하려면 로그 접두사(Log Prefix)에 폴더 이름을 입력합니다.

    8. 기타 모든 설정은 기본값을 유지합니다.

  6. [Create Distribution]을 선택합니다.

  7. 현재의 배포 상태를 보려면, 콘솔에서 배포를 찾아 상태 열을 확인합니다.

    InProgress 상태는 배포가 아직 완전히 이루어지지 않았음을 뜻합니다.

    배포가 완료되면 새 CloudFront 도메인 이름으로 콘텐츠를 참조할 수 있습니다.

  8. CloudFront 콘솔에 표시되는 도메인 이름의 값을 기록합니다(예: dj4p1rv6mvubz.cloudfront.net).

  9. CloudFront 배포가 이루어지고 있는지 확인하려면, 웹 브라우저에서 배포의 도메인 이름을 입력합니다.

    웹 사이트가 표시되는 경우 CloudFront 배포가 작동하는 것입니다. 웹 사이트의 Amazon Route 53에 사용자 지정 도메인이 등록되어 있는 경우 다음 단계에서 레코드 세트를 업데이트하려면 CloudFront 도메인 이름이 필요합니다.

2단계: 도메인 및 하위 도메인용 레코드 세트 업데이트

CloudFront 배포를 성공적으로 생성했으므로 새 CloudFront 배포를 가리키도록 Route 53의 별칭 레코드를 업데이트합니다.

CloudFront 배포를 가리키도록 별칭 레코드 업데이트
  1. https://console.aws.amazon.com/route53/에서 Route 53 콘솔을 엽니다.

  2. 왼쪽 탐색 창에서 Hosted Zones(호스팅 영역)를 선택합니다.

  3. Hosted Zones(호스팅 영역) 페이지에서 하위 도메인을 위해 생성한 호스팅 영역(예: www.example.com)을 선택합니다.

  4. 레코드에서 하위 도메인에 대해 만든 A 레코드를 선택합니다.

  5. 레코드 세부 정보에서 레코드 편집을 선택합니다.

  6. 다음으로 트래픽 라우팅에서 CloudFront 배포로 별칭을 선택합니다.

  7. 배포 선택에서 CloudFront 배포를 선택합니다.

  8. 저장을 선택합니다.

  9. 루트 도메인에 대한 A 레코드를 CloudFront 배포로 리디렉션하려면 루트 도메인에 대해 이 절차(예: example.com)를 반복합니다.

    레코드 세트를 업데이트한 내용은 2~48시간 내에 적용됩니다.

  10. A 레코드가 적용되었는지 확인하려면 웹 브라우저에서 하위 도메인 URL을 입력합니다(예: http://www.example.com).

    브라우저가 루트 도메인(예: http://example.com)으로 리디렉션되지 않는 경우 새 A 레코드가 적용된 것입니다. 새로운 A 레코드가 적용되면 새로운 A 레코드에 의해 CloudFront 배포로 라우팅되는 트래픽은 루트 도메인으로 리디렉션되지 않습니다. http://example.com 또는 http://www.example.com을 이용해 사이트를 참조하는 방문자가 가장 가까운 CloudFront 엣지 로케이션으로 리디렉션됨으로써, 더 빨라진 다운로드 시간의 이점을 누릴 수 있습니다.

    작은 정보

    브라우저는 리디렉션 설정을 캐시할 수 있습니다. 새로운 A 레코드 설정이 이미 적용되었어야 하는데 여전히 브라우저에서 http://www.example.comhttp://example.com으로 리디렉션된다면, 브라우저 애플리케이션을 닫았다가 다시 열어 브라우저의 검색 기록 및 캐시를 삭제하거나 다른 웹 브라우저를 사용하십시오.

(선택 사항) 3단계: 로그 파일 확인

액세스 로그는 웹 사이트를 방문하는 사람의 수를 알려 줍니다. 또한 Amazon EMR과 같은 다른 서비스로 분석할 수 있는 중요 비즈니스 데이터를 포함하고 있습니다.

CloudFront 로그는 CloudFront 배포를 생성하고 로깅을 사용 설정할 때 선택한 버킷과 폴더에 저장됩니다. CloudFront는 해당 요청 이후 24시간 이내에 로그 버킷에 로그를 기록합니다.

웹 사이트의 로그 파일 보기
  1. https://console.aws.amazon.com/s3/에서 Amazon S3 콘솔을 엽니다.

  2. 웹 사이트에 대한 로깅 버킷을 선택합니다.

  3. CloudFront 로그 폴더를 선택합니다.

  4. 열기 전에 CloudFront에서 작성한 .gzip 파일을 다운로드합니다.

    실습용으로만 웹 사이트를 생성한 경우에는 요금이 발생하지 않도록 할당한 리소스를 삭제할 수 있습니다. 그렇게 하려면 예제 리소스 정리 단원을 참조하십시오. AWS 리소스를 삭제한 후에는 웹 사이트를 사용할 수 없습니다.