

# キャッシュポリシーを作成する
<a name="cache-key-create-cache-policy"></a>

キャッシュポリシーを使用して、キャッシュキーに含まれる値 (URL クエリ文字列、HTTP ヘッダー、Cookie) を管理することで、キャッシュヒット率を改善できます。キャッシュポリシーは、CloudFront コンソール、AWS Command Line Interface (AWS CLI)、または CloudFront API を使用して作成できます。

キャッシュポリシーを作成したら、CloudFront ディストリビューションの 1 つ以上のキャッシュ動作にアタッチします。

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

**キャッシュポリシーを作成するには (コンソール)**

1. AWS マネジメントコンソール にログインし、[https://console.aws.amazon.com/cloudfront/v4/home?#/policies](https://console.aws.amazon.com/cloudfront/v4/home?#/policies) で CloudFront コンソールの [**‬Policies‭**] (ポリシー) ページを開きます。

1. [**キャッシュポリシーの作成**] を選択します。

1. このキャッシュポリシーに目的の設定を選択します。詳細については、「[キャッシュポリシーを理解する](cache-key-understand-cache-policy.md)」を参照してください。

1. 終了したら、[**作成**] を選択します。

キャッシュポリシーを作成したら、それをキャッシュ動作にアタッチできます。

**既存のディストリビューションにキャッシュポリシーをアタッチするには (コンソール)**

1. [https://console.aws.amazon.com/cloudfront/v4/home#/distributions](https://console.aws.amazon.com/cloudfront/v4/home#/distributions) で CloudFront コンソールの [**Distributions**] (ディストリビューション) ページを開きます。

1. 更新するディストリビューションを選択し、[**動作**] タブを選択します。

1. 更新するキャッシュ動作を選択し、[**編集**] を選択します。

   または、新しいキャッシュ動作を作成するには、[**動作を作成**] を選択します。

1. [**キャッシュキーとオリジンリクエスト**] セクションで、[**キャッシュポリシーとオリジンリクエストポリシー**] が選択されていることを確認します。

1. [**キャッシュポリシー**] では、このキャッシュ動作にアタッチするキャッシュポリシーを選択します。

1. ページの最下部で [**変更の保存**] を選択します。

**新しいディストリビューションにキャッシュポリシーをアタッチするには (コンソール)**

1.  で CloudFront コンソールを開きます[https://console.aws.amazon.com/cloudfront/v4/home](https://console.aws.amazon.com/cloudfront/v4/home)

1. [**ディストリビューションの作成**] を選択します。

1. [**キャッシュキーとオリジンリクエスト**] セクションで、[**キャッシュポリシーとオリジンリクエストポリシー**] が選択されていることを確認します。

1. **[Cache policy]** (キャッシュポリシー) で、このディストリビューションのデフォルトのキャッシュ動作にアタッチするキャッシュポリシーを選択します。

1. オリジン、デフォルトのキャッシュ動作、その他のディストリビューション設定に必要な設定を選択します。詳細については、「[すべてのディストリビューション設定リファレンス](distribution-web-values-specify.md)」を参照してください。

1. 終了したら、[**ディストリビューションの作成**] を選択します。

------
#### [ 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 コールで指定するフィールドの詳細については、「[キャッシュポリシーを理解する](cache-key-understand-cache-policy.md)」と、AWS SDK またはその他 API クライアントの 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 リファレンスドキュメントを参照してください。

------