

# CloudFront 사용 방법
<a name="IntroductionUseCases"></a>

CloudFront를 사용하면 다양한 목표를 달성할 수 있습니다. 이 단원에서는 이에 대한 정보를 몇 가지 설명하고 추가 정보에 대한 링크를 제공합니다.

**Topics**
+ [

## 정적 웹 사이트 콘텐츠 전송 속도 향상
](#IntroductionUseCasesStaticWebsite)
+ [

## 온디맨드 비디오 또는 라이브 스트리밍 비디오 제공
](#IntroductionUseCasesStreaming)
+ [

## 시스템 처리를 통해 특정 필드 암호화
](#IntroductionUseCasesFieldLevelEncryption)
+ [

## 엣지에서의 사용자 지정
](#IntroductionUseCasesProgrammableCDN)
+ [

## Lambda@Edge 사용자 지정을 사용하여 프라이빗 콘텐츠 제공
](#IntroductionUseCasesPrivateContentAtTheEdge)

## 정적 웹 사이트 콘텐츠 전송 속도 향상
<a name="IntroductionUseCasesStaticWebsite"></a>

CloudFront는 전 세계 최종 사용자에게 제공되는 정적 콘텐츠(이미지, 스타일 시트, JavaScript 등)의 전송 속도를 높일 수 있습니다. CloudFront를 사용하면 AWS 백본 네트워크와 CloudFront 엣지 서버의 장점을 활용하여 해당 웹 사이트를 방문하는 뷰어에게 빠르고 안전하며 신뢰할 수 있는 환경을 제공할 수 있습니다.

정적 콘텐츠를 저장하고 전송하기 위한 간단한 방법은 Amazon S3 버킷을 사용하는 것입니다. S3와 CloudFront를 함께 사용하면 [오리진 액세스 제어](private-content-restricting-access-to-s3.md)를 통해 Amazon S3 콘텐츠에 대한 액세스를 쉽게 제한할 수 있으며 이외에도 다양한 장점이 있습니다.

빠른 시작을 도와주는 CloudFormation 템플릿을 비롯해 CloudFront와 Amazon S3를 함께 사용하는 방법에 대한 자세한 내용은 [안전한 정적 웹 사이트 시작하기](getting-started-secure-static-website-cloudformation-template.md) 섹션을 참조하세요.

## 온디맨드 비디오 또는 라이브 스트리밍 비디오 제공
<a name="IntroductionUseCasesStreaming"></a>

CloudFront는 전 세계 최종 사용자에게 미디어(녹화 파일 및 라이브 이벤트)를 스트리밍하기 위한 몇 가지 옵션을 제공합니다.
+ 온디맨드 비디오(VOD) 스트리밍의 경우 CloudFront를 사용하면 MPEG DASH, Apple HLS, Microsoft Smooth Streaming, CMAF 등과 같은 일반적인 포맷으로 디바이스에 상관없이 스트리밍할 수 있습니다.
+ 라이브 스트림 방송의 경우에는, 엣지에 미디어 조각을 캐싱하여 해당 조각을 올바른 순서로 전송하는 매니페스트 파일에 대한 여러 요청을 결합함으로써 오리진 서버의 부하를 줄일 수 있습니다.

CloudFront를 사용하여 스트리밍 콘텐츠를 전송하는 방법에 대한 자세한 내용은 [CloudFront를 사용한 온디맨드 비디오 및 라이브 스트리밍 비디오](on-demand-streaming-video.md) 단원을 참조하십시오.

## 시스템 처리를 통해 특정 필드 암호화
<a name="IntroductionUseCasesFieldLevelEncryption"></a>

CloudFront에서 HTTPS를 구성할 경우 오리진 서버에 대한 종단 간 연결의 보안이 보장됩니다. 파일 수준 암호화를 추가하는 경우, HTTPS 보안뿐 아니라 시스템 처리 전체에서 특정 데이터를 보호함으로써 오리진의 특정 애플리케이션만 데이터를 보게 할 수 있습니다.

필드 레벨 암호화를 설정하려면 CloudFront에 퍼블릭 키를 추가한 후 이 키를 사용하여 암호화하려는 필드 세트를 지정합니다. 자세한 내용은 [필드 수준 암호화를 사용하여 민감한 데이터 보호](field-level-encryption.md) 단원을 참조하세요.

## 엣지에서의 사용자 지정
<a name="IntroductionUseCasesProgrammableCDN"></a>

엣지에서 서버리스 코드를 실행하면 지연 시간을 최소화하면서 다양한 방식으로 최종 사용자에 대한 콘텐츠와 환경을 사용자 지정할 수 있습니다. 예를 들어 오리진 서버가 유지보수를 위해 다운된 경우 최종 사용자에게 일반 HTTP 오류 메시지를 표시하는 대신 사용자 지정 오류 메시지를 표시할 수 있습니다. 또는 함수를 사용하여 CloudFront가 오리진으로 요청을 전송하기 전에 사용자를 인증하고 콘텐츠에 대한 액세스를 제어할 수 있습니다.

CloudFront에서 LLambda@Edge를 사용하면 CloudFront가 제공하는 콘텐츠를 다양한 방법으로 사용자 지정할 수 있습니다. Lambda@Edge에 대한 자세한 내용과 CloudFront를 사용하여 함수를 생성하고 배포하는 방법을 알아보려면 [Lambda@Edge를 사용하여 엣지에서 사용자 지정](lambda-at-the-edge.md) 단원을 참조하십시오. 해당 솔루션에 맞게 사용자 지정할 수 있는 다양한 코드 샘플을 보려면 [Lambda@Edge 예제 함수](lambda-examples.md) 단원을 참조하십시오.

## Lambda@Edge 사용자 지정을 사용하여 프라이빗 콘텐츠 제공
<a name="IntroductionUseCasesPrivateContentAtTheEdge"></a>

Lambda@Edge를 사용하면 서명된 URL 또는 서명된 쿠키를 사용하는 것 이외에, 자체 사용자 지정 오리진에서 프라이빗 콘텐츠를 제공하도록 CloudFront 배포를 구성할 수 있습니다.

CloudFront를 통해 프라이빗 콘텐츠를 제공하려면 다음과 같이 합니다.
+ 최종 사용자가 [서명된 URL 또는 서명된 쿠키](PrivateContent.md)를 사용하여 콘텐츠에 액세스하도록 요구합니다.
+ CloudFront의 오리진 대상 서버에서만 사용할 수 있도록 오리진에 대한 액세스를 제한합니다. 이렇게 하려면 다음 중 하나를 수행합니다.
  + Amazon S3 오리진의 경우 [오리진 액세스 제어(OAC)를 사용](private-content-restricting-access-to-s3.md)할 수 있습니다.
  + 사용자 지정 오리진의 경우 다음과 같이 할 수 있습니다.
    + 사용자 지정 오리진이 Amazon VPC 보안 그룹 또는 AWS Firewall Manager에 의해 보호되는 경우 [CloudFront 관리형 접두사 목록을 사용](LocationsOfEdgeServers.md#managed-prefix-list)하여 CloudFront의 오리진 대상 IP 주소에서만 오리진으로의 인바운드 트래픽을 허용할 수 있습니다.
    + 사용자 지정 HTTP 헤더를 사용하여 CloudFront의 요청에 대해서만 액세스를 제한합니다. 자세한 내용은 [사용자 지정 오리진의 파일에 대한 액세스 제한](private-content-overview.md#forward-custom-headers-restrict-access) 및 [사용자 지정 헤더를 오리진 요청에 추가](add-origin-custom-headers.md) 섹션을 참조하세요. 사용자 지정 헤더를 사용하여 Application Load Balancer 오리진에 대한 액세스를 제한하는 예제는 [Application Load Balancer에 대한 액세스 제한](restrict-access-to-load-balancer.md) 단원을 참조하세요.
    + 사용자 지정 오리진에 사용자 지정 액세스 제어 로직이 필요한 경우 Lambda@Edge를 사용하여 블로그 게시물 [Amazon CloudFront 및 Lambda@Edge를 사용한 프라이빗 콘텐츠 제공](https://aws.amazon.com/blogs/networking-and-content-delivery/serving-private-content-using-amazon-cloudfront-aws-lambdaedge/)에 설명된 대로 해당 로직을 구현할 수 있습니다.