Amazon CloudFront 자습서: Amazon S3에 사용할 동적 콘텐츠 배포 설정

Amazon S3에 사용할 Amazon CloudFront 배포를 설정하는 방법

Amazon CloudFrontAmazon Simple Storage Service(Amazon S3)와 원활하게 연동되므로 웹 콘텐츠 전송을 가속화하고 오리진 서버의 부하를 줄여줍니다. Amazon S3는 데이터를 클라우드에 저장하고 웹 콘텐츠로 전송할 때 사용하면 좋습니다. 기능이나 동적 콘텐츠를 제공하려는 경우, Amazon Elastic Compute Cloud(Amazon EC2)에 사용할 Amazon CloudFront 배포를 설정하는 방법을 확인하십시오.

이 AWS TechTips 데모를 시청하여 Amazon CloudFront CDN 배포를 설정하는 방법을 알아보십시오.

Amazon S3를 사용하여 Amazon CloudFront 배포를 설정하면 어떤 이점이 있나요?

Amazon CloudFront 콘텐츠 배포 네트워크(CDN) 배포는 S3 사용자에게 많은 이점을 제공합니다.

빠른 데이터 전송 속도

CloudFront를 사용하면 콘텐츠를 전 세계 시청자에게 빠른 속도로 제공할 수 있습니다. 많은 CloudFront 엣지 로케이션은 콘텐츠를 캐시하고 사용자에게 더 가까운 위치로 전송하여 지연 시간을 줄이고 오리진 서버의 용량을 오프로드합니다.

보안 및 성능 향상

또한 CloudFront는 S3 버킷에 대한 액세스 권한을 제한합니다. CloudFront 엔드포인트에서 콘텐츠에 대한 액세스 권한만 부여하도록 허용하면 애플리케이션의 보안과 응답성이 향상됩니다.

비용 효율적인 데이터 전송

CloudFront 요금을 사용하면 예산에 맞게 전송을 사용자 지정할 수 있습니다. AWS는 S3와 같은 AWS에서 호스팅하는 오리진과 CloudFront 간의 데이터 전송 비용을 청구하지 않으므로 오리진 페치가 비용 효율적인 옵션이 됩니다.

CloudFront와 S3를 사용하여 동적 콘텐츠 로드 속도를 높이는 방법

1단계. AWS Console로 이동

시작하려면 AWS Management Console에 로그인하고 서비스 목록에서 Amazon S3를 선택합니다. 

2단계. Amazon S3 버킷 생성

여기에서 다음 작업을 수행할 수 있습니다.

  • 아직 S3 버킷이 없는 경우 버킷 생성을 선택하여 S3 버킷을 생성합니다.
  • DNS 준수 버킷 이름을 지정합니다.
  • 버킷을 배치하려는 리전을 선택합니다.

그런 다음 버킷을 생성할 수 있습니다. 콘솔 또는 S3 API를 사용하여 원하는 경우 버킷에 파일을 더 추가하거나 새 버킷을 생성할 수 있습니다. S3 버킷을 처음 생성하면 DNS 이름 변경을 전파하는 데 시간이 다소 걸립니다(보통 최대 15분).

3단계. CloudFront 배포 생성

다음으로 AWS Console 서비스 목록의 네트워킹 및 콘텐츠 전송 섹션에서 CloudFront로 이동합니다. 이전에 CloudFront를 연 적이 있어 기록에 남아 있으면 더 빨리 액세스할 수도 있습니다. 여기에서 배포 생성을 클릭하여 새 웹 배포를 생성할 수 있습니다.  

4단계. 배포 설정 지정

이제 배포 설정을 입력할 수 있습니다. 먼저 오리진 도메인 이름 필드에 생성한 S3 도메인을 지정합니다.  

5단계. 오리진 구성

오리진 도메인 이름을 입력합니다. 동일한 AWS 계정에서 S3 버킷을 생성한 경우 필드 내 드롭다운 목록에 표시되어야 합니다. 다른 계정에 있는 경우 버킷 설정을 확인하여 CloudFront 액세스 권한을 부여하세요.

액세스 권한을 부여하면 CloudFront가 버킷에서 객체를 읽을 수 있습니다. 모든 객체를 하위 폴더에 배치하는 경우 오리진 경로를 지정할 수도 있습니다.

6단계. 원본 액세스 ID 구성

여기에서 Amazon S3 오리진에 대한 액세스를 제한할 수 있습니다. ‘예’를 선택하면 원본 액세스 ID를 생성하거나 기존 액세스 ID를 선택하라는 메시지가 표시되어 CloudFront가 버킷에서 객체를 읽을 수 있습니다. 또한 CloudFront에서 버킷 정책을 자동으로 업데이트하도록 허용할 수도 있습니다.

액세스를 제한하지 않도록 선택하면 CloudFront를 우회하고 S3 버킷 URL을 통해 콘텐츠에 직접 액세스할 수 있습니다. 비공개 콘텐츠나 민감한 콘텐츠의 경우 올바른 액세스 제한을 설정하는 것이 중요합니다.

이 섹션에서는 모든 객체를 하위 폴더에 저장하는 경우 오리진 경로를 지정할 수도 있습니다. 오리진 사용자 지정 헤더에 값을 지정하면 매 요청 시 CloudFront가 이 값을 오리진에 전달하게 됩니다. CloudFront에서 온 요청과 다른 클라이언트에서 온 요청을 비교하여 보여주므로 사용자 지정 오리진에 유용한 방식입니다.

7단계. 기본 캐시 동작 구성

그러면 기본 캐시 동작 설정에서 다양한 옵션을 사용할 수 있습니다.

뷰어 프로토콜 정책을 통해 HTTP 및 HTTPS 프로토콜을 처리하는 방법을 선택할 수 있습니다. 예를 들어 HTTP 요청을 HTTPS로 리디렉션하도록 선택할 수 있는데, 이렇게 하면 두 프로토콜 중 하나를 사용하여 요청을 지원할 수 있습니다. HTTPS 전용을 지원하도록 지정할 수도 있습니다. 이 경우 HTTP 트래픽이 삭제됩니다. 그러면 웹 보안 모범 사례를 준수할 수 있습니다.

CloudFront를 사용하면 수락하려는 HTTP 메서드를 지정할 수 있습니다. 기본 설정은 GET, HEAD입니다. 다른 옵션인 (GET, HEAD, OPTIONS 또는 GET, HEAD, OPTIONS, PUT, POST, PATCH, DELETE) 중 하나를 선택하면 CloudFront가 옵션 메서드를 캐시하는 방법을 구성할 수 있습니다.

그런 다음 오리진에 전달하려는 HTTP 헤더를 지정할 수 있습니다. 보통 Amazon S3 오리진의 관련 요청 및 응답 동작에 따라 헤더를 허용하는 것이 좋습니다. 특히 오리진에서 반환할 객체를 결정하기 위해 특정 HTTP 헤더를 검토하는 경우 해당 헤더를 허용해야 합니다. 모든 HTTP 헤더를 전달하면 CloudFront는 실제로 캐싱 계층을 우회하고, 객체 캐싱은 전혀 시도하지 않습니다.

8단계. TTL 구성

다음 섹션에서는 TTL(Time to Live)을 지정하여 콘텐츠가 만료되기 전에 캐시에 유지되는 기간을 관리할 수 있습니다. 기본적으로 오리진 캐시 헤더 사용이 선택됩니다. 또는 CloudFront 캐시에 저장할 객체의 상한 및 하한을 사용자 지정할 수 있습니다.

이러한 설정을 편집하려고 하면 최소 및 최대 TTL을 초 단위로 입력하라는 메시지가 표시됩니다. 그런 다음 헤더가 최솟값 또는 최댓값을 벗어나는 값을 반환하면 CloudFront는 최소 또는 최대 TTL을 사용합니다. 반면 해당 범위 내에 있는 값을 반환하면 CloudFront는 오리진에서 반환된 값을 사용합니다.

오리진에서 캐시 제어 헤더를 반환하지 않으면 기본 TTL을 대신 사용합니다. 예제 비디오에서는 기본값이 86,400초로 설정되어 있는데, 이는 24시간에 해당합니다.

9단계. 추가 기능 구성

다음 섹션에서는 쿠키에 기반한 콘텐츠 캐시쿼리 문자열 파라미터에 기반한 콘텐츠 캐시를 선택할 수 있습니다.

HTTP 헤더와 마찬가지로 오리진과 관련된 쿠키 또는 쿼리 문자열 값만 허용하는 것이 좋습니다. 이를 전달할 수도 있는데, 그러면 CDN은 여전히 캐싱을 시도합니다. 모두 전달하기로 선택할 때는 주의해야 합니다. CloudFront가 모든 것을 전달하면 캐시 적중률이 크게 줄어들 수 있기 때문입니다. 따라서 다양한 버전의 쿼리와 쿠키 값 때문에 많은 수의 객체가 여러 번 캐시될 수 있습니다.

그러면 다음 필드에서 더 많은 옵션을 사용할 수 있습니다.

배포 설정에서 사용하려는 CloudFront 네트워크 부분을 지정할 수 있습니다. 기본적으로 CloudFront는 최상의 성능을 위해 모든 엣지 로케이션을 사용합니다. 이를 통해 전 세계에 최대한 빠르게 콘텐츠를 제공할 수 있습니다.

미국, 캐나다, 유럽 등 특정 리전의 시청자만 예상한다면 해당 리전만 더 저렴한 가격대로 지정할 수 있습니다. 그렇다고 해서 해당 리전 외부의 시청자가 콘텐츠에 액세스할 수 없다는 의미는 아닙니다. CloudFront는 시청자를 가장 가까운 엣지 로케이션으로 라우팅합니다. CloudFront에서 AWS Web Application Firewall(AWS WAF)을 사용하려는 경우 여기에서 해당 설정을 구성할 수도 있습니다.

배포를 저장하기 전에 보안 소켓 계층(SSL) 인증서를 관리하는 것이 중요합니다. 여기에는 두 가지 옵션이 있습니다.

  • 하나는 기본 CloudFront 인증서를 사용하는 것입니다.
  • 사용자 지정 SSL 인증서를 업로드하거나 AWS Certificate Manager(ACM)에 인증서를 요청하여 CloudFront 배포에 연결합니다. 이는 사용자 지정 도메인을 사용하는 경우에 적합합니다.

또 하나는 나머지 설정을 사용하여 다음을 지정하는 것입니다.

  • 사용하려는 지원되는 HTTP 버전
  • 로깅의 사용 여부와 CloudFront가 액세스 로그를 저장하는 데 사용해야 하는 로그용 버킷
  • 쿠키 로깅의 활성화 여부

여기에서 설명을 입력하고 배포를 생성할 수 있습니다. 저장 후 약 15분이면 배포를 전 세계에 배포할 수 있습니다.

10단계. CloudFront 배포 테스트

배포가 준비되면 클릭하여 설정을 검토할 수 있습니다. 첫 번째 화면에는 여러 탭과 지정한 구성 설정이 표시됩니다. 여기에서 필요한 경우 추가 오리진과 여러 캐시 동작을 추가할 수 있습니다.

또한 CloudFront에서는 고객 오류 응답 생성 을 선택하여 사용자 지정 오류 페이지를 생성하거나 오류 응답이 캐시에 유지되는 기간을 변경할 수 있습니다. 각 HTTP 오류 코드에 대해 이러한 설정을 조정할 수 있습니다. 403회마다 재시도하려는 경우 최소 TTL을 0초로 지정할 수 있습니다. 기본적으로 CloudFront는 오리진의 일부 부하를 줄이기 위해 모든 것을 300초 동안 캐싱합니다. 원하는 경우 각 오류 코드에 대해 사용자 지정 오류 응답을 생성할 수도 있습니다.

제한 탭에서 지리적 제약 활성화를 선택하여 특정 지역의 시청자가 콘텐츠를 보는 것을 허용하거나 금지할 수 있습니다. 무효화 탭에서는 CloudFront 엣지 캐시에서 사용자 지정 객체를 제거할 수 있습니다. 마지막으로 태그 탭을 사용하여 사용자 지정 태그를 적용하여 배포판을 구성하고 식별할 수 있습니다.

완료되면 도메인을 복사하여 브라우저에 붙여넣으면 실제 배포 모습을 확인할 수 있습니다. 또한 Amazon EC2 웹 서버 인스턴스와 함께 CloudFront를 사용하여 앱의 동적 콘텐츠를 전송하는 방법도 배울 수 있습니다.

CloudFront를 시작하는 데 도움이 되는 Amazon CloudFormation 템플릿

Amazon CloudFormation 템플릿은 CloudFront를 시작하는 데도 도움이 됩니다. 이 템플릿은 S3 버킷을 시작하여 대규모로 정적 파일을 저장한 다음 CloudFront CDN을 통해 해당 콘텐츠를 사용자에게 전송합니다.

자세한 내용은 Amazon S3+ Amazon CloudFront: A Match Made in the Cloud(Amazon S3+ Amazon CloudFront: 클라우드 내 최고의 조합)라는 제목의 블로그 게시물을 읽고 CloudFormation 템플릿을 받으십시오.

CloudFront를 통한 콘텐츠 전송에 대한 추가 리소스

CloudFront를 시작하는 방법을 잘 모르시나요? 콘텐츠 전송 네트워크 시작하기 가이드를 참조하거나 Amazon Web Services 콘텐츠 전송 네트워크 설명서 허브로 이동하십시오.

프리미엄 서포트 지식 센터에서 S3에서의 CloudFront 배포를 관리하는 방법에 대한 다음 리소스를 확인하십시오.

더 많은 Amazon CloudFront 리소스 검색

리소스 페이지로 이동하기
구축할 준비가 되셨나요?
Amazon CloudFront 무료로 시작하기
추가 질문이 있으십니까?
문의처