

# 캐시 정책 생성
<a name="cache-key-create-cache-policy"></a>

캐시 정책을 사용하면 캐시 키에 포함된 값(URL 쿼리 문자열, HTTP 헤더 및 쿠키)을 제어하여 캐시 적중률을 향상시킬 수 있습니다. AWS Command Line Interface(AWS CLI) 또는 CloudFront API를 사용하여 CloudFront 콘솔에서 캐시 정책을 생성할 수 있습니다.

캐시 정책을 생성한 후 CloudFront 배포의 하나 이상의 캐시 동작에 연결합니다.

------
#### [ Console ]

**캐시 정책을 생성하는 방법(콘솔)**

1. AWS Management Console에 로그인하고 [https://console.aws.amazon.com/cloudfront/v4/home?#/policies](https://console.aws.amazon.com/cloudfront/v4/home?#/policies)의 CloudFront 콘솔에서 [**정책(Policies)**] 페이지를 엽니다.

1. **Create cache policy(캐시 정책 생성)**를 선택합니다.

1. 이 캐시 정책에 대해 원하는 설정을 선택합니다. 자세한 내용은 [캐시 정책 이해](cache-key-understand-cache-policy.md) 섹션을 참조하세요.

1. 마친 후에는 **Create(생성)**를 선택합니다.

캐시 정책을 생성한 후 캐시 동작에 연결할 수 있습니다.

**캐시 정책을 기존 배포에 연결하는 방법(콘솔)**

1. [https://console.aws.amazon.com/cloudfront/v4/home#/distributions](https://console.aws.amazon.com/cloudfront/v4/home#/distributions)의 CloudFront 콘솔에서 [**Distributions(배포)**] 페이지를 엽니다.

1. 업데이트할 배포를 선택한 다음 **Behaviors(동작)** 탭을 선택합니다.

1. 업데이트할 캐시 동작을 선택한 다음 **Edit(편집)**를 선택합니다.

   또는 새 캐시 동작을 생성하려면 **Create Behavior(동작 생성)**를 선택합니다.

1. **Cache key and origin request(캐시 키 및 오리진 요청)** 섹션에서 **Cache policy and origin request policy(캐시 정책 및 오리진 요청 정책)**가 선택되어 있는지 확인합니다.

1. **Cache Policy(캐시 정책)**의 경우 이 캐시 동작에 연결할 캐시 정책을 선택합니다.

1. 페이지 하단에서 **Save changes(변경 사항 저장)**를 선택합니다.

**캐시 정책을 새 배포에 연결하는 방법(콘솔)**

1. [https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)에서 CloudFront 콘솔을 엽니다.

1. **배포 생성**을 선택합니다.

1. **Cache key and origin request(캐시 키 및 오리진 요청)** 섹션에서 **Cache policy and origin request policy(캐시 정책 및 오리진 요청 정책)**가 선택되어 있는지 확인합니다.

1. **Cache Policy(캐시 정책)**의 경우 이 배포의 기본 캐시 동작에 연결할 캐시 정책을 선택합니다.

1. 오리진, 기본 캐시 동작 및 기타 배포 설정에 대해 원하는 설정을 선택합니다. 자세한 내용은 [모든 배포 설정 참조](distribution-web-values-specify.md) 섹션을 참조하세요.

1. 완료되면 **Create Distribution(배포 생성)**을 선택합니다.

------
#### [ CLI ]

AWS Command Line Interface(AWS CLI)를 사용하여 캐시 정책을 생성하려면 **aws cloudfront create-cache-policy** 명령을 사용합니다. 각 개별 파라미터를 명령줄 입력으로 지정하는 대신 입력 파일을 사용하여 명령의 입력 파라미터를 제공할 수 있습니다.

**캐시 정책을 생성하는 방법(입력 파일이 있는 CLI)**

1. 다음 명령을 사용하여 `cache-policy.yaml` 명령에 대한 모든 입력 파라미터가 포함된 **create-cache-policy**이라는 파일을 만듭니다.

   ```
   aws cloudfront create-cache-policy --generate-cli-skeleton yaml-input > cache-policy.yaml
   ```

1. 방금 생성한 `cache-policy.yaml`이라는 파일을 엽니다. 파일을 편집하여 원하는 캐시 정책 설정을 지정한 다음 파일을 저장합니다. 파일에서 선택적 필드를 제거할 수 있지만 필수 필드는 제거하지 마세요.

   캐시 정책 설정에 대한 자세한 내용은 [캐시 정책 이해](cache-key-understand-cache-policy.md) 단원을 참조합니다.

1. 다음 명령을 사용하여 `cache-policy.yaml` 파일의 입력 파라미터로 캐시 정책을 만듭니다.

   ```
   aws cloudfront create-cache-policy --cli-input-yaml file://cache-policy.yaml
   ```

   명령의 출력에 있는 `Id` 값을 기록해 둡니다. 캐시 정책 ID인 이 값은 캐시 정책을 CloudFront 배포의 캐시 동작에 연결하는 데 필요합니다.

**캐시 정책을 기존 배포에 연결하는 방법(입력 파일이 있는 CLI)**

1. 다음 명령을 사용하여 업데이트할 CloudFront 배포에 대한 배포 구성을 저장합니다. *distribution\$1ID*를 배포 ID로 바꿉니다.

   ```
   aws cloudfront get-distribution-config --id distribution_ID --output yaml > dist-config.yaml
   ```

1. 방금 생성한 `dist-config.yaml`이라는 파일을 엽니다. 캐시 정책을 사용하도록 업데이트하려는 각 캐시 동작을 다음과 같이 변경하여 파일을 편집합니다.
   + 캐시 동작에서 `CachePolicyId`이라는 필드를 추가합니다. 필드 값에는 정책을 만든 후 기록한 캐시 정책 ID를 사용합니다.
   + 캐시 동작에서 `MinTTL`, `MaxTTL`, `DefaultTTL` 및 `ForwardedValues` 필드를 제거합니다. 이러한 설정은 캐시 정책에 지정되므로 이러한 필드와 캐시 정책을 동일한 캐시 동작에 포함할 수 없습니다.
   + `ETag` 필드의 이름을 `IfMatch`로 바꾸지만 필드 값은 변경하지 마세요.

   완료되면 파일을 저장합니다.

1. 캐시 정책을 사용하도록 배포를 업데이트하려면 다음 명령을 사용합니다. *distribution\$1ID*를 배포 ID로 바꿉니다.

   ```
   aws cloudfront update-distribution --id distribution_ID --cli-input-yaml file://dist-config.yaml
   ```

**캐시 정책을 새 배포에 연결하는 방법(입력 파일이 있는 CLI)**

1. 다음 명령을 사용하여 `distribution.yaml` 명령에 대한 모든 입력 파라미터가 포함된 **create-distribution**이라는 파일을 만듭니다.

   ```
   aws cloudfront create-distribution --generate-cli-skeleton yaml-input > distribution.yaml
   ```

1. 방금 생성한 `distribution.yaml`이라는 파일을 엽니다. 기본 캐시 동작의 `CachePolicyId` 필드에 정책을 생성한 후 기록한 캐시 정책 ID를 입력합니다. 파일을 계속 편집하여 원하는 배포 설정을 지정한 다음 완료되면 파일을 저장합니다.

   배포 설정에 대한 자세한 내용은 [모든 배포 설정 참조](distribution-web-values-specify.md) 단원을 참조하세요.

1. 다음 명령을 사용하여 `distribution.yaml` 파일의 입력 파라미터로 배포를 만듭니다.

   ```
   aws cloudfront create-distribution --cli-input-yaml file://distribution.yaml
   ```

------
#### [ API ]

CloudFront API를 사용하여 캐시 정책을 생성하려면 [CreateCachePolicy](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateCachePolicy.html)를 사용합니다. 이 API 호출에서 지정하는 필드에 대한 자세한 내용은 AWS SDK 또는 기타 API 클라이언트에 대한 [캐시 정책 이해](cache-key-understand-cache-policy.md) 및 API 참조 설명서를 참조하세요.

캐시 정책을 생성한 후 다음 API 호출 중 하나를 사용하여 캐시 동작에 연결할 수 있습니다.
+ 기존 배포의 캐시 동작에 연결하려면 [UpdateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_UpdateDistribution.html)을 사용합니다.
+ 새 배포의 캐시 동작에 연결하려면 [CreateDistribution](https://docs.aws.amazon.com/cloudfront/latest/APIReference/API_CreateDistribution.html)을 사용합니다.

이 두 API 호출에 대해 캐시 동작 내의 `CachePolicyId` 필드에 캐시 정책의 ID를 제공합니다. 이러한 API 호출에서 지정하는 다른 필드에 대한 자세한 내용은 [모든 배포 설정 참조](distribution-web-values-specify.md)와 AWS SDK 또는 기타 API 클라이언트에 대한 API 참조 설명서를 참조하세요.

------